Google 推出新程式語言 Logica,要簡化超長的 SQL 程式碼!

Logica
Logica 已開源。圖片截至 GitHub

【我們為什麼挑選這篇文章】SQL 語法基於自然語言,具有好理解、上手容易的優點,但是對抽象的支持有限,而且語法動輒上百行。近日 Google 推出新的邏輯程式語言 Logica,要讓 SQL 的語法更簡潔,降低使用者負擔。(責任編輯:郭家宏)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位

天下苦 SQL 久矣。

寫個查詢語句而已,動不動就上百行……

不過 Google 新推出的這個邏輯程式語言,對於「SQL 黨」來說可謂是福音:

專治 SQL 語句的冗長和它不擅長的抽象機制(abstraction mechanisms)。

它就是 Logica。

(又有新語言了?扶我起來,還能學)

SQL 程式碼很好理解,但對抽象的支持有限

Google 為什麼要推出這樣一門新的程式語言?

有句話說,「數據是新世紀的石油。」

SQL 作為處理數據的通用語言,因為它基於自然語言的設計,好理解好入門,已流行了很多年,但也並非完美無缺:

▌沒有將邏輯分成小塊的設計
▌沒有「模組」和「導入」的概念
▌更沒有高級點的構造(例如函數間的傳遞)

這就導致 SQL 對抽象的支持非常有限,就更不用說還要去維護那動輒上百行的語句了。

有沒有好的解決方案呢?

市面上開發了很多可供大家選擇的數據庫查詢語言和相應的庫。

其中,邏輯程式語言最能解決 SQL 的侷限性。

Logica 是邏輯程式語言,讓 SQL 程式碼更簡潔

Logica 就是這樣一門邏輯程式語言。

何為邏輯編程?

邏輯編程是種編程典範,它設定答案須符合的規則來解決問題,而非設定步驟來解決問題,過程是事實 + 規則 = 結果。

Logica 進一步擴展了古典的邏輯編程語法,最顯著的是使用聚合,這也是這個名字的來源:Logic + Aggregation(聚合)。

Logica 繼承自 Yedalog(早期 Google 開發的一種語言),是一種類似數據日誌(Datalog-like)的邏輯程式語言。Logica 程式碼可以編譯成 SQL,可在 Google BigQuery 上運行(也支持 PostgreSQL 和 SQLite):

▌支持 SQL 所缺乏的簡潔和可重用的抽象機制
▌支持模組和導入
▌使測試查詢變得不再困難

到底好不好用,上手體驗便知結果。

下面是一個查詢小於 30 的質數的具體範例:

運行結果:

Logica 能否成為主流?

Google 工程師們鼓勵大家積極嘗試 Logica。

很多人很高興看到 Google 推出的這樣一門新的邏輯程式語言,但表示被主流採用還有很長的路要走。

正如很多網友都有一些質疑:

有人認為 Logica 沒有真的做到轉 SQL,只是用了作為虛擬機的編譯器動態「翻譯」的。

還有人覺得這不是通常意義的邏輯編程,僅僅搞了搞數據庫查詢。

並且還會帶來依賴問題。

但他們都表示,可能自己對 Logica 瞭解得不夠深入。

只有一個人的關注點是,這個新程式語言的名字和一家公司撞名了。

最後,項目已開源,參見 連結 。有興趣(有頭髮的)的朋友可以自己嘗試一下!

在  SQL 的應用上有辦法打破 OLTP、OLAP 隔閡,同時運作達到「真」即時數據分析嗎? 微軟線上雲端技術講堂 解析 Azure Synapse Analytics 如何讓技術成真!

參考連結

Open Source》、《GitHub》、《Y Combinator》、《網易

(本文經 AI 新媒體量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈谷歌发布新编程语言,专治 SQL 各种“不服”〉。首圖來源:GitHub

延伸閱讀

48 年還沒被時代淘汰!工程師仍然愛用 SQL 的 8 大原因
從工程師轉行數據科學家後需要做什麼?前輩建議:趕快把 SQL 練熟吧
數據科學家技能趨勢解析:PyTorch 職缺大漲 108%,SQL 將成為需求第二大的程式語言


訂閱《TechOrange》每日電子報!

每天一早,需要來根知識能量棒? TechOrange 與你一起,吸收世界新知識、消化科技新局勢。點我訂閱電子報 ,取得最新深度報導。

點關鍵字看更多相關文章: