谷歌发布新编程语言,专治SQL各种“不服”

Gemma开源大模型:轻量级2B/7B开发者专用AI工具 Gemma是谷歌推出的开源大模型系列,定位轻量级、高实用性,涵盖2B与7B参数规模,专为本地部署与开发者工作流优化。其核心原理基于Decoder-only Transformer架构,结合TPUv5e高效训练、256k智能分词器及Keras 3.0原生支持,显著提升数学推理与代码生成能力。技术价值在于低硬件门槛(MacBook/M1/M3/树莓派均可运行)、高量化鲁棒性(4-bit表现优异)与开箱即用的工程友好性。典型应用场景包括IDE代码补全、RAG知识库问答、边缘设备AI代理及自动化测试生成。本文聚焦G 阅读详情
丰色 发自 凹非寺
量子位 报道 | 公众号 QbitAI

大家好,我是菜鸟哥。

天下苦SQL久矣。

写个查询语句而已,动不动就上百行……

不过谷歌新推出的这个逻辑编程语言,对于“SQL党”来说可谓是福音:

专治SQL语句的冗长和它不擅长的抽象机制 (abstraction mechanisms)。

它就是Logica。

(又有新语言了?“扶我起来,还能学”)

逻辑编程语言解决SQL的局限性

谷歌为什么要推出这样一门新的编程语言?

有道是,“数据是新世纪的石油”。

SQL作为处理数据的通用语言,因为它基于自然语言的设计,好理解好入门,已流行了很多年,但,也并非完美无缺:

  •     没有将逻辑分成小块的设计

  •     没有“模块”和“导入”的概念

  •     更没有高级点的构造(例如函数间的传递)

这就导致SQL对抽象的支持非常有限,就更不用说还要去维护那动辄上百行的语句了。

有没有好的解决方案呢?

市面上开发了很多可供大家选择的数据库查询语言和相应的库。

其中,逻辑编程语言最能解决SQL的局限性。

逻辑编程语言Logica

Logica就是这样一门逻辑编程语言。

何为逻辑编程?

逻辑编程是种编程典范,它设定答案须符合的规则来解决问题,而非设定步骤来解决问题,过程是事实+规则=结果。

Logica进一步扩展了经典的逻辑编程语法,最显著的是使用聚合,这也是这个名字的来源:Logic + Aggregation(聚合)。

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


近期热门文章30 行代码实现蚂蚁森林自动收能量(附送源码)Linux 最常用命令:简单易学,但能解决 95% 以上的问题
2021了,最流行的密码依旧是123456
真香!用VS Code直接浏览GitHub代码 !
从万众期待到口碑扑街!唐探3令人失望,用Python来分析一下大家的评论用Python分析了某大学2000千条表白墙,甜到发腻,原来脱单的秘密是……值得收藏!20个Python奇技淫巧,让你受益匪浅!这款IDEA插件刷爆了朋友圈,网友:这用起来有点酸爽~央视最美记者王冰冰火爆B站,单个视频1800万播放,都说了啥?
谷歌的新编程语言被称为 Carbon 我们知道Google痴迷于创建不同的框架和推出几种编程语言。Dart是Google推出的一种编程语言,它是面向对象和基于Web的编程语言。Dart编程语言并没有得到开发人员的巨大反响,因此它从未获得过主流编程语言的地位。由于他们强大的背景,许多程序员更喜欢C++和JavaScript而不是Dart。一种名为GO的编程语言在开发人员和GO中颇受欢迎。GO或GoLang是静态类型和显式的。它是一种类似于C编程语言的通用编程语言。... 阅读详情

相关推荐

用Arduino+ESP32复现TDOA定位:低成本实现厘米级精度的完整教程

本文提供了一套利用Arduino和ESP32平台,结合NRF24L01+模块与GPS/PPS时间同步方案,低成本复现高精度TDOA(到达时间差)定位系统的完整教程。教程详细阐述了从硬件选型、天线阵列设计、时间同步实现到核心算法与多径抑制的实战步骤,旨在帮助开发者和硬件爱好者以可控成本实现厘米级精度的定位演示系统。

