Facebook 开源 Skip,面向对象+函数式编程语言

h4cd
 h4cd
发布于 2018年09月29日
收藏 7

近日,Facebook 开源了全新语言 Skip,这是 Facebook 内部开发的一个实验性质编程语言,Facebook 表示,Skip 项目于 2018 年完成,今后将不再积极开发。


Skip 的官方一句话介绍是“跳过那些你已经做过计算的”(skip the things you have already computed),这也就是它作为一个研究项目的主要目标,它要探索编程语言和运行时可以怎样去支持准确、高效的基于记忆的缓存和缓存失效。而通过静态类型系统追踪可变性,Skip 完成了这个目标,同时它也支持现代编程语言特征,例如 trait、泛型与子类型。

Skip 是一种通用编程语言,它跟踪副作用,提供反应失效的缓存、ergonomics 和安全的并行化以及高效的 GC。Skip 是静态类型的,它使用 LLVM 提前编译,生成高度优化的可执行文件。具体特点如下:

反应失效的缓存

Skip 主要的新特性是精准跟踪副作用,包括值的可变性和非确定性数据源与能够提供反应失效的数据源之间的区别。Skip 的类型系统能够证明给定函数边界没有副作用,这样开发人员可以选择安全地记忆该计算,并在运行时确保底层数据发生变化时,之前缓存的值是无效的。

Skip 支持两种互补的并发编程,由于它跟踪副作用,这两种编程都避免了常见的线程安全问题。首先,Skip 支持使用 async/await 语法进行 ergonomic 异步计算。由于 Skip 跟踪副作用,异步计算不能引用可变状态,因此可以安全地并行执行。其次,Skip 有可用于直接并行计算的 API,同样利用其追踪副作用的特型来避免线程安全问题,如共享对可变状态的访问。

高效和可预测的 GC

Skip 使用一种新方法进行内存管理,结合了典型的垃圾回收特性和更直接的线性分配模式。由于 Skip 追踪副作用,垃圾回收器仅需要扫描从底层计算处可访问的内存,在实践中这意味着开发者能够使用可预测 GC 写代码。

混合函数式与面向对象语言的特点

Skip 的一大特点是混合了函数式与面向对象编程语言的特点,将两者有机整合成了一种紧密结合的语言。与函数式语言类似,Skip 表达能力强,支持抽象的数据类型、模式匹配、简单的 lambda 和高阶函数等;另一方面,与命令式面向对象的语言相似,Skip 支持可继承的类、可变对象、循环和提前返回。Skip 还结合了“系统”语言的思想,以支持低开销抽象、通过值类的紧凑内存布局,以及确保利用静态方法分派实现代码特例化的模式。

具体细节请查阅官方:http://www.skiplang.com/

Skip 由经验丰富的团队设计,包括 ActionScript、C#、Flow、Hack、HHVM、Prettier、React Native 和 Relay 的高级贡献者,从 2015 年到 2018 年,Facebook 花了 3 年在这个项目上,该语言的主要设计者是 Facebook 语言团队负责人 Julien Verlaguet,他维护了该语言、编译器与库。如今 Facebook 宣布不再积极开发,但是通过开源的方式,希望让 Skip 继续保持活力,让编程语言研究社区在语言设计与实现、编译器和库的基础上进行研究和构建。

GitHub:https://github.com/skiplang/skip

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Facebook 开源 Skip,面向对象+函数式编程语言
加载中

精彩评论

东方星痕
东方星痕
现在顶级大公司基本都有一门自己的编程语言,而国内那些喊了十多年毛都没看见
熊猫猿
熊猫猿

引用来自“东方星痕”的评论

现在顶级大公司基本都有一门自己的编程语言,而国内那些喊了十多年毛都没看见

引用来自“whiter001”的评论

国内大厂在忙着往JAVA8升级?
与其在这里嘲笑国内公司,为什么不自己去做呢?
自己做不到为什么要去嘲笑别人?
m
mezongzi
刚才我就把域名给注册了 skiplang.cn
whiter001
whiter001

引用来自“东方星痕”的评论

现在顶级大公司基本都有一门自己的编程语言,而国内那些喊了十多年毛都没看见
国内大厂在忙着往JAVA8升级?
s
shifeng1983

引用来自“笨笨小锅锅”的评论

大厂天天搞事情
也就大厂有资源搞这些

最新评论(21

x
xzvbc
找马甲包上架开发者,想赚外快的来,IOS、安卓平台都有,有意者联系qq:1072454343
呆出水平
呆出水平

引用来自“东方星痕”的评论

现在顶级大公司基本都有一门自己的编程语言,而国内那些喊了十多年毛都没看见
开发一门编程语言没那么大难度,只要国内公司有需求也是分分钟的事情,难度在于维持开源社区的热度,美国公司有些方面的天然优势。
i
iclosure
翻译越来越懒了,怕是直接google翻译过来的吧,读不太通的地方都不知道换一个词
Zero__One
Zero__One

引用来自“东方星痕”的评论

现在顶级大公司基本都有一门自己的编程语言,而国内那些喊了十多年毛都没看见

引用来自“whiter001”的评论

国内大厂在忙着往JAVA8升级?

引用来自“熊猫猿”的评论

与其在这里嘲笑国内公司,为什么不自己去做呢?
自己做不到为什么要去嘲笑别人?
因为他们在这里讨论公司, 不是个人.
陳建勳
陳建勳
居然學haskell用紫色?????? 意圖明顯
长宁楚王陈涉
长宁楚王陈涉

引用来自“东方星痕”的评论

现在顶级大公司基本都有一门自己的编程语言,而国内那些喊了十多年毛都没看见
马云说过:老板的品味决定员工是品味,员工的品味决定产品的品味,服务的质量
熊猫猿
熊猫猿

引用来自“东方星痕”的评论

现在顶级大公司基本都有一门自己的编程语言,而国内那些喊了十多年毛都没看见

引用来自“whiter001”的评论

国内大厂在忙着往JAVA8升级?
与其在这里嘲笑国内公司,为什么不自己去做呢?
自己做不到为什么要去嘲笑别人?
逛街户man
逛街户man
看了一下,和其他高级语言没什么区别。没什么生命力。
野薯
野薯
语法不简洁
--0_0--
--0_0--

引用来自“东方星痕”的评论

现在顶级大公司基本都有一门自己的编程语言,而国内那些喊了十多年毛都没看见
很多很多理念 , 环境都不一样
返回顶部
顶部