InfoWorld 整理了 11 种他们认为值得关注、以及值得花时间研究的前沿编程语言。其中有老牌语言,也有近两年才诞生的后起之秀。“即使这些新兴语言无法解决所有问题,但你仍然可以通过研究它们学到一些东西,并将它们应用于你目前常用的编程语言中。”
具体包括:
Coq
其结构有助于处理具有复杂组合或具有大量限制或规则的多层级问题。它并不适合每个人或所有问题,但它是处理出现的一些更复杂问题的好方法。
Observable
Observable 实际上是一种用于构建数据可视化展示或仪表板的机制。关键是你可以使用它将许多库和其他作为服务或 API 运行的代码包整合在一起。有些人可能称 Observable 为一种领域特定语言,官方文档将其描述为 “framework”。或者我们应该将其视为 “stack”—— 经过充分完善,各个模块可以相对和谐地运行,从而提供动态的遥测数据。
Plang
Plang 的创造者们将大语言模型直接连接到编译器上,并安排它在无需等待用户剪切和粘贴代码的情况下运行代码。你只需要输入一些基本的、大致的指令,Plang 就会完成剩下的工作。“即使它不能完全解决问题,它也可能让你离目标只有 10% 的距离。”
Python 超集:Mojo 和 Eng
Mojo 和 Erg 是两种以 Python 为基础的语言,它们添加了静态类型和内存安全等额外功能,以加快最终产品的速度并使其更加强大。
这两种语言在重要方面有所不同。Erg 的团队实施了一项更复杂、更雄心勃勃的战略,同时也更加严格。这是一种希望进一步推动函数式编程的语言,因此它偏离了标准 Python 方法。
Mojo 更接近标准 Python,创建者似乎也瞄准了系统级工作。编译器对内存安全的关注增强了 Mojo 提供快速性能的能力,正如其网站所宣称的那样 “可以一直扩展到底层硬件”。
AI 社区已经在许多应用中使用 Python,而 Mojo 希望支持更大模型所需的更高性能。这两种语言都是利用你的 Python 知识来应对更复杂任务的好方法。
Programming at the edge:MoonBit 和 Wing
MoonBit 和 Wing 使得开发者更容易编写出快速启动并尽可能快地完成的可执行代码。
MoonBit 强调最终以 WebAssembly 形式交付的可执行文件的大小。它提供了一种轻量级的静态类型对象和函数方法的混合体,然后依靠智能编译器一次性优化整个程序,充分利用每个提高速度的机会。有些人将其描述为 “data-oriented”,在这种情况下,这意味着它旨在处理无尽的字节流。
Wing 致力于帮助云编程人员,它提供许多抽象概念来处理云计算所需的琐事和繁琐工作。理想情况下,开发人员无需担心定义网络、身份管理和控制访问等问题。代码最终会被编译为 JavaScript,然后通过 JIT 编译器运行。
内存所有权:Rust、Zig、Jakt、Odin 和 Mojo
最近, Rust 等语言因其内存模型而备受关注,该模型为每个值赋予一个且只有一个 official owner。其他人可以通过 “borrowing” 来访问某个值,但控制权仍归 official owner 所有。当所有者被销毁时,内存就会被回收。
Rust 的这种内存管理方式有时被称为内存安全,有时也被称为 “ownership and borrowing”。在其他语言中也有所体现,例如 Zig、Jakt、Odin 和 Mojo。所有这些语言都以它们最喜欢的语法呈现了内存所有权概念。