写点什么

当开创性特性已经普及,Scala 未来将走向何方?

  • 2025-04-18
    北京
  • 本文字数:1161 字

    阅读完需:约 4 分钟

当开创性特性已经普及,Scala 未来将走向何方?

本文最初发布于 DEV CLASS。


Scala 的创建者 Martin Odersky 以及关键库的作者与维护者李浩毅描述了他们对 Scala 语言未来的规划,并希望 Scala 能在现代编程领域保有一席之地。


该开源语言于 2003 年首次发布,其最大特点是融合了函数式编程和面向对象编程。Scala 主要是编译成 Java 字节码,不过也可以使用 Scala.js 编译成 JavaScript 。流行的事件流平台 Apache Kafka 主要就是用 Scala 编写的,Scala 还是 Apache Spark 的核心语言,用于数据分析和机器学习。


李浩毅是 Databricks(一家广泛使用 Scala 的分析公司,由 Apache Spark 的初创者创建) 的软件工程师。


根据 Odersky 和李浩毅的观点,Scala “不再像 2010 年代中期那样风头正劲”,但在主流语言之外还是保有一席之地。尽管如此,从他们的文章中,我们还是能感受到一些对 Scala 未来的担忧,其中提到了 IDE 支持不佳和可学习性等问题,并将冻结所有特性开发的呼吁描述为 “共同的要求”,但这将注定 Scala 语言的 “停滞和失败”。


在语言作者看来,Scala 是一种边缘语言,它提供了更多的特性,但在完善性和稳定性方面不如 Java;但它的这种地位已经被 Java 和 Kotlin 等其他语言的进步所削弱。至少在 JVM(Java 虚拟机)生态系统中,Scala 首创了 lambdas 和模式匹配等特性,但他们也写道,“Scala 过去独有的很多功能现在都很常见了。”


Odersky 和李浩毅为 Scala 及其社区设定了一系列目标,其中包括:


  • 通过显式 null 等特性提高安全性,默认情况下类型不可为空;

  • 提供更多的便捷特性,如命名元组,允许通过名称引用类型元素;

  • 解决长期存在的问题;

  • 提高可学习性,例如优先考虑较简单库(包括 Scala 工具包)的代码和文档,并尽可能使 Scala 语法与其他语言保持一致;

  • 改进集成开发环境(IDE)支持,包括改进 VS Code 使用的 Scala 语言服务器 Metals ;

  • 改进构建工具,因为许多人认为,标准构建工具  sbt  过于复杂,尽管它的名字是 “简单构建工具” 的首字母缩写。


尽管这些目标看起来很合理,但可能还不足以改变 Scala 的地位并使其再度流行。


2021 年 5 月发布的 Scala 3 是一次重大更新,但与 Scala 2 并不完全兼容。2023 年的一项调查发现,只有 49% 的 Scala 开发人员在使用 Scala 3。当语言设计者发布经过改进但不兼容的版本时,就会出现这种典型的问题;尽管有好处,但也往往会破坏生态系统,和 Python 2 和 3 的情况一样。


一位仍在使用 Scala 2.13 的开发人员说,“Scala 的情况似乎比 Python 更糟糕。这门语言看起来完全不同,而且没有一个简单的迁移路径“。


另一位开发人员则反驳说,”Scala 3 才是 Scala 真正的样子。这门语言近乎完美,最重要、最流行的库和工具… 都已经支持新版本多年了“。


原文链接:

https://devclass.com/2025/03/25/the-future-of-scala-pioneering-features-are-now-commonplace-so-what-comes-next/

2025-04-18 08:009376

评论 1 条评论

发布
用户头像
未来就是有一个编译器可以单独编译成本地程序,不依赖JVM的。
2025-04-19 17:29 · 北京
回复
没有更多了

为什么Spring Boot项目加上就可以更新版本?

冉然学Java

程序员 源码分析 springboot Java 分布式 Java core

