ReScript官网在中国可正常访问()
这也说明了话语权的重要性:网站是社区志愿者搭建的,之前因为一些原因无法访问,但在我表达了需要VPN不方便的事实后,我们最终保证了国内程序员的正常访问。
我们将继续努力完善Rescript的生态,打造全球首个中文主导的通用编程语言。
================
更新:我为中国用户写了第一篇关于编程语言设计的科普文章。Rescript特色一:鲜为人知的行多态-知乎()
=======================================================================
作为国内唯一一个可能完全实现了真正意义上的编程语言和整套工具链,并且拥有相当国外商业用户的人,看到这个问题有点五味杂陈,说说你的感受吧。先说说我的背景。我是Rescript(github地址)的主要作者。我已经全职从事这门语言的开发工作7年了,前三年在国外,后四年在国内。使用这种语言的大公司包括Facebook、SAP、苏富比、育碧等。我们以前在维也纳和芝加哥举办过数百人的用户会议。使用这种语言的学校包括美国的常春藤布朗大学、印度的IIT等。
语言是用来解决某些问题的。如果只是句法上的修饰,比如《花木兰》甚至coffescript,可以看作是一个爱好项目,但很难称之为单机语言。因为切换一种语言的成本是巨大的,你需要切换整个生态系统。学习java可能只需要三两天,但您熟悉j
VM的生态可能需要数年时间。如果使用一种新语言的好处仅仅是它在语法上有用,那么对于用户来说迁移是不够的。
我开始设计这种语言的动机类似于typescript,但更纯粹。设想的卖点主要是可靠性、可伸缩性和性能。可靠性体现在类型系统比typescript更完善,理论上消除了运行时类型异常。业绩主要体现在运营业绩上。可伸缩性主要体现在编译性能上。我们可以在100ms左右增量编译一个有10000个文件的大项目,这很符合大公司的胃口,因为大公司的代码库很大,编译性能严重影响程序员生产力。
构建一个原型编译器可能只需要几周时间,但构建一个有效的编译器确实需要数年时间。因为编译器基本上是所有运行软件的信任基础,所以基本上很少有bug。想象一下,如果您的语言用户在编写代码时遇到问题,并且总是想知道编译器是否有问题,那么生产率是可以想象的。当时我花了六个周末的时间来构建一个可以demo的编译器。后来,我大概用了两年时间,填了各种坑,才稳定可用。
光有编译器是不够的。用户需要组织自己的代码并导入第三方依赖项。这涉及到一个易于使用的构建系统,包管理器。试想一下,如果快速编写编译器,但缓慢构建系统,那么用户的感觉还是很慢。
build system和package manager涉及大量的设计和人机交互问题,一旦引入了糟糕的设计,向后兼容性问题就很难修复
都结束了。一旦涉及到设计,就需要反复迭代,这也是一个耗时耗力的过程。
与二十年前不同的是,今天的语言基本上包括战斗--有一个沉重的标准库。单是设计标准库的API就需要大量时间,而且有繁重的文档。在语言得到足够普及之前,基本上需要编程语言团队自己实现,工作量可想而知。
今天的程序员被现代IDE惯坏了,没有易用的智能感知很难吸引用户。制作一个好的IDE是非常困难的。与遇到错误时退出的编译器不同,IDE需要一些容错性:在错误输入的情况下,它仍然会给出有意义的提示。我在这一块很幸运,主要由社区的人和瑞士的一个同事主导。
看到这一点,你就会知道设计一种真正的人类语言的工作量比你想象的要大得多。但最烦人的工作其实是社区推广和与人打交道。不像在公司里,社区里各种各样的人都有熟人。不要在混蛋面前骂人,因为你写的东西可能会被别人巧妙地“挑”出来然后批评。里面有一种中枢酸,说多了就是眼泪。
钱不是万能的,但没有钱是绝对不行的。如上所述,培养一门成熟的语言及其生态系统至少需要30人年的投入。团队中人的平均水平是一个人每年花费50万美元(注意支出不是员工的收入),这个投入很可能是一个小目标。这么小的投入很可能不够,最初给公司的回报大部分只能是PR。家政公司还面临一个问题:花了钱可能找不到合适的人。
做自己的语言是一件很情绪化的事情,而且很难。但从长远来看,是一个国家的基础软件问题
在话语权的问题上,我真心希望国内一些有情怀的公司能够做到。