9前沿的编程语言值得学习的现在

这些流行语言的强大替代品正在获得发展势头——而且可能非常适合您的下一个项目

大型语言之所以流行是有原因的:它们提供了一个巨大的开放源代码、库和框架的基础,这些基础使得完成工作更加容易。这是多年来他们被一次又一次地选为新项目的结果,他们在细微差别方面的专业知识变得丰富而有价值。

有时,流行的主流编程语言的大量资源不足以解决您的特定问题。有时,您必须超越显而易见的东西来找到正确的语言,正确的结构会产生不同,同时提供额外的特性来帮助您的代码运行得更快,而无需无休止的调整和优化。这种语言可以生成更加稳定和准确的代码,因为它可以防止编程草率或出错。

除了c#、Java或JavaScript之外,世界上还有成千上万种聪明的语言。有些语言仅为少数人所珍视,但许多语言因其解决某些问题的能力而拥有蓬勃发展的社区。可能不会有成千上万的程序员知道语法,但有时做一些不同的事情是有价值的,因为尝试任何一种新语言都可以在未来的项目中获得巨大的收益。

下面的九种语言应该是每个程序员的必备品。它们可能不是对每个工作都是最好的——许多是针对特定任务的。但它们都有值得研究和投资的好处。也许有一天,这些语言中的一种被证明正是您的项目或老板所需要的。

+ ALSO ON网足球竞猜app软件络世界超越通常的怀疑:10种正在崛起的热门编程语言+

二郎神:实时系统函数式编程

二郎电话交换机的爱立信,瑞典电信怪异领域深处开始。当爱立信的程序员开始吹嘘其“九787-9”的表现,通过提供使用Erlang数据的99.9999999%的爱立信外的开发商开始录取通知书。

Erlang的秘密是功能性的范例。大部分代码是被迫在自己的小世界里,它不能破坏系统的其余部分通过副作用来操作。功能做所有的工作在内部,在小“进程”运行的行为像沙箱和只能通过邮件互相交谈。你不能只抓住一个指针,并做出快速的变化在堆栈中的状态的任何地方。你必须要保持通话层次内。这可能需要一些更多的思考,但失误也不太可能传播。

该模型还使运行时代码更容易确定什么可以同时运行。由于并发性如此容易检测,运行时调度器可以利用设置和拆除进程时非常低的开销。Erlang的粉丝喜欢吹嘘在一个Web服务器上同时运行2000万个“进程”。

如果您正在构建一个没有存放丢弃数据的空间的实时系统,比如一个移动电话交换机的计费系统,那么就可以使用Erlang。

Go:简单而有活力

谷歌并不是第一个调查语言集合的组织,结果发现这些语言混乱、复杂而且通常很慢。2009年,该公司发布了它的解决方案:一种静态类型语言,它看起来像C语言,但包含了后台智能,使程序员不必指定类型和处理malloc调用。使用Go,程序员可以拥有编译C语言的简练和结构,以及使用动态脚本语言的易用性。

尽管Sun和苹果遵循创建Java相似的路径和斯威夫特谷歌分别对Go做出了一个截然不同的决定:该语言的创建者想让Go“简单到足以让一个程序员记住”。Go的创作者之一罗伯·派克曾对Ars Technica说过一句著名的话:“从长远来看,有时候拿走一些东西可以让你收获更多。”因此,很少有像泛型、类型继承或断言这样灵活的附加功能,只有处理字符串、数组和散列表的if-then-else代码干净、简单的块。

语言据报道,谷歌的庞大帝国的内部完善,并正在其他地方接受其中Python和Ruby的动态语言爱好者可以哄骗接受一些来自编译语言的严谨性。

如果你是一个启动追赶谷歌的眼睛,需要建立一些服务器端的业务逻辑,Go是一个很好的开始

Groovy: Java脚本的优点

Java世界非常灵活。说明一下它的吊带方法,比如为每个变量指定类型,用分号结束每行,以及为只返回值的类编写访问方法。但它着眼于动态语言的吸引力,并构建了自己的与Java紧密集成的版本。

Groovy为程序员提供了抛弃方括号和分号的所有单调约定的能力,从而编写能够利用所有现有Java代码的更简单的程序。一切运行在JVM。不仅如此,所有的东西都紧密地链接到Java jar,因此您可以享受现有的代码。Groovy代码像动态类型脚本语言一样运行,可以完全访问静态类型Java对象中的数据。

Groovy程序员认为他们同时拥有这两个世界的优点。Java代码库的强大功能以及使用闭包、操作符重载和多态迭代的乐趣——更不用说使用问号来表示空指针检查的简单性了。它比输入另一个if-then语句来测试零度要简单得多。很自然,所有这些灵活性都倾向于用少量的击键创建同样多的逻辑。谁会不喜欢呢?

最后,所有羡慕动态语言的简单性的Java程序员都可以加入进来,而不用离开Java领域。

OCaml的:复杂的数据层次变戏法

有些程序员不想指定变量的类型,为此我们构建了动态语言。另一些人则喜欢确定变量是否包含整数、字符串或对象。对于他们来说,许多编译语言提供了他们想要的所有支持。

还有那些谁的梦想精心制作的类型层次,甚至创造类型的“代数”的发言。他们想象的名单,并都汇集到了表达复杂的,multileveled数据十天异构类型的表。他们讲的多态性,模式匹配原语和数据封装的。这是一个类型,元类型复杂,高度结构化的世界只是一个开始,而metametatypes他们的愿望。