weixin_29084111的博客 162

SQL注入经验分享(一)

id=10】,看看是否可以使用第二个参数点进行测试得出结果呢,很遗憾,结果都是没有结果,一直报错,这里应该是没有注入点的,但这里直接给绝对路径报出来了,也是漏洞。c、接着尝试闭合但都是这样的情况,输入一个中文的符号都报错,就很郁闷,首先这位置百分百是存在sql注入的,就想着试试sqlmap,but这家伙一点都不给力,只能瞎点点其他页面,看有没有传参。g、这就很奈斯,那我们可以使用上面的方法进行测试了,这里我们使用的是报错函数配合这个if进行一起使用,可以有不一样的效果,成功的将库名爆出。

qq_58000413的博客 2665

手把手教你解决uniapp中esbuild版本冲突问题(Mac版专属指南)

本文是针对Mac平台uniapp开发者的专属指南,详细解析了运行项目时常见的`Cannot start service`错误,即esbuild的Host版本与binary版本不匹配问题。文章从错误根源入手,提供了从快速应急处理到彻底根治的完整解决方案,包括手动替换二进制文件、锁定依赖版本、清理缓存及优化工具链配置,旨在帮助开发者高效解决版本冲突,恢复并稳定开发环境。

i0j1k2l3m的博客 459

强烈推荐:Google的通用表达语言(Common Expression Language)

在现代软件工程中,处理复杂的逻辑判断和数据操作时,我们经常需要引入灵活且高效的语言工具。今天要给大家安利的是**Common Expression Language(简称CEL)** —— 这是由Google贡献的一款功能强大又轻量级的开源语言,专为简化、速度、安全性和便携性而设计。 ## 一、项目简介 CEL是一种非图灵完全的语言,它以C风格的语法著称,几乎与C++、Go、Java和Type

gitblog_00492的博客 740

(8)机器人动力学

机器人是一个具有多输入多输出的复杂动力学系统,存在严重的非线性,需要非常系统的方法对机器人进行动力学研究。常用的机器人动力学建模方法有:Lagrange(拉格朗日)动力学方法、Newton-Euler(牛顿-欧拉)动力学方法、Gauss(高斯)动力学方法、Kane(凯恩)动力学方法等。机器人动力学研究的是机器人的运动和作用力之间的关系。机器人的动力学问题包括动力学正问题和动力学逆问题。动力学正问题是对于给定的关节驱动力......

rouyu308的博客 9500

SRAM Bank数量配置:性能、面积与功耗的权衡指南

SRAM(静态随机存取存储器)是芯片设计中的关键存储单元,其Bank数量配置直接影响访问延迟、吞吐率、功耗和面积。Bank切分通过将存储阵列分区,缩短位线和字线延迟,从而提升性能,但会增加外围电路开销。合理配置Bank数量可优化PPA(性能、功耗、面积),在28nm和16nm工艺下,2个Bank通常是性价比最高的选择。本文基于实测数据,探讨不同场景下的Bank配置策略,帮助工程师避免常见误区,提升设计效率。

weixin_27230891的博客 179

curd boy 入门

CURD Boy的最基础的MySQL操作,学会了,你就是夜空中最亮的仔O(∩_∩)O哈哈~ 目录 1. 数据库操作 2. 基础数据类型 3. 表操作 4. 行操作 5. 列操作 6. 插入操作 7. 查询操作 8. 修改操作 9. MySQL注意事项 1. 数据库操作 >>>>>>>>>>>>>&...

fuyuande的博客 3515

手把手教你用Qt5打造二次元游戏启动器(附鸣潮同款UI源码)

