Python迎来新挑战:LeCun站台的Skip语言有机会成为深度学习语言吗?

2022 年 2 月 27 日 极市平台
↑ 点击 蓝字  关注极市平台

来源丨新智元
编辑丨极市平台

极市导读

 

每年都有很多新的编程语言来挑战Python在深度学习的地位,但无一例外都失败了。最近图灵奖得主在推特上再度提起4年前就已经停更的Skip语言,并看好它在深度学习领域的发展。>>加入极市CV技术交流群,走在计算机视觉的最前沿

图灵奖得主LeCun最近在twitter上分享了一门新的编程语言Skip,并表示它有很多有趣的新特性。


包括安全的并发、具有类型推断的强类型化、简单的语法、面向函数也可以面向对象、默认不可变的变量、可预测的垃圾回收器、支持预计算和缓存、类Lisp:闭包和指令序列等。

 

 

LeCun 也指出,虽然Skip语言很有意思,但目前来说把Python作为顶层语言更符合人民的意愿;对于其他下层语言来说,面向数值、支持GPU版本的Skip语言可能会有意义。

 

实验性语言Skip


Skip 是 Facebook(Meta前身) 于 2015-2018 年开发的一种实验性质的编程语言。

 

 

作为一个研究项目,Skip 的主要目标是探索支持准确、高效、基于记忆化(memoization)的缓存和缓存失效的语言和运行时。通过静态类型系统追踪可变性,Skip 做到了前面提到的特性,同时它也支持现代语言特征,例如 trait、泛型与子类型。

 

Skip 项目于 2018 年结束,Facebook表示不再积极开发 Skip,而是以开源的方式保持语言的稳定性,让编程语言研究社区在语言设计与实现、编译器和库的基础上进行研究和构建。

 

 

而编译器和库由该语言的主要设计者 Julien Verlaguet 作为一个副项目进行维护。

 

后来Julien 围绕Skip语言打造了几个产品,如关系型数据库SQLive。

 

 

顾名思义,SQLive受到SQLite的启发,支持一个强大的SQL子集(包括事务)。它的与众不同之处在于,它也是高度并发的。SQLive支持处理来自多个同步reader/writer的复杂查询,而不会让其他数据库用户阻塞住。

 

用户可以订阅query的变化。通过一种叫做虚拟视图(virtual views)的新结构,数据库可以在任何时候都保持一个特定的视图是最新的,当该视图发生变化时通知用户。

 

目前SQLive仍处于早期开发阶段,目前已经可以用于免费用于非商用领域。

 

Skip的开发团队有着多门语言的开发经验,包括ActionScript、C#、Flow、Hack、HHVM、Prettier、React Native和Relay的高级贡献者。

 

Skip的特性


从名字就可以看出来,Skip的开发就是为了跳过「某些已经计算过的东西」来加快执行速度。

 

Skip的主要新语言特征是它对副作用(side effect)的精确跟踪,包括值的可变性,以及区分非确定性数据源和那些可以提供反应性无效的数据源(当数据发生变化时告诉Skip)。当Skip的类型系统能够证明在一个给定的函数边界没有副作用时,开发者可以选择安全地记忆该计算,运行时确保当底层数据发生变化时,先前的缓存值会被删除。

 

Skip还支持两种互补的并发编程,都能避免通常的线程安全问题。首先,Skip支持使用 async/await 语法的 ergonomic 异步计算。由于Skip对副作用的跟踪,异步计算不能引用易变的状态,因此可以安全地并行执行(所以独立的异步继续可以并行地继续)。其次,Skip有用于直接并行计算的API,再次利用其对副作用的跟踪来防止线程安全问题,如对易变状态的共享访问。

 

 

Skip使用了一种新颖的内存管理方法,将典型的垃圾收集器与更直接的线性(凹凸)分配方案相结合。由于Skip对副作用的跟踪,垃圾收集器只需要扫描从计算的根部可以到达的内存。在实践中,这意味着开发者可以用可预测的GC开销来编写代码。

 

Skip的另一大特点是将函数式和面向对象式的观点混合在一起,所有这些都被仔细地整合在一起,形成一种有聚合力的语言。像函数式语言一样,Skip是面向表达式的,并支持抽象数据类型、模式匹配、简单的lambdas、高阶函数,以及(可选择)强制执行纯/反向透明的API边界。像命令式/OO语言一样,Skip支持具有继承性的类、可变的对象、循环和提前返回。Skip还融合了「systems」语言的思想,以支持低开销的抽象,通过值类对对象进行紧凑的内存布局,以及通过静态方法调度确保代码特化(code specialization)的模式。

 

Skip从一开始就被设计为支持良好的开发者体验,其快速的迭代速度通常与动态语言有关。编译器支持增量类型检查(IDE插件的alpha版本在你输入时提供近乎瞬时的错误),为常见的语法错误提供提示,帮助新手学习语言,识别方法/类名称的小错,甚至识别Skip标准库方法名称的常见替代品,并在Skip中建议正确的名称。Skip还具有一个代码格式调整器,能够帮助确保代码风格的一致性,以及一个用于运行代码模型的工具。

 

Hello World


根据官方提供的Playground,可以在网页交互页面上轻松实现第一个Skip程序。

 

 

可以看到,函数需要类型注释:指定了返回类型(void),名为 main 的特殊函数被调用作为程序的入口点。

 

