racket和bat的用法和区别 racket

摘要:大多数程序员在其职业生涯中,接触到的编程语言不止一种,但主要掌握并运用的多数只有一门 。那么在数量繁多、适用领域各不相同的编程语言中,哪一门更适合你来学习呢?“老程序员”Eleanor Berger 总结了这些年来他对各种编程语言的看法及其发展历程,接下来就让我们一睹他心目中的最佳编程语言是什么 。


最近,著名游戏程序员、id Software 创始人之一John Carmack在采访中表示,程序员应该专心学好一门编程语言 。这倒让我感到有点惊讶 。虽然我个人非常赞同这条建议,但在如今的程序员圈子里,这种观点是有争议的 。
我猜,我就是大家所说的“老程序员”了 。我的岁数不小了,一生都在从事编程工作,而且从步入社会之后就一直在从事这项专业工作 。有时,我觉得自己是一名编程语言爱好者,亲眼目睹了许多编程语言的发展 。回顾过去,这是一段激动人心的历史,我们会不由自主地得出一个(错误的)结论:多掌握几种编程语言总没坏处 。编程语言的历史发展非常精彩,但如今的发展形势相对比较平和 。
在本文中我想回顾一下曾经的历史,总结经验教训,并看一看究竟哪种编程语言才是最好的标准化语言 。
01
史前阶段(50年代~80年代)
随着计算硬件和计算机科学作为一门学科逐渐兴起,计算机编程(除了处理器本身的指令之外)也开始缓慢地发展 。在最初的几十年里,编程语言主要是学术界的研究对象,还俘获了一小部分研究人员 。程序员的选择很有限,主要取决于领域 。
业务编程使用COBOL,科学编程使用Fortran,还有一些其他语言通常用于特定领域、研究或硬件 。
对于大多数程序员来说,整个编程生涯或在很长一段时间里,只需专心学习一门编程语言 。虽然有人对编程语言的设计感兴趣,但彼时该领域还很稚嫩 。尽管出现了一些很有趣的创新,但对于如何才能设计一种好的编程语言,人们还没有很好的理解 。
02
专业化(80年代~90年代)
随着计算机硬件数量的增加以及用途的日益多样化,编程语言的数量也开始增长,编程语言的选择变成了一个流行的话题 。人们开始对编程语言进行分门别类 。我们可以通过程序员的种类以及他们渴望达到的专业水平,判断他们会选择哪种语言 。个人计算机编程爱好者使用越来越流行的BASIC 。这是一种很荒诞、很原始的编程语言,却被广泛使用并成为了一代程序员(包括我自己)的引路人 。Pascal引入了结构化编程,并产生了巨大的影响(Pascal与Turbo-Pascal 和 Delphi 建立了一个蓬勃发展的社区,但最终消失了) 。
起源于UNIX的C成为了系统编程语言 。C++成为了C的后继者,并借鉴了Smalltalk的面向对象编程,成为了专业应用程序和服务开发人员的语言 。最终 Visual Basic(与BASIC毫无关系)普及了“可视化编程”,满足了应用程序开发的需求(随着 Windows 的出现而迅速增长),并成为大众的首选 。但人们普遍认为,VB程序员是领域专家兼职编程工作,而C和C++才是“专业”的编程人员 。
这个阶段,人们仍然没有很好地理解编程语言的设计,导致许多流行的编程语言很多方面的设计都不太理想 。C语言简单而强大,但很难熟练掌握,有可能出错的地方太多 。C++的意图虽好,但最终的设计不佳,而且使用感不好 。Visual Basic既有趣又简单,但有点儿戏,在当时的技术条件下,优雅与效率都不达标 。Smalltalk 和 LISP 都是有趣而优雅的语言,但由于捆绑到了专门的硬件和昂贵的工具,导致最后失势 。
03
成熟(90年代~2000年)
后来,互联网兴起 。互联网对编程语言的影响究竟有多大也许未可知,但无疑这是一个重大因素 。很久以前,编程语言是一个稀有之物,通常诞生于研究实验室和大型商业公司;但如今似乎任何一个人都可以开发出自己的编程语言 。曾有一段时间,PERL成为了流行的通用语言,涵盖了从系统管理到 Web 编程的方方面面 。
后来,Python从科学研究语言变成了简单易学的通用语言,尽管最初发展缓慢,但最终席卷了整个世界 。据传,Netscape 的 Brandan Eich仅用了几天时间就开发出了JavaScript(作为一种功能十分有限的浏览器扩展语言) 。这不仅证明Eich是一个天才,也证明那个时期人们对编程语言的设计有了很好的理解 。
这一时期出现了许多其他的编程语言,其中最有名的是Java 。这门语言本身并没有特别之处,但它提供的JVM是一个通用的运行时环境,实现了“编写一次,到处运行”,也就是说该语言十分通用,不受特定硬件、操作系统、或目标环境的限制 。严格来讲,早期的JVM并没有什么值得炫耀的,但它开创了语言运行时及部署选项日益成熟的时代 。

秒懂生活扩展阅读