25 августа

Google разработал новый язык Logica — что, зачем и почему

Как говорил легендарный Барни Стинсон, "новое всегда лучше старого". Но будет ли применимо это правило к языкам программирования? И зачем, в принципе, создаются новые языки?
Logica

В апреле этого года Google заявил о создании нового языка программирования — Logica (logic (логика) + aggregation (агрегация)), который является языком логического программирования с открытым исходным кодом (подобный Datalog) и стал преемником их ранее разработанного языка Yedalog. Данный код компилируется в SQL, с той разницей, что он более краток, поддерживает механизмы абстракции и делает тестирование запросов более простым. Запускается он в Google BigQuery (вам потребуется Google Cloud Project), а Python3 понадобится установить для запуска самих программ у себя на компьютере. Основным структурным элементом стал предикат — выражение, в котором величина имеет результат логического типа (аргумент).

А теперь немного подробнее. Для начала стоит отметить, что SQL хоть и был разработан полвека назад, однако все еще очень популярен и многие системы считывают данные благодаря SQL, будь это небольшие приложения или крупные IT-решения. Так почему нам стоит отказаться от проверенного временем языка? Потому что он все же не совершенен, и, неудивительно, что нашлись энтузиасты, желающие устранить те самые недостатки. В числе самых главных:

  • многословность, длинные цепочки английских слов, требующихся для построения утверждений, — в связи с чем один запрос может состоять из сотен строк;
  • недостаточная поддержка абстракции.
Системы, которые основываются на логическом программировании, стремятся устранить данные ограничения SQL. Для этого применяется синтаксис математической логики высказывания, а не естественного языка (английского).
Так мы вновь возвращаемся к Logica, который справляется с проблемами выше и, ко всему, небольшие части логики можно организовывать в пакеты и затем передавать их для создания новых элементов логики. Такой процесс также затруднителен в SQL, а некоторые функции невозможны вовсе. Чтобы посмотреть разницу между Logica и SQL на конкретном примере, перейдите по ссылке.

Следует отметить и тот факт, что Logica позволяет расширить классический синтаксис логического программирования — через использование агрегаций (спойлер был в названии языка).
Теперь поговорим о перспективах Logica

Чтобы оценить риски нового языка программирования, ждет его провал или же успех, достаточно прикинуть диапазон его возможной распространенности. В мире миллионы программистов, и порядка 10 млн из них работает с SQL. Хватит ли этого, учитывая, что целевой аудиторией Logica станут все SQL-разработчики? Более чем.

Однако прогнозировать перспективы любого языка довольно сложно, особенно когда дело касается консервативности. Кто-то не захочет переучиваться, а кто-то предпочтет надежный и проверенный способ, который стал уже стандартом в работе с базами данных. Как мы уже говорили выше, очень многие используют SQL в разных отраслях. А нежелание рисковать и быть «‎первопроходцами» ‎может быть принято и на уровне правления.

Если же вас заинтересовал новый язык, то познакомиться с полным руководством можно здесь. Это не призыв начать его использовать прямо сейчас. Но мы всегда за быть «‎открытыми»‎ чему-то новому — как минимум вы сможете лучше изучить логическое программирование и попробовать сделать код более лаконичным и читабельным. А может оказаться и так, что Logica откликнется именно вам и вы сможете внести свой вклад в разработку данного языка. Во всяком случае его создатели точно будут рады найти единомышленников.
Комментарий от эксперта

"На мой взгляд язык является весьма специфическим. Содержит большое количество спецсимволов. Это очередной синтаксис, требующий изучения. SQL не совершенство. Но кто из нас идеален?) Да и на самом деле он комфортен в использовании, если ты успел его лучше узнать. SQL язык аналитический и в то же время прогерский, он зарекомендовал себя как качественный инструмент не только работы с СУБД, но и написания кода. Поэтому не думаю, что Logica обретёт какую-то исключительную популярность. Но говорить об этой новинке как о новой туле точно будут, и стоит это делать. Это нормальная практика — знать, что есть, что популярно, с чем можно столкнуться. Пару лет назад я так узнала о Gherkin. Как он связан с запросами? Никак. Просто тоже «автоматизирует», «оптимизирует» вещи, только в проектной документации и тестировании. Да, интересно. Да, ново. Кто-то использует. Но он не стал фундаментальным. Многие, вероятно, и не слышали о таком. И это нормально. Поэтому скорее я бы отнесла Logica на данном этапе к инструментам, о существовании которых неплохо бы знать. Внутри CRM, например, существуют свои инструменты для запросов, профильно адаптированные. То есть насколько здесь произойдет оптимизация с помощью Logica, насколько внедрение языка трудозатратно... Рано говорить. Но я уверена, что пользователи обязательно найдутся. Как минимум интересно «потрогать». Оценивать инструмент, с которым не работал предметно, — сложная задача и немного некорректная. В любом случае, здорово, что жизнь не стоит на месте. И есть ресурсы для той самой оптимизации и поиска новых решений".

Дарья, бизнес-аналитик
Немного об авторах:

создателями Logica стали сотрудник компании Google, математик и выпускник двух университетов (Уральского госуниверситета и канадского Университета им. Саймона Фрейзера) Евгений Скворцов и Константин Третьяков, data scientist в компании Bondora.
Над материалом работала Карина Старкова

Стань востребованным IT специалистом

Наша цель — дать тебе знания и опыт, достаточные для трудоустройства в крупнейшие IT компании.