首页 存档 技术 查看内容

个性十足的七种编程语言

2018-3-30 13:00 |来自: 互联网 445 0

摘要: 小编语:《七周七语言:理解多种编程范型》是国内多位技术高手推荐过的一本书,它是2011年Jolt大奖图书。这本书好在哪里?细细品味一下作者Bruce A.Tate的文字或许就能参透了。作者认为,学语言最理想的情况,是由它 ...

小编语:《七周七语言:理解多种编程范型》是国内多位技术高手推荐过的一本书,它是2011年Jolt大奖图书。这本书好在哪里?细细品味一下作者Bruce A.Tate的文字或许就能参透了。作者认为,学语言最理想的情况,是由它引领你踏上一条崭新的职业道路。理解这句话或许需要一些经历。

下面的文字介绍了《七周七语言》选择的是哪七种语言,为什么选择它们。

从众多语言中,挑出本书包含的几门语言,这一过程也许不像你想得那么复杂。我们只不过发了些调查问卷,向本书的潜在读者请教了一番。调查数据汇总上来时,有八门语言入选希望最大。不过,我先把JavaScript“踢”了出去,因为它实在是过于热门了,取而代之的是原型语言中热门程度仅次于JavaScript的Io。随后,我又把Python“踢”了出去,因为我只想给面向对象语言一个名额,而Ruby的票数多于Python。同时,这也给一个出人意料的候选者让出了位置名单上位列前十的Prolog。下面,我给出成功入围本书的最终名单以及挑选它们的理由 。①

①票数最高的八门候选语言是:Ruby、Python、JavaScript、Haskell、Scala、Erlang、Clojure、Prolog。由于正文所述的理由,作者最终挑选了本书包含的这七门语言。至于为什么是七门语言,而不是六门或八门,据作者解释,首先,主要考虑哪些语言最适合读者,斟酌之后,确定下来的语言恰好就是这七门;另外,西方文化视“7”为幸运数字,选择七门语言与此也有一定关系,当然,这绝非主要因素。

  • Ruby。这门面向对象语言高票当选,因为它不仅好用,而且好读。我曾经考虑过不介绍任何一门面向对象语言,但我又想在其他编程范型与面向对象编程之间作一些比较,因此,至少介绍一门面向对象语言还是有必要的。相比于大多数程序员的日常用法,我想把它挖掘得更深入一些,以揭示设计者的良苦用心。我最终决定重点介绍Ruby元编程(metaprogramming),因为它可以用来扩展Ruby的语法。对于Ruby榜上有名的结果,我还是相当认可的。

  • Io。和Prolog一样,Io也是本书颇具争议的语言。它虽与商业成功无缘,但其兼具简单性和语法一致性的并发结构,却是十分重要的思想。它的最简语法(minimal syntax)功能强大,与Lisp的相似性也颇能给人留下几分印象。Io不仅和JavaScript一样同为原型语言,还有着独一无二、韵味无穷的消息分发机制,因此在众多编程语言之中,它也占有小小的一席之地。

  • Prolog。没错,Prolog年事已高,但它仍然威力无穷。它能轻松解出数独问题,这着实让我大开眼界。用Java或C语言时,有些难题我殚精竭虑方能解决,用Prolog却能干净利落地搞定。承蒙Erlang发明者Joe Armstrong出手相助,我得以深刻体会到Prolog之妙,而且也正是深受Prolog影响,Erlang才得以问世。如果你此前从未用过Prolog,我保证,它定会带给你惊喜。

  • Scala。作为运行于Java虚拟机上的新一代语言,Scala为Java系统引入了强大的函数式思想,同时也并未丢弃面向对象编程。回顾历史,我发现C 和Scala有着惊人的相似之处,因为从过程式编程过渡到面向对象编程期间,C 同样起到了举足轻重的作用。当你真正融入Scala社区之后,你就会明白,为什么对于函数式语言程序员来说,Scala是异端邪说,而对于Java开发者来说,Scala是天降福音。

  • Erlang。作为名单上历史最悠久的语言之一,Erlang不仅是一门函数式语言,而且在并发、分布式编程、容错等诸多方面都有优异表现,真是想不火都难。CouchDB(新兴的基于云的数据库)的创始人就选择了Erlang,并且义无反顾地一直用它,只要花上点时间了解这门分布式语言,你就会明白原因所在。在Erlang帮助下,设计带有并发、分布式、容错等特征的应用程序将变得无比简单。

  • Clojure。这又是一门Java虚拟机语言,但正是这门Lisp方言,彻底颠覆了我们在Java虚拟机上并发编程的思考方式。它是本书唯一在版本数据库中使用同一种策略管理并发的语言。作为Lisp方言,Clojure或许拥有本书所有语言中最灵活的编程模型,因此绝不缺乏号召力。与其他Lisp方言不同的是,它不会带那么多括号②,还有众多Java库和在各平台上的广泛部署作为坚强后盾。

② 关于Lisp语言的括号,有一个广为流传的笑话:据说,一个黑客冒死偷到了美国用于导弹控制的Lisp代码的最后一页,却发现那一页上全是右括号“)”。

  • Haskell。它是本书唯一的纯函数式语言,这也意味着,它根本不存在可变状态:只要使用相同的输入参数,去调用相同的函数,就会返回相同的输出。在所有强类型语言中,Haskell拥有最令人称羡的类型模型。和Prolog一样,它也需要你花一些时间理解,但你得到的回报绝对物超所值。

如果名单上没有你钟爱的语言,我深感抱歉。老实说,还真有语言狂热分子给我发过好几封恐吓信。在本节开始提到的民意调查中,我们总共列出了几十门语言。我挑的这几门语言未必是其中最出色的,但它们特点突出、个性鲜明,都具有重要的学习价值。

相关图书

想购入的可点击【阅读原文】,乃京东链接。

题图源自网络,为富士山美景。

本文转载自:微信公众账号 - 图灵教育,版权归原作者所有!

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部