本文详细介绍了如何使用Qt5框架从零开始构建一个功能完整、UI风格贴近《鸣潮》的二次元游戏启动器。教程涵盖无边框窗口、动态背景、自定义控件绘制、多线程资源加载以及下载管理等核心模块的实现,并提供了可运行的源码参考,帮助C++开发者和Qt爱好者深入掌握现代桌面应用开发技术。

weixin_29291863的博客 265

谷歌发布新编程语言,专治SQL Boy各种“不服”!

点击“开发者技术前线”,选择“星标????” 让一部分开发者看到未来 来自:量子位天下苦SQL久矣。写个查询语句而已,动不动就上百行……不过谷歌新推出的这个逻辑编程语言,对于“SQL党...

开发者技术前线-DevolperFront 190

在AutoDL的A100云服务器上,用Docker搞定Sapien+RobotWin环境(附完整conda list)

本文详细介绍了在AutoDL的A100云服务器上使用Docker构建Sapien+RobotWin环境的完整指南。通过配置Vulkan渲染管线、精确复现Conda环境以及解决常见问题,帮助研究人员高效搭建稳定的机器人仿真开发环境,特别适合需要高性能GPU加速的复杂仿真任务。

weixin_30689307的博客 433

PLC的模糊PID控制

模糊PID控制包括模糊化,确定模糊规则,解模糊等组成部分,小车通过传感器采集赛道信息,PLC通过温度传感器获取炉内温度,确定当前实际温度和设定目标值的偏差e(error), e=setpoint-input以及偏差的变化ec(当前偏差-上次偏差),根据给定的模糊规则进行模糊推理,最后对模糊参数进行解模糊,输出PID控制参数 其次我们需要对这2个参数进行模糊化,e 、 ec 这里我对e进行举例,两个输入的标准化范围都在 [-1,1] 范围内。模糊逻辑控制器还产生范围 [-1,1] 内的归一化输出。 博

RXXW_Dor的博客 1万+

谷歌发布新编程语言,专治CURD Boy各种“不服”!

点击“开发者技术前线”,选择“星标????” 让一部分开发者看到未来来自:量子位天下苦SQL久矣。写个查询语句而已,动不动就上百行……不过谷歌新推出的这个逻辑编程语言,对于“SQL党”来说可谓...

开发者技术前线-DevolperFront 415

【WRF数据准备】生成 LCZ 对应的FRC_URB2D

WRF 静态地理数据准备

WW、forever的博客 412

谷歌发布新编程语言,居然专治这个?

点击⬆️方“逆锋起笔”,公众号回复编程资源 领取大佬们推荐的学习资料 丰色 发自 凹非寺量子位 报道 | 公众号 QbitAI天下苦SQL久矣。写个查询语句而已,动不动就上百行……不过...

code小生 299

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

6 个 yyds 的 GitHub 开源项目,太优质了。

这个公众号历史发布过很多有趣的开源项目,如果你懒得翻文章一个个找,你直接关注微信公众号:逛逛 GitHub ,后台对话聊天就行了。支持 Windows/Mac/Linux,连 10 年前的 Intel i3 电脑都能跑,生成文本、写代码、聊文档都没问题。截个数学公式自动转 LaTeX 代码,拍张表格变 Excel,外语菜单秒翻译。而且看了下,这个神器还自带密码锁(Auth),防止陌生人乱调接口。给智能家居装个离线大脑,喊「小爱开灯」不用联网,树莓派就能跑。能识别图中的公式、表格、代码,甚至翻译图片文字。

公众号:逛逛GitHub 884

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

微软自家的Linux发行版开源了!

关注“程序IT圈”,与百万开发者在一起文 | 局长出品 | OSC开源社区(ID:oschina2013)微软近日开源了一款内部使用的 Linux 发行版——CBL-Mariner(CB...

程序IT圈 196

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 30min带你掌握Pandas “数据清洗” 全流程!
下一篇: 这4种Python更新Elasticsearch数据的方法你都会吗?
菜鸟学Python
博客等级 码龄9年 8082粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值