Google выпускает новый язык Logica для устранения ограничений языка SQL

SQL Язык программирования Google Информация
Google выпускает новый язык Logica для устранения ограничений языка SQL

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

Google недавно выпустилLogica,Романоткрытый источникЯзык логического программирования, какYedalogНаследие (Yedalog — язык, разработанный ранним Google) — это язык логического программирования, похожий на Datalog.

Код Logica можно скомпилировать в SQL и запустить в Google BigQuery (с экспериментальной поддержкой PostgreSQL и SQLite), но он более краток и поддерживает краткие и многократно используемые абстракции, которых нет в SQL. Он поддерживает модули и импорт, может использоваться из интерактивной записной книжки Python и даже делает тестирование ваших запросов естественным и простым.

Как мы все знаем, SQL разработан на основе естественного языка, что позволяет бесчисленному количеству людей без формального компьютерного программирования и математической подготовки беспрепятственно обращаться к базе данных, и это также является непоправимым недостатком SQL.

Язык логического программирования решает проблему SQL, используя синтаксис математической логики высказываний вместо естественного английского языка. Язык формальной логики специально разработан математиками для облегчения выражения сложных предложений и лучше подходит для этой цели, чем естественный язык. Logica дополнительно расширяет синтаксис классического программирования Logic, в основном за счет агрегации, отсюда и название, которое расшифровывается как Logica = Logic + aggregation, то есть Logic + Aggregation.

Кроме того, Google официально заявил в статье-анонсе:

Хорошее программирование заключается в создании небольших, понятных, многократно используемых фрагментов логики, которые можно тестировать, давать им имена и организовывать в пакеты, которые впоследствии можно использовать для создания более полезных фрагментов логики. SQL сопротивляется этому рабочему процессу. Хотя вы можете инкапсулировать некоторые повторяющиеся вычисления в представления и функции, их синтаксис и поддержка различаются в зависимости от реализации, концепции пакетов и импорта часто не существуют, а конструкции более высокого уровня (такие как передача функции в функцию) невозможно.

Это неотъемлемое сопротивление разбиению логики на мелкие части приводит к искусственным, многословным запросам, копипастным блокам кода и, в конечном счете, к неподдерживаемым, неструктурированным (обратите внимание на сарказм) кодовым базам SQL. Что еще хуже, код SQL редко тестируется из-за «тестирования SQL-запросов».

«Для большинства инженеров это звучит в лучшем случае довольно эзотерически. Из-за этого люди разрабатывают множествоАльтернативный язык запросовибиблиотека.На этих языках,система на основе логического программированияВозможно, самая близкая вещь для решения ограничений SQL.

image.png

Разработчики пробуют