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