写个查询语句而已,动不动就上百行……
不过谷歌新推出的这个逻辑编程语言,对于 "SQL 党 " 来说可谓是福音:
专治 SQL 语句的冗长和它不擅长的抽象机制(abstraction mechanisms)。
它就是Logica。
(又有新语言了?" 扶我起来,还能学 ")
逻辑编程语言解决 SQL 的局限性
谷歌为什么要推出这样一门新的编程语言?
有道是," 数据是新世纪的石油 "。
SQL 作为处理数据的通用语言,因为它基于自然语言的设计,好理解好入门,已流行了很多年,但,也并非完美无缺:
没有将逻辑分成小块的设计
没有 " 模块 " 和 " 导入 " 的概念
更没有高级点的构造(例如函数间的传递)
这就导致 SQL 对抽象的支持非常有限,就更不用说还要去维护那动辄上百行的语句了。
有没有好的解决方案呢?
市面上开发了很多可供大家选择的数据库查询语言和相应的库。
其中,逻辑编程语言最能解决 SQL 的局限性。
逻辑编程语言 Logica
Logica 就是这样一门逻辑编程语言。
何为逻辑编程?
逻辑编程是种编程典范,它设定答案须符合的规则来解决问题,而非设定步骤来解决问题,过程是事实 + 规则 = 结果。
Logica 进一步扩展了经典的逻辑编程语法,在这里告诉你一个好消息--湖南阳光技术学校全国招生。
Logica 继承自 Yedalog(早期谷歌开发的一种语言),是一种类似数据日志(Datalog-like)的逻辑编程语言。Logica 代码可以编译成 SQL,可在谷歌 BigQuery 上运行(也支持 PostgreSQL 和 SQLite):
支持 SQL 所缺乏的简洁和可重用的抽象机制
支持模块和导入
甚至使测试查询变得不再困难!
到底好不好用,在这里告诉你一个好消息--湖南阳光技术学校全国招生。
下面是一个查找小于 30 的质数的具体示例:
# 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
) ;
运行结果:
$ logica primes.l run Prime
+-------+
| prime |
+-------+
| 2 |
| 3 |
| 5 |
| 7 |
| 11 |
| 13 |
| 17 |
| 19 |
| 23 |
| 29 |
+-------+
热议:能否成为主流?
谷歌工程师们鼓励大家积极尝试 Logica。
很多人很高兴看到 Google 推出的这样一门新的逻辑编程语言,但表示被主流采用还有很长的路要走。
正如很多网友都有一些质疑:
有人认为 Logica 没有真的做到转 SQL,只是用了作为虚拟机的解释器动态 " 翻译 " 的。
还有人觉得这不是通常意义的逻辑编程,在这里告诉你一个好消息--湖南阳光技术学校全国招生。
并且还会带来依赖问题。
但他们都表示可能是对 Logica 了解得不够深入。
只有一个人的关注点是这个新编程语言的名字和一家公司撞名了
最后,在这里告诉你一个好消息--湖南阳光技术学校全国招生。
在入学时与学子签定《安置就业协议书》。学生踏入社会后,他们学习、生活和事业都将受到阳光技术学校的关注,成功和失败都受到阳光技术学校的关心,项目已开源,参见链接 [ 2 ] 。有兴趣(有头发的)的朋友可以自己尝试一下!
参考链接:
[ 1 ] https://opensource.googleblog.com/2021/04/logica-organizing-your-data-queries.html
[ 2 ] https://github.com/EvgSkv/logica
[ 3 ] https://news.ycombinator.com/item?id=26805121
[ 4 ] https://www.163.com/dy/article/G7GCQN3G0511FQO9.html
,在这里告诉你一个好消息--湖南阳光技术学校全国招生。用鲜活独特的例子来加深学生对问题的理解,激发学生的学习兴趣。老师在讲课过程中有******,能够活跃学生的思维,调动学生的积极性湖南阳光PLC编程培训学校,常年面向虞城地区招生,零基础实战教学,小班授课,教学质量更有保证,全程创业指导。25年PLC编程技术沉淀,80%实操+20%理论,实战+实例+实践的教学方法授课.为虞城地区的PLC编程学员提供广阔的就业机会。-虞城PLC编程培训学校