从全面并发到可执行文件部署,这些新型语言绝对值得大家加以关注。为什么要创造一种新语言?这倒并不是说我们就一定需要这种语言。
但新的编程语言确实会从新的角度审视开发者、IT管理员以及其他相关人员所面临的问题。因此,我们也有必要关注那些希望以新的视角解决固有障碍的新型语言。
另外,新语言的诞生也未必只关注语言本身,有时候其关注重点在于语言所提供的环境。谷歌的Go与Mozilla的Rust语言并不提供新语法,但却带来了新的工作链与项目管理策略。
下面来看编程语言领域的五位后起之秀,它们都在以创造性的方式试图解决实际或者理论层面中的难题。
Stanza 0.8.22
要点: 亦被称为L.B. Stanza,此项目由加州大学伯克利分校开发,在语言当中高度强烈拆分这一理念。
Stanza可编译为本地代码,但并不要求特定类型。在添加之后,该语言能够自动执行极为强大的代码检查机制。另外,它还利用一套不涉及类的对象系统——其实际使用方法与函数——并能够显著降低协同例程的并发难度。
类似语言: Python、Ruby且在某种程度上类似于函数语言
当前平台: Linux, Mac, Windows
Nim 0.13
要点: Nim继承了Python的设计思路——简洁的语法、便捷性、访问该语言自己的语法树——并使其可在静态类型语言中起效,同时可以执行自己的垃圾回收与内存管理方案。其它出色特性还包括:手动定义运算符(大家无需重载现有运算符)、宏并将Nim应用编译为无依赖性的独立二进制文件。
类似语言: Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon (该语言的设计师们自己也承认这一点)
当前平台: 在理论上支持任何具备C编译器的平台,但二进制文件目前仅适用于Windows。
Crystal 0.17.4
要点: 其语法与Ruby属同一模式——因此Ruby开发者能够快速上手。但与Ruby不同,Crystal能够编译为本地代码。它还拥有静态类型检查机制,而不需要在变量或者方法参数中进行类型指定。另外,它能够直接绑定至C代码。Crystal语言目前尚不支持并发——所有任务都在单一线程内执行——不过其拥有并发控制机制,而且并发与软件包管理器都已经被纳入开发议程。
类似语言: Ruby
当前平台: Linux, OS X
Nit 0.8
要点: 作为另一款脱胎于Python的语言,Nit的开发初衷在于更为简单地同现有C/C++、Java以及Objective-C代码协作与接入。同样耐人寻味的是,尽管尚处于早期开发阶段,但Nit语言已经将Android作为受支持编译目标,因此其很有可能成为Android平台上的应用开发语言。
类似语言: Python, Pascal, Ruby
当前平台: Linux, OS X,可通过Cygwin运行在Windows上,但性能表现较差。
Pony 0.2.1
要点: Pony的目标是解决软件开发中经常出现的一项难题:如何在不影响竞争状况、内存安全或者造成死锁问题的情况下,对对象等抽象机制进行处理。Pony尝试使用静态类型与“actor”对象类型解决该问题,这样我们就能更轻松地了解各条目究竟是什么、其以何种顺序执行。
类似语言: Python (语法类似), Erlang (强大的并发系统)
当前平台: Linux, OS X, Windows