`
AisiniLe
  • 浏览: 9278 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

“良好”的编程语言

阅读更多

总是有同学争论哪种编程语言强势,C,C++抑或Java。

今天刚看《Java语言精粹》这本书,对“精粹“做了一个很好的解释,我摘录下来和大家一起分享。

 

“良好”的编程语言

 

“良好”一个承载了诸多价值的词汇。因此,当我们说一门编程语言(或者它的一部分)“良好”的时候,我们最好想想自己究竟想表达什么?

 

什么能使一门编程语言“良好”?它的良好又归功于语言中的哪些部分?这样的问题常会引发夹杂着火药味的争论。而这样的争论——它们总是在争论,永远不会单纯的探讨——有一种“无止无休”的天性,与诸如“最好的编辑器是什么”、“最恰当的代码格式化方式是什么”,或者“最合适的开源许可是哪种”这样的争论如出一辙。

 

关于这种争论,最声名卓著(抑或最臭名昭著)的开端是Richard Gabriel的一篇随笔“论‘更劣即更优’的崛起”(The Rise of Worse is Better”)。在这篇文章中,Gabriel做了很有说服力的论证:Lisp过去曾经是(现在依然是)比C语言更好的语言,但是由于各种与语言“优良”完全无关的原因,C语言还是赢了。事实上,根据文中的观点,正是因为C语言和UNIX比其他的竞争者(LispMultix)更糟糕,才使得C语言能在程序设计领域成为主导。

 

这种争论的最主要的问题在于它错误的认为“更糟糕”和“更良好”这样的谓词都可以描述直接依附于实体的属性。说的在简单点,这类争论的都假设你可以在真空中,或者以某种绝对的方式来评判一种语言的优劣。

 

对于这些概念来说,这样理解是不对的,尤其不能将这样的理解运用于编程语言上,因为它们只是达成其他目的的途径。人们不应该去争辩x语言由于y语言,更不应该做这样的断定,因为要说“优于”,我们需要第三个条件。当你谈论一种编程语言比另一种编程语言更好之前,我们需要知道你正在用它做什么。同样,如果你想讨论一种编程语言比另一种编程语言更糟糕,你也必须说说正在用它做什么。某种语言做某事可能是更良好或更糟糕的,而用于不同的事情孰优孰劣呢?完全可能得到不同的答案。

 

这很重要,要理解为什么重要,让我们再回到Gabriel关于“更劣即更优”的论点。Gabriel告诉大家:Lisp更简单,是因为他它给予程序员更大的灵活度,被一套更优良的编程工具环绕着,而且更适于代码的快速开发。但是他没有支出的是:在当时C语言可以用在更低廉的硬件上,用C语言编写的代码运行起来比用Lisp编写的代码更快(在廉价的硬件上)。C语言赢得了语言较量这一事实并不能说明人们高估了更差的东西,轻视了更好的东西,只能说明作出决定的人们更多的评估了C语言所擅长的领域,而较少的评估了Lisp所擅长的领域。

 

Gabriel在其主张中假定:使一门编程语言“良好”的因素是程序员个体使用这种语言时的生产率。即使我们相信他的所有主张,所能做出的推断也不过是Lisp对某位程序员个体来说是更好的编程语言。但语言在这方面的特性必须与其运行环境的成本综合考虑,对于后者,C语言做得更好。事实并不是C语言更差,而是它在处理某些问题上更差,而在处理其他问题上更好。C语言之所以能赢得这场语言战争的胜利,原因在于:对于做决定的人们来说,在低廉硬件上运行更快要比提高单个程序员的生产效率更重要。

1
0
分享到:
评论

相关推荐

    简单的中文编程语言青语言是一门完全基于中文语言习惯打造的编程语言,主要面向青少年、儿童和非专业人士

    青语言是一门完全基于中文语言习惯打造的编程语言,主要面向青少年、儿童和非专业人士。当今世界信息化高速发展,信息技术已成为促进社会进步的重要推力。随着我国信息化的不断进步,尤其是互联网行业的高速发展,...

    intel cilk多线程编程语言学习

    intel cilk多线程编程语言学习,读者需要良好的C/C++语言功底。

    有关JAVA的译文 Clojure:“挑战”Java编程语言

    Clojure是一套发展快速的新的编程语言,特别是,它为多核计算做了新的解决方案。在今后的软件设计中无论使用Clojure语言,还是坚持使用Java语言,Clojure语言都将与java做比较,哪种是设计软件的最佳方式。 Clojure...

    《Python编程金典》读书笔记

    良好编程习惯 14.3. 常见编程错误 14.4. 性能提示 15. 可扩展标记语言(XML) 15.1. 知识点 15.2. 常见编程错误 15.3. 移植性提示 15.4. 软件工程知识 15.5. 性能提示 15.6. 示例 16. Python的XML处理 ...

    机器人编程语言python-10大热门机器人编程语言,你掌握了哪种?.pdf

    帕斯卡尔旨在⿎励良好的编程习惯⼩号,并介绍构造,如指针,它⼀个很好的"敲门砖",从普通版使⼀个 更复杂的语⾔。这⼏天,这两种语⾔都有点过时,有利于"⽇常使⽤"。但是,如果要进⾏⼤量的低级编码,或者想要熟悉...

    C程序设计语言》(第2版·新版

    C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 C语言也很适合搭配汇编语言来使用...

    从零学习编程技术-C语言编程的基础

    C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管C语言提供了许多低级...

    Python(面向对象编程语言) v3.4.0.zip

    与其他主要的语言如 C 和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C 编写,然后在...

    良好的S7-300编程习惯

    2、 如遇特殊情况下采用语言编程,多数情况下请使用梯形图编程,方便别人阅读;3、 对于经常调用的子程序,可以做成子模块,频繁调用,例如:求几个数平均值或求几个数的最大值;4、 程序要有注释,变量及中间变量...

    Hello-World-:这是用各种编程语言编写的各种hello单词的解决方案的仓库,其目的是建立各种编程语言的各种hello世界编程语言的良好数据库。

    700种编程语言 维基百科声称大约有700种编程语言,而其他人则说接近9000种! 事实是,在整个历史中已经创建了无数种编程语言。 但是,就像口头语言一样,根据其流行程度和使用情况,存在着一种编程语言层次结构。 ...

    猎头java技术型。熟练掌握JAVA面向对象编程语言

    熟练掌握JAVA面向对象编程语言,有良好的编码习惯 熟悉常用的JavaAPI,包括多线程、IO、Socket、JDBC、XML、反射等 熟练使用HTML、CSS、JavaScript、JQuery,并了解Ajax 熟练使用JSP、Servlet、javaBean进行web应用...

    嵌入式SQL语言

    SQL语言是非过程化语言,大...若把SQL语言嵌入到过程化的编程语言中,则利用这些结构,程序开发人员就能设计出更加灵活的应用系统,具有SQL语言和高级编程语言的良好特征,它将比单独使用SQL或C语言具有更强的功能和灵活性.

    JAVA编程语言在计算机软件开发中的应用探究.pdf

    随着信息技术的迅速发展,人们生活和工作发生了很大变化, java语言在信息技术领域中的广泛运用,也取得了良好的效果。利用 java语言进行软件的研发,可以让工作人员在进行编程过程中更加方便快捷,从而促进我国计算机...

    《python编程金典》高清扫描版PDF

    书中采用作者独创的“活代码”教学方式,层层揭示了Python这一程序设计语言的强大功能,并通过穿插在全书各处的屏幕输出和编程技巧与提示,帮助读者搭建良好的知识结构、养成良好的编程习惯、避免常见的编程错误以及...

    Spow:Spow 编程语言

    这个项目没有成为世界上下一个大型编程语言的愿景,未来也不会有这个目标,但它是学习编程语言、解释器和编译器的良好开端。 这个项目的独特收益更多是关于解释器设计和 C 语言编程。 这个项目旨在成为每个想要尝试...

    C#(读作“C Sharp”)是一种由微软开发的强类型、面向对象的编程语言,广泛应用于各种应用程序的开发 以下是对C#的500字

    C#(读作“C Sharp”)是一种由微软开发的强类型、面向对象的编程语言,广泛应用于各种应用程序的开发。以下是对C#的500字资源介绍: C#语言的设计融合了C++的强大功能和VB的易用性,它使用.NET框架,为开发者提供...

    C#语言基础,C#语言入门教程

    C#是一种面向对象的、类型安全的编程语言,由微软公司开发,它是.NET框架的主要编程语言之一。C#语言具有很多优点,例如: - C#语言的语法简洁明了,易于学习和使用; - C#语言具有良好的跨平台性能,可以在多个...

    快手编程集成帮助

    AAuto是专用于桌面软件快速开发的新一代混合型编程语言, 兼具动态、静态语言优势,语法更可兼容大部分流行语言,学习成本低,开发速度快,并永久免费。 面向个人或企业用户,商业或非商业应用,本软件永久免费。 ...

    Python 编程实践

    python是当今世界流行的编程语言之一。python编程实践共15章,通过一些短小精悍的交互式python脚本帮助学生进行练习,并在这个过程中掌握诸如数据结构、排序和搜索算法、面向对象编程、数据库访问、图形用户界面等...

Global site tag (gtag.js) - Google Analytics