开发者应该了解的五种全新编程语言

从全面并发到可执行文件部署,这些新型语言绝对值得大家加以关注。本文介绍的是编程语言领域的五位后起之秀,它们都在以创造性的方式试图解决实际或者理论层面中的难题。

作者:核子可乐译来源:51CTO|2016-06-13 14:13

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

从全面并发到可执行文件部署,这些新型语言绝对值得大家加以关注。为什么要创造一种新语言?这倒并不是说我们就一定需要这种语言。

但新的编程语言确实会从新的角度审视开发者、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

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

大妈的多重宇宙 - YouTube

全新自媒体:科幻/读书/说故事...欢迎订阅;

或是邮件反馈可也:
askdama[AT]googlegroups.com


订阅 substack 体验古早写作:
Zoom.Quiet’s Chaos42 | Substack


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

关注公众号, 持续获得相关各种嗯哼:
zoomquiet



粤ICP备18025058号-1
公安备案号: 44049002000656 ...::