彻底搞懂云桌面配置及实践踩坑【华为云至简致远】

神奇视野

Python 科技

使用华为HECS云服务器打造Telegraf+Influxdb+Grafana 监控系统【华为云至简致远】

科技云未来

Grafana Influxdb 系统管理 开源监控系统 提高效率

Mysql 生成排序序号

六月的雨在InfoQ

8月月更

【实战】Next.js + 云函数开发一个面试刷题网站

狂奔滴小马

Serverless React

生物统计师与临床医生协同研究使用的低代码洞察平台丨数据科学 x 临床医学

ModelWhale

团队协作 Jupyter Notebook 数据科学 低代码开发 临床医学

利用java实现视频人像分割及视频背景替换

夏夜许游

Java 图像分割 视频人像分割 背景替换

大数据程序员培训学习多长时间可以找工作

小谷哥

2022最新发布超全的Java面试八股文,整整1700页,太全了

Java工程师

Java 面试 八股文

DeepLink在转转的实践

转转技术团队

ios android 客户端

NFT盲盒挖矿DAO智能合约dapp系统开发详情

开发微hkkf5566

交大医学院临床研究中心如何将 ModelWhale 应用于临床医生教学、研究丨数据科学 x 临床医学

ModelWhale

人才培养 数据科学 低代码平台 教学 临床医学

ModelWhale 云端运行 WRF 中尺度数值气象模式,随时随地即开即用的一体化工作流

ModelWhale

数据科学 气象 全流程一体化 WRF 大气科学

Jupyter Notebook 交互式编程 & 低代码拖拽式编程 | 数据科学生态下的理想平台

ModelWhale

云原生 Jupyter Notebook 数据科学 低代码开发 协作平台

阿里云 EMAS Serverless 升级发布

移动研发平台EMAS

小程序云开发 阿里云 Serverless 开发者 云开发

一次做数据报表的踩坑经历,让我领略了数据同步增量和全量的区别

百思不得小赵

数据同步 增量同步 全量同步 签约计划第三季 8月月更

开源一夏 | 打工人的第25天-曾经的考研人

Amazing_eve

#开源

技术干货|如何将 Pulsar 数据快速且无缝接入 Apache Doris

SelectDB

数据库 Doris pulsar 数据导入 kafaka

高性能创作本,日常修图剪辑选华硕无畏Pro15 2022完全足矣!

科技热闻

手摸手带你完成智慧路灯构建及避坑【华为云至简致远】

神奇视野

Python 科技

开源一夏 | 阿里云物联网平台之极速体验

六月的雨在InfoQ

阿里云 开源 物联网 8月月更

阿里大佬力荐的这份“Spring全家桶”太强了,在轻松中学习掌握

Java工程师

Java spring spring-boot

破解数字化转型困局,企业分析协同场景案例解析

ModelWhale

数据分析 数字化转型 构建模型 成功案例 协同软件

使用前端技术实现静态图片局部流动效果

dragonir

CSS JavaScript html 前端 SVG

云硬盘EVS详解以及如何用与避坑【华为云至简致远】

神奇视野

Python 后端 云服务 科技

出海季,互联网出海锦囊之本地化

融云 RongCloud

元宇宙 IT业界

ffplay视频播放原理分析

百度Geek说

音视频

兆骑科创创业大赛,双创服务平台,线上直播路演

兆骑科创凤阁

R7 6800H+RTX3050+120Hz 2.8K OLED屏,无畏Pro15 2022开启预售

科技热闻

快速定位线上慢SQL问题,掌握这几个性能排查工具可助你一臂之力

IT学习日记

MySQL性能优化 数据库优化 MySQL 数据库 签约计划第三季 explain关键字

兆骑科创高层次人才引进平台,创新创业赛事活动路演

兆骑科创凤阁

当开创性特性已经普及,Scala 未来将走向何方?_编程语言_Tim Anderson_InfoQ精选文章