又有新語言了?“扶我起來,還能學”
2021-07-30
世界長期以來一直飽受 SQL 之苦。
隨便寫一個查詢語句,動不動就幾百行...
不過,推出的這種新的邏輯編程語言對“SQL 黨”來說是一個福音:
它專門研究SQL語句的冗長和它不擅長的抽象機制()。
是的。
(有新的語言嗎?“幫幫我sql編程語言,我可以學習”)
邏輯編程語言解決了SQL的局限性
為什么要推出這樣一種新的編程語言?
有句話說:“數(shù)據(jù)是新世紀的石油?!?/p>
SQL 是一種處理數(shù)據(jù)的通用語言,因為它基于自然語言設(shè)計,易于理解和上手。它已經(jīng)流行多年,但并不完美:
這導致對 SQL 抽象的支持非常有限,更不用說每次都維護數(shù)百行語句了。
有什么好的解決辦法嗎?
有多種數(shù)據(jù)庫查詢語言和相應(yīng)的庫供大家選擇。
其中,邏輯編程語言最能解決SQL的局限性。
邏輯編程語言
就是這樣一種邏輯編程語言。
什么是邏輯編程?
邏輯編程是一種編程范式。它設(shè)定答案必須遵守的規(guī)則才能解決問題,而不是設(shè)定解決問題的步驟。過程是事實+規(guī)則=結(jié)果。
對經(jīng)典的邏輯編程語法進行了進一步的擴展,最引人注目的是聚合的使用,這也是名稱的來源:+(聚合)。
繼承自(早期谷歌開發(fā)的一種語言),它是一種類似于數(shù)據(jù)記錄(-like)的邏輯編程語言。代碼可以編譯成SQL在上運行(也支持and):
好不好,上手就知道結(jié)果了。
以下是查找小于 30 的質(zhì)數(shù)的具體示例:
# Define natural numbers from 1 to 29.
N(x) :- x in Range(30);
# Define primes.
Prime(prime: x) :-
N(x),
x > 1,
~(
N(y),
y > 1,
y != x,
Mod(x, y) == 0
);
運行結(jié)果:
$ logica primes.l run Prime
+-------+
| prime |
+-------+
| 2 |
| 3 |
| 5 |
| 7 |
| 11 |
| 13 |
| 17 |
| 19 |
| 23 |
| 29 |
+-------+
熱議:能否成為主流?
工程師鼓勵大家積極嘗試。很多人很高興看到這樣一種新的邏輯編程語言的推出,但表示距離被主流采用還有很長的路要走。
同樣有不少網(wǎng)友提出了一些疑問:有人認為轉(zhuǎn)SQL不是真的可以,而是把解釋器當成虛擬機來動態(tài)“翻譯”一下。
有人認為這不是通常意義上的邏輯編程,只是搞數(shù)據(jù)庫查詢。
而且它也帶來了依賴問題。但他們都表示可能沒有深入了解。
只有一個人擔心這個新編程語言的名字和一家公司相撞了哈哈哈
最后,該項目是開源的sql編程語言,見鏈接[2]。有興趣(有頭發(fā))的朋友可以自己試試!
參考鏈接:
[1]/2021/04/--your-data-.html
[2]//
[3]/item?id=
[4]/dy//.html
豐色 發(fā)自 凹非寺
量子位 報道
作為開源免費的數(shù)據(jù)庫,一直是程序員的必修課。
無論是做前端、測試、開發(fā)還是運維,都必須熟悉。
今天給大家分享一套超全的學習資料。如果你是零基礎(chǔ)新手,那么這套教材一定要收藏起來慢慢學。
本套教材為王曉春老師線下5天課程的全部內(nèi)容,包括400分鐘視頻和課件
詳細介紹:數(shù)據(jù)庫基礎(chǔ)、各種安裝方法、管理數(shù)據(jù)庫和表、用戶和權(quán)限管理、函數(shù)和存儲過程、框架、存儲引擎、服務(wù)器選項、狀態(tài)和狀態(tài)變量、優(yōu)化查詢和索引管理、日志管理、備份和恢復(fù)、集群。
接收:264 頁文檔 + 400 分鐘視頻學習資料