Skip 是一种类型化语言。函数参数、返回类型和类别字段等声明都包括类型注释。编译器计算所有表达式的类型,并在遇到预料之外的类型时报错。Skip 包括常见的基元类型:Int、Float、String、Char、Bool、void。

 

并且函数没有使用关键词 return,因为 Skip 是一种基于表达式的语言,即没有语句的概念。

 

修改本地变量时需要使用感叹号,等号作为声明局部变量的操作符。

 

 

Skip 还包括常见的控制流语句,如 if、for/in、while、do 和 loop。与大部分语言不同,Skip 的控制流语句是表达式,且和其它表达式一样可以生成值。控制流表达式可用于期望使用的任何语境。

 

 

稍有不同的是,break, else都有返回值。

 

和深度学习有关?


LeCun在介绍Skip语言的时候,还提到一个问题:Skip会成为深度学习框架、深度学习语言的一个新品种吗?

 

并且还附上了一个Skip语言编写的、基于ArrayFire引擎的深度学习原型框架Skai的GitHub仓库。Skai的开发受到著名C++机器学习库FlashLight的启发。

 

LeCun表示,期待下一个Skip的特性就是支持GPU计算。

 

Grid.ai的首席 AI Educator、威斯康星大学麦迪逊分校的统计专业副教授Sebastian Raschka表示,由于Skip的开发始终围绕着副作用和缓存的特点,有可能是一种优秀的DL语言。不过与此同时,要换成非Python的东西真的很难。Python有一个强大的社区,这也是新的语言很难从头开始建立的东西。Julia对于ML/DL来说也有很大的意义,但它也没被选中。

 

 

也有网友表示Facebook开发的产品通常都是虎头蛇尾,有着很强大的理想主义,但最终无法普及也就无法获得成功,只能变成一个实验项目开放出来给大家玩。

 

不过这么多年,想挑战Python的语言都没成功,停更近4年的Skip靠着社区能翻盘吗?


参考资料:

https://twitter.com/ylecun/status/1495029342203695104

http://skiplang.com/

https://github.com/pikatchu/skai


公众号后台回复“数据集”获取30+深度学习数据集下载~

△点击卡片关注极市平台,获取 最新CV干货
极市干货
数据集资源汇总: 10个开源工业检测数据集汇总 21个深度学习开源数据集分类汇总
算法trick 目标检测比赛中的tricks集锦 从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
技术综述: 一文弄懂各种loss function 工业图像异常检测最新研究总结(2019-2020)


CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart4)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~


觉得有用麻烦给个在看啦~   
登录查看更多
0

相关内容

程序设计语言( Programming Languages )又称编程语言,是一组用来定义计算机程序的语法规则。
【2022新书】Python手册,275页pdf
专知会员服务
178+阅读 · 2022年3月18日
【干货书】Python科学编程,451页pdf
专知会员服务
126+阅读 · 2021年6月27日
【干货书】Python参考手册,210页pdf
专知会员服务
63+阅读 · 2021年4月30日
【2020新书】高级Python编程,620页pdf
专知会员服务
232+阅读 · 2020年7月31日
【干货书】Python语音计算导论,408页pdf
专知会员服务
98+阅读 · 2020年7月12日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
【新加坡国立大学】深度学习时代数据库:挑战与机会
专知会员服务
33+阅读 · 2020年3月6日
Python的十大特性
AI前线
0+阅读 · 2021年12月24日
Python 的十大特性
InfoQ
0+阅读 · 2021年12月21日
2022年,Rust 将成为 Linux 内核第二官方语言?
AI前线
0+阅读 · 2021年12月20日
抛弃MATLAB,一本书掌握Python强大的绘图库Matplotlib
机器之心
5+阅读 · 2021年11月22日
2021 年 Python 的好与坏
InfoQ
2+阅读 · 2021年11月16日
Python 如何快速入门?
大数据技术
11+阅读 · 2018年4月9日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
39+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
7+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
10+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Arxiv
21+阅读 · 2022年2月24日
Arxiv
10+阅读 · 2021年2月18日
Arxiv
35+阅读 · 2020年1月2日
Adversarial Transfer Learning
Arxiv
12+阅读 · 2018年12月6日
Arxiv
10+阅读 · 2018年2月17日
VIP会员
相关VIP内容
【2022新书】Python手册,275页pdf
专知会员服务
178+阅读 · 2022年3月18日
【干货书】Python科学编程,451页pdf
专知会员服务
126+阅读 · 2021年6月27日
【干货书】Python参考手册,210页pdf
专知会员服务
63+阅读 · 2021年4月30日
【2020新书】高级Python编程,620页pdf
专知会员服务
232+阅读 · 2020年7月31日
【干货书】Python语音计算导论,408页pdf
专知会员服务
98+阅读 · 2020年7月12日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
【新加坡国立大学】深度学习时代数据库:挑战与机会
专知会员服务
33+阅读 · 2020年3月6日
相关资讯
Python的十大特性
AI前线
0+阅读 · 2021年12月24日
Python 的十大特性
InfoQ
0+阅读 · 2021年12月21日
2022年,Rust 将成为 Linux 内核第二官方语言?
AI前线
0+阅读 · 2021年12月20日
抛弃MATLAB,一本书掌握Python强大的绘图库Matplotlib
机器之心
5+阅读 · 2021年11月22日
2021 年 Python 的好与坏
InfoQ
2+阅读 · 2021年11月16日
Python 如何快速入门?
大数据技术
11+阅读 · 2018年4月9日
相关基金
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
39+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
7+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
10+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Top
微信扫码咨询专知VIP会员