HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>23 июл 2021</li>
2 <ul><li>23 июл 2021</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>12 апреля 2021 года инженеры Google объявили о разработке нового языка программирования - Logica. Разбираемся, кому и зачем он нужен.</p>
4 </ul><p>12 апреля 2021 года инженеры Google объявили о разработке нового языка программирования - Logica. Разбираемся, кому и зачем он нужен.</p>
5 <p>Абрикос Абрикосовый для Skillbox Media</p>
5 <p>Абрикос Абрикосовый для Skillbox Media</p>
6 <p>Востоковед, интересующийся IT. В прошлом редактор раздела "Системный блок" журнала "Fакел", автор журналов Computer Gaming World RE, Upgrade Special, руководитель веб-ресурсов компании 1С-Softclub.</p>
6 <p>Востоковед, интересующийся IT. В прошлом редактор раздела "Системный блок" журнала "Fакел", автор журналов Computer Gaming World RE, Upgrade Special, руководитель веб-ресурсов компании 1С-Softclub.</p>
7 <p>Google уже мало Go - подавай ещё один собственный язык программирования с блэкджеком и всеми полагающимися штуками (мы про комьюнити разработчиков, конечно). Поэтому недавно техногигант анонсировал язык программирования Logica. Посмотрим, насколько это логичный шаг для Google и какие перспективы у нового языка.</p>
7 <p>Google уже мало Go - подавай ещё один собственный язык программирования с блэкджеком и всеми полагающимися штуками (мы про комьюнити разработчиков, конечно). Поэтому недавно техногигант анонсировал язык программирования Logica. Посмотрим, насколько это логичный шаг для Google и какие перспективы у нового языка.</p>
8 <p>Logica - это декларативный логический язык программирования из семьи Datalog, подмножества Prolog. Его синтаксис восходит к Yedalog (кстати, тоже разработка Google), а в названии языка соединены два понятия - "логика" и "агрегация" (logic + aggregation), потому что запросы в Logica формулируются как логические выражения.</p>
8 <p>Logica - это декларативный логический язык программирования из семьи Datalog, подмножества Prolog. Его синтаксис восходит к Yedalog (кстати, тоже разработка Google), а в названии языка соединены два понятия - "логика" и "агрегация" (logic + aggregation), потому что запросы в Logica формулируются как логические выражения.</p>
9 <p>В основе семейства Datalog и реляционных баз данных лежит одна и та же концепция: данные - это набор некоторых отношений, а работа с данными - это последовательность операций с этими отношениями. Однако они по-разному описывают эти операции: Datalog использует математический синтаксис, а SQL - синтаксис естественного языка (английского).</p>
9 <p>В основе семейства Datalog и реляционных баз данных лежит одна и та же концепция: данные - это набор некоторых отношений, а работа с данными - это последовательность операций с этими отношениями. Однако они по-разному описывают эти операции: Datalog использует математический синтаксис, а SQL - синтаксис естественного языка (английского).</p>
10 <p>Logica не оторван от SQL: любая логическая программа сначала переводится в SQL-выражение, которое можно запустить на BigQuery - правда, для этого понадобится Google Cloud Project. А вот чтобы запускать Logica-программы у себя на компьютере, придётся установить Python3.</p>
10 <p>Logica не оторван от SQL: любая логическая программа сначала переводится в SQL-выражение, которое можно запустить на BigQuery - правда, для этого понадобится Google Cloud Project. А вот чтобы запускать Logica-программы у себя на компьютере, придётся установить Python3.</p>
11 <p>Авторы языка -<a>Евгений Скворцов</a>, математик, выпускник Уральского госуниверситета (2003) и канадского Университета им. Саймона Фрейзера, а ныне сотрудник Google, и <a>Константин Третьяков</a> - data scientist из Эстонии.</p>
11 <p>Авторы языка -<a>Евгений Скворцов</a>, математик, выпускник Уральского госуниверситета (2003) и канадского Университета им. Саймона Фрейзера, а ныне сотрудник Google, и <a>Константин Третьяков</a> - data scientist из Эстонии.</p>
12 Евгений Скворцов. Фото: National Fund for Scientific Research<p>Авторы позиционируют Logica как простую и удобную альтернативу старичку SQL - в молодом языке объединились ясность логического программирования и мощь систем вроде BigQuery. А сделали его в основном для того, чтобы писать запросы к дедуктивным базам данных (см.<a>статью</a>на "Википедии").</p>
12 Евгений Скворцов. Фото: National Fund for Scientific Research<p>Авторы позиционируют Logica как простую и удобную альтернативу старичку SQL - в молодом языке объединились ясность логического программирования и мощь систем вроде BigQuery. А сделали его в основном для того, чтобы писать запросы к дедуктивным базам данных (см.<a>статью</a>на "Википедии").</p>
13 <p>Но зачем вообще менять проверенный годами и ставший стандартом для БД SQL на что-то новое? Причина простая: в SQL запросы состоят из огромного количества английских слов - в итоге сложный запрос может состоять из сотен строк кода, в которых даже чёрт ногу сломит, а у программиста потекут слёзы. Представьте, что вместо напечатанной сложной математической формулы вы пытаетесь понять какую-то математическую операцию на слух - когда сосед вам рассказывает, что и в какой последовательности надо сделать. Кроме того, SQL слабоват в работе с абстракциями.</p>
13 <p>Но зачем вообще менять проверенный годами и ставший стандартом для БД SQL на что-то новое? Причина простая: в SQL запросы состоят из огромного количества английских слов - в итоге сложный запрос может состоять из сотен строк кода, в которых даже чёрт ногу сломит, а у программиста потекут слёзы. Представьте, что вместо напечатанной сложной математической формулы вы пытаетесь понять какую-то математическую операцию на слух - когда сосед вам рассказывает, что и в какой последовательности надо сделать. Кроме того, SQL слабоват в работе с абстракциями.</p>
14 <p>А вот на Logica легко написать компактный, понятный и логичный (а как иначе!) код, который можно переиспользовать, собирать в пакеты и импортировать в другие программы. То есть даже если вы написали свой запрос несколько лет назад, то сможете быстро его прочитать и разобраться, что к чему. Фактически Logica привносит в запросы лучшие инженерные практики, характерные для языков вроде Python, C++ или Java.</p>
14 <p>А вот на Logica легко написать компактный, понятный и логичный (а как иначе!) код, который можно переиспользовать, собирать в пакеты и импортировать в другие программы. То есть даже если вы написали свой запрос несколько лет назад, то сможете быстро его прочитать и разобраться, что к чему. Фактически Logica привносит в запросы лучшие инженерные практики, характерные для языков вроде Python, C++ или Java.</p>
15 <p>Плюсы Logica очевидны даже на примере "Hello, world!". Так выглядит программа на Logica (это вместе с установкой языка в Collaboratory) - за решёткой спрятаны комментарии к коду.</p>
15 <p>Плюсы Logica очевидны даже на примере "Hello, world!". Так выглядит программа на Logica (это вместе с установкой языка в Collaboratory) - за решёткой спрятаны комментарии к коду.</p>
16 # Install. python3 -m pip install logica # Run: # To see usage message. python3 -m logica # To print SQL for HelloWorld program. python3 -m logica - print Greet 'Greet(greeting: "Hello world!")'<p>А вот та же программа, только в профиль - то есть на SQL. Logica явно выигрывает и в читаемости, и в лаконичности кода.</p>
16 # Install. python3 -m pip install logica # Run: # To see usage message. python3 -m logica # To print SQL for HelloWorld program. python3 -m logica - print Greet 'Greet(greeting: "Hello world!")'<p>А вот та же программа, только в профиль - то есть на SQL. Logica явно выигрывает и в читаемости, и в лаконичности кода.</p>
17 CREATE TABLE helloworld (phrase TEXT); .tables CREATE TABLE helloworld (phrase TEXT); INSERT INTO helloworld VALUES ("Hello, World!"); SELECT COUNT(*) FROM helloworld; SELECT * FROM helloworld WHERE phrase = "Hello, World!";<p>Однако язык Logica удобен не только стилем кода - программы на нём компилируются в SQL. А значит, разработчик на выходе получает стандартный код, который работает где угодно, и при этом может использовать объединённую мощь движка Google BigQuery вместе с ясностью и удобством синтаксиса логического языка программирования.</p>
17 CREATE TABLE helloworld (phrase TEXT); .tables CREATE TABLE helloworld (phrase TEXT); INSERT INTO helloworld VALUES ("Hello, World!"); SELECT COUNT(*) FROM helloworld; SELECT * FROM helloworld WHERE phrase = "Hello, World!";<p>Однако язык Logica удобен не только стилем кода - программы на нём компилируются в SQL. А значит, разработчик на выходе получает стандартный код, который работает где угодно, и при этом может использовать объединённую мощь движка Google BigQuery вместе с ясностью и удобством синтаксиса логического языка программирования.</p>
18 <p>Интеграция с Google Colab позволяет запускать один или несколько запросов и сохранять результаты в переменные Python, что помогает точнее выразить логику получения данных и сфокусироваться на коде Python и том, что Python делает лучше всего (визуализация, машинное обучение и тому подобное).</p>
18 <p>Интеграция с Google Colab позволяет запускать один или несколько запросов и сохранять результаты в переменные Python, что помогает точнее выразить логику получения данных и сфокусироваться на коде Python и том, что Python делает лучше всего (визуализация, машинное обучение и тому подобное).</p>
19 <p>Если в C, Python, C++, Java основный структурный элемент - это функции, а в SQL - запрос, то Logica работает с предикатами (predicate), то есть инструкциями, которые содержат в себе переменные.</p>
19 <p>Если в C, Python, C++, Java основный структурный элемент - это функции, а в SQL - запрос, то Logica работает с предикатами (predicate), то есть инструкциями, которые содержат в себе переменные.</p>
20 <p>Google грамотно просчитала потенциальный рынок нового языка. Целевая аудитория Logica - все, кто работает с SQL. А это прежде всего инженеры и специалисты по обработке данных.</p>
20 <p>Google грамотно просчитала потенциальный рынок нового языка. Целевая аудитория Logica - все, кто работает с SQL. А это прежде всего инженеры и специалисты по обработке данных.</p>
21 <p>Согласно<a>исследованиям JetBrains</a>, в 2015 году в мире числилось семь миллионов SQL-разработчиков. Однако к 2021 году общее число программистов<a>выросло минимум на треть</a> - так что и SQL-разработчиков должно быть уже порядка 9-10 миллионов. Амбициозная цель для нового языка.</p>
21 <p>Согласно<a>исследованиям JetBrains</a>, в 2015 году в мире числилось семь миллионов SQL-разработчиков. Однако к 2021 году общее число программистов<a>выросло минимум на треть</a> - так что и SQL-разработчиков должно быть уже порядка 9-10 миллионов. Амбициозная цель для нового языка.</p>
22 <p>Вот кому авторы Logica рекомендуют попробовать свой язык как можно быстрее:</p>
22 <p>Вот кому авторы Logica рекомендуют попробовать свой язык как можно быстрее:</p>
23 <ul><li>Тем, кто уже использует логическое программирование, но сталкивается с ограничениями вычислительной мощности.</li>
23 <ul><li>Тем, кто уже использует логическое программирование, но сталкивается с ограничениями вычислительной мощности.</li>
24 <li>Тем, кто работает с SQL, но недоволен лаконичностью и читабельностью кода.</li>
24 <li>Тем, кто работает с SQL, но недоволен лаконичностью и читабельностью кода.</li>
25 <li>Тем, кто хочет изучить логическое программирование и задействовать его в анализе больших данных.</li>
25 <li>Тем, кто хочет изучить логическое программирование и задействовать его в анализе больших данных.</li>
26 </ul><p>Перспективы любого нового языка программирования сложно прогнозировать. То же и с Logica, но мы попробуем мыслить логически. С одной стороны, у Logica есть поддержка гиганта индустрии - и это явно большой плюс (хотя на GitHub проекта<a>сказано</a>, что официально Google не поддерживает продукт). С другой стороны, у Google немало проектов, которые не выстрелили - вспомним хотя бы громкий фейл с суперинновационным Google Wave, который должен был похоронить кучу разных средств коммуникации, но в итоге сам тихо преставился.</p>
26 </ul><p>Перспективы любого нового языка программирования сложно прогнозировать. То же и с Logica, но мы попробуем мыслить логически. С одной стороны, у Logica есть поддержка гиганта индустрии - и это явно большой плюс (хотя на GitHub проекта<a>сказано</a>, что официально Google не поддерживает продукт). С другой стороны, у Google немало проектов, которые не выстрелили - вспомним хотя бы громкий фейл с суперинновационным Google Wave, который должен был похоронить кучу разных средств коммуникации, но в итоге сам тихо преставился.</p>
27 Скриншот: интерфейс Google Wave<p>Сейчас Logica уже умеет работать с Google BigQuery, PostgreSQL и SQLite, а разработчики обещают расширить этот список. Но базы данных - довольно консервативная область. Корпораты очень ценят надёжность в работе с информацией, а любые изменения и нововведения ставят её под сомнение. К тому же среди пользователей SQL много непрограммистов - а им не с руки переучиваться и вкатываться в настоящий язык программирования. Ведь зарплата и так капает.</p>
27 Скриншот: интерфейс Google Wave<p>Сейчас Logica уже умеет работать с Google BigQuery, PostgreSQL и SQLite, а разработчики обещают расширить этот список. Но базы данных - довольно консервативная область. Корпораты очень ценят надёжность в работе с информацией, а любые изменения и нововведения ставят её под сомнение. К тому же среди пользователей SQL много непрограммистов - а им не с руки переучиваться и вкатываться в настоящий язык программирования. Ведь зарплата и так капает.</p>
28 <p>И да - у Logica пока очень маленькое комьюнити: вопросы можно задавать в <a>обсуждениях на GitHub</a>, но что это по сравнению с океаном информации и готовых рецептов по SQL?</p>
28 <p>И да - у Logica пока очень маленькое комьюнити: вопросы можно задавать в <a>обсуждениях на GitHub</a>, но что это по сравнению с океаном информации и готовых рецептов по SQL?</p>
29 <p>Попробовать Logica можно на официальных ресурсах:</p>
29 <p>Попробовать Logica можно на официальных ресурсах:</p>
30 <ul><li><a>Руководство</a></li>
30 <ul><li><a>Руководство</a></li>
31 <li><a>Страничка проекта на GitHub</a></li>
31 <li><a>Страничка проекта на GitHub</a></li>
32 </ul><p>А пока перспективы Logica туманны, можно вложиться в проверенную технологию - на курсе "<a>SQL-разработчик</a>" в Skillbox вы научитесь собирать, обрабатывать и предоставлять данные для анализа, сможете визуализировать информацию и поймёте, как использовать и настраивать свои базы данных для различных задач.</p>
32 </ul><p>А пока перспективы Logica туманны, можно вложиться в проверенную технологию - на курсе "<a>SQL-разработчик</a>" в Skillbox вы научитесь собирать, обрабатывать и предоставлять данные для анализа, сможете визуализировать информацию и поймёте, как использовать и настраивать свои базы данных для различных задач.</p>
33 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
33 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>