让 Scala 生成 JavaScript 已成为现实,Scala.js 的这十年

2cb445f795f7ad077debe2d14c25dc0d.gif

Scala.js 是一款将 Scala 代码编译为 JavaScript 代码的编译器,其支持全部 Scala 的语言特性。值十周年之际,官方回顾了这款编译器的从零到有,从一开始的不可能到已是一项成熟的技术。

原文链接:https://www.scala-lang.org/blog-detail/2023/02/05/ten-years-of-scala-js.html

作者 | Sébastien Doeraene

译者 | 弯月    责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

十年前,2013年2月5日是我们团队第一次提交 Scala.js 的日子。刚开始的时候,将 Scala 编译成 JavaScript 只是一个梦想。而如今这已成为现实。Scala.js 是一项成熟的技术,具有坚如磐石的核心、充满活力的专用库生态系统以及热情的用户及贡献者社区。

在十周年之际,我想回顾一下 Scala.js 的整个发展经历。

2c2c72b24c6eb5fe95153d935ee52530.png

一切的开始

当年我们刚开始开发 Scala.js,它还是 EPFL LAMP(Martin Odersky 领导的研究实验室)的一个单人项目。

从 Scala 生成 JavaScript 并不是一个新想法。LAMP(Scala+GWT、JS Scala)和社区(s2js、JScala)已经进行了多次这样的尝试。在当时看来这几乎是一个不可能完成的任务,而这也成为了我们启动这个项目的动力。

2013 年 6 月,Scala.js 在 Scala Days 上首次亮相就收到了热烈欢迎,尽管当时只输出了一个 16 MB 的“Hello world”。一小群早期的爱好者开始注册邮件列表,就他们喜欢的项目展开了交流,为项目提供了珍贵的早期反馈。很快,一个单人小项目就成长为以两人为核心的团队,还有几十位热心粉丝。


2df15f72b6c88679dbf0a7241d9f4a8f.png

坚实的基础

2013 年 11 月,版本 0.1 来了,并确立了Scala.js 的基本设计目标:

  • 与 JavaScript 的互操作性:能够直接表示和操作 JavaScript 值,就像它们是 Scala.js 的值一样。

  • 与 Scala/JVM 的可移植性:尽可能准确地将 Scala/JVM 的语义编译为 JavaScript,无需为互操作性而做出太多妥协。

  • 与 IDE、构建工具以及其他工具的兼容性:每个有效的 Scala.js 程序都必须经过类型检查,就像有效的 Scala/JVM 程序一样,不需要区别使用工具。

如今,这些核心设计目标仍然支配着 Scala.js 发展的总体决策。2014 年的 0.5.x 版本多加了一个额外的目标,即良好的运行时性能。我们也尝试尽可能所见生成的代码量,但上述核心设计目标优先。

为了保证这些目标,Scala.js 项目就质量和稳定制定了严格的标准。

Scala.js 是 Scala 生态系统中首批注重向后二进制兼容性的大型项目之一(其他项目还有 Akka 和 sbt)。版本 0.6.0 是版本 1 的垫脚石,预期生命周期为 6 个月。然而,这个版本在发展的过程中保持向后二进制兼容长达 5 年之久,终于在 2020 年 2 月 Scala.js 1.0.0 发布后功成身退。

有了如此长的兼容期,Scala.js 的生命周期最终都会超过底层的 Scala 版本。最近,我们放弃了 5 年前就宣布停产的 Scala 2.11 的支持。具有讽刺意味的是,根据 Scala.js 问题跟踪器的统计,迄今为止征集停止支持 Scala 2.11 的问题收获了最多的好评,它收到了100多个赞。

由于过硬的代码质量和测试要求,Scala.js 被称为坚如磐石。自 2021 年 8 月 Scala.js 1.7.0 发布以来,每个版本的已知错误数量都为零,包括整个核心存储库:编译器后端和链接器、Scala.js 特定的语言功能、Scala.js 标准库以及 JDK 的部分实现。

这个坚实的基础由核心团队维护,但这只是 Scala.js 成功的一部分。

d7d29d81e41bda095b3516c21c9b70e2.png

充满活力的社区

Scala.js 有今天的成就,离不开所有为生态系统做出过贡献的用户。社区和生态系统开展的主要活动包括编写库、开发工具、开展演讲以及通过 StackOverflow、Gitter 和现在的 Discord 为 Scala.js 的其他用户直接提供帮助。

前两年,现有 Scala 生态系统的大多数库都不支持 Scala.js。一些用户使用 Scala.js 构建了第一批库和测试框架。随着 Scala.js 的发展成熟,我们需要更好地支持交叉编译库。因此,我们在 Scala.js 0.6.0 中添加了 crossProject 的概念。