对于他们来说,有OCaml,这是编程语言社区为普及上述思想所做的努力。有对象支持、自动内存管理和设备可移植性。甚至有OCaml应用程序可从苹果的应用程序商店

OCaml的一个理想项目可能是建立一个符号数学网站来教授代数。

JavaScript使之简洁明了

从技术上讲,CoffeeScript不是一种语言。它是一个预处理器,可以将您编写的内容转换为JavaScript。但它看起来不同,因为它漏掉了很多标点符号。您可能认为它是Ruby或Python,尽管其内部行为类似于JavaScript。

CoffeeScript的时候开始分号仇敌被迫用JavaScript编程,因为这是Web浏览器的语言。改变Web的工作方式将是一项无法克服的任务,因此他们编写了自己的预处理器。结果呢?程序员可以编写更干净的代码,并让CoffeeScript将其转换为Web浏览器所要求的重标点的JavaScript。

分号的缺失只是一个开始。使用CoffeeScript,你可以创建一个变量而不需要输入var,你可以定义一个函数而不需要输入function或用花括号将其括起来。实际上,在CoffeeScript中几乎不存在花括号。代码是如此的简洁,它看起来像一个现代主义建筑相比哥特式大教堂。这就是为什么许多最新的JavaScript框架通常是用CoffeeScript编写和编译的。

Scala: JVM上的函数编程

如果您的项目需要面向对象层次结构的代码简单性,但又喜欢功能范例,那么您有几种选择。如果Java是您的领域,那么Scala就是您的选择。

Scala运行在JVM上,通过交付符合Java类规范的代码和与其他JAR文件的链接,将函数编程的所有干净设计限制引入Java世界。如果其他JAR文件有副作用和其他令人头疼的问题,那就随它去吧。您的代码将是干净的。

类型机制是强静态的,编译器执行推断类型的所有工作。基本类型和对象类型之间没有区别,因为Scala希望所有东西都是从一个url -object调用Any派生出来的。它的语法比Java更简单、更干净;Scala人称其为“低级仪式”。你可以保留段落长度的CamelCase变量名早在Java的土地。

Scala提供了函数式语言所期望的许多特性,比如惰性求值、尾部递归和不可变变量,但是已经进行了修改,以便与JVM一起工作。基本的元类型或集合变量,如链表或哈希表,可以是可变的,也可以是不可变的。尾递归只适用于较简单的示例,而不适用于复杂的相互递归示例。尽管实现可能受到JVM的限制,但思想都是现成的。此外,它还伴随着无处不在的Java平台和开源社区编写的现有Java代码的丰富集合。对于许多实际问题来说,这是一个不错的权衡。

如果您必须在千个处理器的集群中处理数据,并且有一堆遗留Java代码,那么Scala是一个很好的解决方案。

Dart:没有JavaScript的JavaScript

受欢迎并不像人们说的那么好。JavaScript可能比以往在更多的堆栈中使用,但熟悉会导致轻视——而轻视会导致人们寻找替代品。Dart是谷歌开发的一种新的Web浏览器编程语言。

Dart与JavaScript的基本理念并没有太大的区别。它工作在背景动画的所有div和Web表单对象,我们看到。设计者只是想把JavaScript中那些令人讨厌的部分清理干净,让它变得更简单。他们不能脱离底层架构太远,因为他们想把Dart编译成JavaScript,以加快采用速度。

亮点可能是,许多事实上的JavaScript库折叠的附加功能。你不需要JQuery的或任何其他公共库的修改HTML页面的某些部分。这一切都没有用合理清晰的语法。此外,更复杂的数据类型和语法速记技巧将节省几个按键。谷歌正在通过提供开源开发工具为所有的主要平台奋勇拼搏。

如果你正在构建一个动态的Web应用程序,并且厌倦了JavaScript,那么Dart提供了一个干净的语法来创建多个充满来自不同Web来源的数据的舞蹈DIVs。

函数式编程,纯粹而简单

对于超过20年,在函数式编程工作的学者一直在积极开发哈斯克尔,专门封装关于副作用的邪恶观念的语言。它是功能性的编程理想的更纯的表达式之一,具有用于处理I / O通道和其它不可避免的副作用小心机制。代码的其余部分,不过,应该是完美的功能。

社区非常活跃,有十几种Haskell的变体等着您去探索。有些是独立的,有些集成了更主流的工作,如Java (Jaskell, Frege)或Python (Scotch)。大多数名字似乎都与苏格兰有关,苏格兰是哈斯卡尔研究的温床,或者是哲学家/逻辑学家,他们形成了哈斯卡尔所表达的许多思想的知识来源。如果您认为您的数据结构将是复杂的,并且有许多类型,那么Haskell将帮助您保持它们的直直性。

朱莉娅:为巨蟒的生存带来速度

科学规划的世界充满了Python的爱好者谁享受简单的语法和自由的像指针和字节粗糙的细节避免思维。它的所有优点,但是,巨蟒常常是令人极其缓慢,这可能是一个问题,如果你正在捣鼓大数据集作为在科学计算的世界通用。为了加快的问题,许多科学家转向在C中的核心,这是快得多写的最重要的程序。但是,马鞍他们的软件用两种语言书写,因此更难修改,修复,或延长。

茱莉亚是一个解决这种复杂性的方法。它的创作者采取了简洁的语法由Python程序员崇拜和调整它,这样的代码可以在后台进行编译。这样,你可以建立一个笔记本电脑或类似与Python交互式会话,但是您创建的任何代码都将立即编译。

12 第1页
页面1的2
IT薪资调查:结果在