10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

当开创性特性已经普及,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:009438

评论 1 条评论

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

架构实战营 模块3-1

西山薄凉

「架构实战营」

这波无感升级有点秀——天翼云QEMU组件热升级方案来了

天翼云开发者社区

云计算 云主机 虚拟化

在北京选择哪家大数据培训机构

小谷哥

区块链+物联网,如何解决农产品溯源之痛?

旺链科技

区块链 物联网 产业区块链 农产品 12 月 PK 榜

社招前端一面必会react面试题集锦

beifeng1996

React

架构实战 - 模块4作业

mm

redis sentinel #架构实战营

天翼云Serverless边缘容器,为云上创新开启加速度

天翼云开发者社区

云计算 边缘计算 边缘容器

如何优化大场景实时渲染?HMS Core 3D Engine这么做

最新动态

前端一面必会react面试题(附答案)

beifeng1996

React

重磅干货!一文读懂「企业级架构」

极狐GitLab

DevOps geo 高可用架构 ha 企业级代码架构

社招前端一面经典手写面试题(边面边更)

helloworld1024fd

JavaScript

前端二面必会手写面试题汇总

helloworld1024fd

JavaScript

ZBC成功上线PancakeSwap的糖浆池,并有望在不久上线Binance

小哈区块

玩转云端 | 数据管理深似海,运维如何变“路人”?

天翼云开发者社区

大数据 数据仓库 数据存储

【面经分享,附答案】字节系统架构,一面,后端开发

小小怪下士

Java 程序员 面试

HMS Core 3D流体仿真技术,打造移动端PC级流体动效

最新动态

盘点那些日赚万金的爆款小游戏

FinFish

小游戏 小程序游戏 微信小游戏 爆款小游戏

数据分析架构新变革?Doris Summit 2022 议程首公布!|即刻报名

SelectDB

Doris summit 峰会报名 大数据 开源 数据库·

论文解读丨【CVPR 2022】不使用人工标注提升文字识别器性能

华为云开发者联盟

人工智能 华为云 文字识别 12 月 PK 榜

ZBC成功上线PancakeSwap的糖浆池,并有望在不久上线Binance

西柚子

百度APP Android包体积优化实践(四)Dex注解优化

百度Geek说

Java android 前端 12 月 PK 榜

8个Spring事务失效的场景,你碰到过几种?

JAVA旭阳

Java spring

跨平台应用开发进阶(二十八) :资源加载速度优化解决方案

No Silver Bullet

跨平台 12月月更 资源加载优化

问:你是如何进行react状态管理方案选择的?

beifeng1996

React

问:React的useState和setState到底是同步还是异步呢?

beifeng1996

React

手写JavaScript常见5种设计模式

helloworld1024fd

JavaScript

跨平台应用开发进阶(二十九) :uni-app 实现Android原生APP-云打包集成神策详细教程

No Silver Bullet

uni-app android 跨平台应用 云打包 12月月更

Vue的computed和watch的区别是什么?

bb_xiaxia1998

Vue

选择从零开发一款小游戏如何能实现变现

Onegun

小游戏 小游戏开发 H5小游戏

海量监控数据处理如何做,看华为云SRE案例分享

华为云开发者联盟

数据库 后端 华为云 12 月 PK 榜

手写现代前端框架diff算法-前端面试进阶

helloworld1024fd

JavaScript

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