从那以后,随着 Scala.js 0.6.0 宣布试验阶段结束,Scala.js 的采用率大幅上涨。特别是,Scala 生态系统中越来越多的库开始支持 Scala.js。拉取请求主要来自 Scala.js 用户,但维护人员选择接受这些拉取请求,以及随之而来的维护负担。作为 Scala.js 的维护者,我们只能尽量减轻支持交叉构建的难度。我们万分感谢库维护者提供的支持。如今,大多数非专门针对 JVM-only 特性的库都是为 Scala/JVM 和 Scala.js 交叉发布的。

与此同时,Scala.js 用户尝试了 UI 库的最佳设计。虽然新的设计仍在探索中,但有一些库已经在社区中站稳了脚跟。在此,我们建议将 Laminar 作为 Scala-only 默认选择。对于喜欢 React 的用户来说,Slinky 和 scalajs-react 是流行的替代方案。

此外,还有许多其他类型的贡献,我们无法在此一一列举。

1c0e2c1a5ed5e5119e4e2f9bdbca93c4.png

当前的发展状况

如今,Scala.js 已成为一门成熟的语言和生态系统。我们估计已有数十万开发人员在使用。Jetbrains 开发者生态系统 2022 调查报告以及 Scala 2022 现状调查报告统计了 Scala 开发者中使用 Scala.js 的用户,分别为 12% 和 17%。Maven Central 统计报告称,核心组件每月的下载量超过 10 万次。

Scala.js 的成功远远超出了我们十年前的想象。核心团队努力构建扎实的基础,同时用户和贡献者社区才是成功的真正源泉。再次感谢所有为我们的生态系统做出过贡献的每一个人。我们期待与您携手,共同缔造 Scala.js 的下一个十年。

e210be70e2bc0ce52a03c116e9581ab0.gif

☞一位工程师搞崩了 Twitter,马斯克:代码太脆弱,全部重写!
☞不写代码就能开发应用,微软借助 ChatGPT,正在打造一个全新的商业软件帝国!
☞苹果发布黄色版 iPhone 14,定价 5999 元起;大神李沐被曝离职投身大模型创业;Atlassian 裁员 |极客头条

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23734.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI 总裁:GPT-4 有不完美,高阶版本正在测试!

【CSDN 编者按】OpenAI 总裁格雷格・布罗克曼:GPT-4 并不完美但绝对与众不同。 原文链接:https://techcrunch.com/2023/03/15/interview-with-openais-greg-brockman-gpt-4-isnt-perfect-but-neither-are-you/ 未经允许,禁止转载!…

美团创始高管离职创业/ 国内首个类ChatGPT下月开源/ 推特员工睡公司仍被裁 ...今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 新的一周又开始啦~ 在这段万物复苏、ChatGPT四处轰炸的日子里,科技圈又有哪些好玩的新鲜事? 日报君在此呈上。 OpenAI CEO提出新摩尔定律 ChatGPT红红火火,OpenAI CEO Sam Altman顺势提…

「B站焊武帝」再出圈!孤身爆肝造CPU,软硬件全自研,可玩游戏,基础器件成本不到1000元...

杨净 Pine 发自 凹非寺量子位 | 公众号 QbitAI 两年时间,一个90后体制内小哥下班之后只干三件私务,那就是: 手搓CPU!手搓CPU!还是***手搓CPU! 纯手工制作、全自主研发,于是一个名叫“初芯”的CP…

新中国第一位博士!答辩导师团豪华到令人害怕

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【Transformer】微信技术交流群 本文转载自:募格学术 | 来源:新教育100人 他,新中国培养的第一位博士,获得001号博士学位证书&…

课题组亓林博士的论文被 IEEE TGRS 录用

课题组亓林博士的论文 “SSCU-Net: Spatial-Spectral Collaborative Unmixing Network for Hyperspectral Images” 被遥感领域顶级期刊IEEE Transactions on Geoscience and Remote Sensing 录用。 线性高光谱解混是高光谱图像处理和解译中的一项重要技术。近年来,…

复旦大学苏教授火了!扯出600多个假博士

上一篇:为什么程序员每到一家新公司干了两三年,都有一种干不下去的感觉? 华为,否认了与陈春花的关系。网友,揭穿了陈春花的假学历。北大,解除了陈春花的聘任合同。陈春花,扯出了复旦首席教授苏东…

SIGGRAPH最佳博士论文奖又落华人手中,胡渊鸣的这位师兄不一般

白交 发自 凹非寺 量子位 报道 | 公众号 QbitAI 谁能想得到?SIGGRAPH最佳博士论文奖,又被「华人学者」纳入囊中。 这已经是「连续3年」,该重要奖项颁给华人学者,此前分别由加州大学伯克利分校闫令琪博士和朱俊彦博士摘得。 而最近…

26岁的他,任中国科大特任教授!2年前已在美国顶尖大学担任博士生导师!

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 来源:澎湃新闻 编辑:双一流高校 1994年出生,今年26岁的威斯康星大学麦迪逊分校原助理教授陈杲,已加盟中国科学技术大学几何与物理研究中心,任特任教…

【记录】关于知乎“国外博士的能力真的比国内博士强吗”的讨论

曾经在知乎关注了一个帖子,国外博士的能力真的比国内博士强吗? 因为有段日子没刷知乎了,今天打开一看,多了很多回答。 有一些回答肯定了本土博士的科研水平。比如: 反对小马过河回答:用上课来区分国内外博…

热搜第一!他 21 个月获清华博士学位,曾击败 NASA 夺冠,还发了 27 篇 SCI 论文

“用时 1 年 9 个月取得清华博士学位”、“以一作身份发表 SCI 论文 27 篇”、“在大赛中曾击败 NASA”……这些经历,单拎一条出来都足以令人艳羡不已,如今却全部聚集到了一个人身上——他就是姜宇,西安卫星测控中心极端轨道力学与应用科技创…

图灵奖得主Lecun、纽约大学教授Marcus,大佬争论背后的玄机

整理 | 杨阳 出品 | CSDN(ID:CSDNnews) 四年前,纽约大学教授Marcus为反驳深度学习三巨头之一Bengio的“有意识先验”和“解纠缠观念”理论,发表了一篇名为《Deep Learning: A Critical Appraisal》的论文,长…

为什么我感觉国内博士毕业手里的paper普遍比国外博士多?

链接:https://www.zhihu.com/question/457963341 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 作者:匿名用户https://www.zhihu.com/question/457963341/answer/1877675388 给大家举一个例子:不是国…

斯坦福校长被曝学术不端,正接受校方调查!11篇论文「篡改图片」涉嫌造假

【导读】学术打假专业户Elisabeth Bik盯上了斯坦福大学校长Tessier-Lavigne,指其1999年以来发在Science、Nature和Cell等顶刊的多篇论文涉嫌「篡改图片」的学术不端行为,校方已正式展开调查。 || 斯坦福大学调查自己校长学术不端? 近日&…

2022年「百强AI论文」出炉:清华紧随谷歌排名第二,宁波工程学院成最大黑马

【导读】谷歌仍然全球领先,OpenAI每两篇论文就有一篇进百大! 人工智能领域的创新步伐越来越快,论文数量也呈爆炸式增长,甚至达到了人力无法阅读的程度。 在2022年发表的海量论文中,哪些机构的影响力最大&#xff1f…

【深度学习】GPT系列模型:语言理解能力的革新

GPT-1🏡 自然语言理解包括一系列不同的任务,例如文本蕴涵、问答、语义相似度评估和文档分类。尽管大量的未标记文本语料库很充足,但用于学习这些特定任务的标记数据却很稀缺,使得判别式训练模型难以达到良好的表现。我们证明&…

九龙证券|又一股爆雷或退市!周末影响一周市场的十大消息

1、利空突袭!4600亿芯片巨头崩了,监管重磅反击 3月31日晚间,据我国网信网,为保证要害信息基础设施供应链安全,防备产品问题危险造成网络安全危险,维护国家安全,网络安全检查办公室按照《网络安全…

可视化和回归分析星巴克咖啡在中国的定价建议

可视化和回归分析星巴克咖啡在中国的定价建议。星巴克的拿铁大杯Tall 在各国的价格。 Claude AI | 代码自动生成的数据可视化代码 选择Claude AI 而非 ChatGPT的理由是前者更懂中文​!具体可以参见我前面的两篇文章对比两者的中英文翻译的表现及使用安装等难易程度​…

定一个小目标,先赚他1个亿(ChatGPT可能要替代你的工作了)

相关历史文章 神奇的荷尔蒙 —— 我滴个神 自律到变态的人,人生就像开了挂 人生,就是一个不断选择的过程 人生如果没有目标,跟咸鱼有什么分别 掌控情绪方能掌控人生 你把时间投资在哪里,哪里就会有成就,你是你这…

人工智能实践——Restauraut+ 食物识别分析与营养规划系统

项目背景描述: 项目以落地性强、准确度高为主要宗旨。对于餐厅而言。目前,由于使用收银机,餐厅的付款流程仍然是人工的且效率低下的。收银员会检查顾客点了什么食物,然后在收银台上进行结算。效率并不高。因此,食物识别…

揭示大型语言模型的力量、挑战和影响

目录 揭示大型语言模型的力量、挑战和影响