`
ruilin215
  • 浏览: 1148157 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

语言的座右铭

阅读更多

今天和同事做了一件非常有意思的事,那就是探究各种语言在设计初期的主导思想,很多设计者,称这个思想叫座右铭。因此,语言也因为设计者而拥有了座右铭。

我们搜索了几个语言,拿出来和大家分享一下。如果大家有不同意见或者有补充的,可以在下面继续跟上,我会陆续补充到文章中。不过为了不让大家误会本文的意思,我在文章的前面,将意思说清楚。

我们在学习语言的时候,往往是从语法开始的。可是如果我们已经跨越了这一层(我相信大多数人已经没问题了),而在探索系统设计的时候,我们越发会希望理解设计者背后的意图以及,他真正想表达的意愿,我们可以称之为灵魂的部分。

很多地方,将设计和艺术放在一起相提并论,正是因为其也如艺术一样,设计者将自己的意图作为灵魂一样注入到软件中,从此软件并有了生命力,软件也从此成为别人学习的源泉。

在众多的设计中,语言的设计更能体现这一点,也更能影响众多的人。当我们还在比较各种语言之间的差异的时候,我们是否忽略了,去关注一下设计者的意图呢?

我不是能欣赏艺术画的人,所以我非常奇怪大家到底能从毕加索的画中看出什么来。我只是在程序方面稍微有点入门,但也会每每因为发现设计中的精妙之处而兴奋不已,并四处奔走相告。因此我也希望,我们设计的软件也能带给那些有鉴赏力的人们一些欢乐。学习别人的,是想让自己做得更好。

下面是几种语言的座右铭。

  1. Python的座右铭一向是“装备齐全”(batteries included)。作者Guido van Rossum。这是指在安装该语言时会附带一大套标准库和功能程序。包括内置的 Python 功能和第三方开放源代码的工具。因此除了动态语言本身的特性,你更可以理解为什么Python会发展到如此的地步呢?他在各语言系统互调方面下足了功夫,也正是基于这个座右铭啊。
  2. Perl的座右铭是“不只一种方法可以达到”(TMTOWTDI; There's More Than One Way To Do It)。理解这个,你就会明白,为什么Perl语言中,同一个功能要实现N遍。这在一些语言中几乎是被严格静止使用的。请在理解的最后,记住作者的名字Larry Wall。
  3. Ruby的座右铭是“快乐编程”(Enjoy Programming)。松本行弘"Matz"(Matsumoto Yukihiro)是他的作者。我不是很喜欢日本人。但是不可否认,ROR让Ruby很成功。Ruby继承了Perl的座右铭,又在此基础上推出自己的“快乐编程”。其行径完全是在挑衅所有的条条框框。Ruby以前有一个座右铭:“最小惊讶原则”(Principle of least astonishment或Rule of least surprise),因为和程序员一些理解上的歧义而被放弃了。不过透过这个,也可以发现,设计者在当初显然考虑了让学习语言的人减少痛苦。
  4. Java的特点是“一次编译,到外运行”(write it once,run it everywhere)。虚拟机的出现,让SUN在操作系统这方面占有了一席之地。这里面其实充满了商业气息。
  5. C#则更充满了商业气息。我相信设计的指导思想应该是:“超越Java”,因为从语言上讲,看不出他的优势所在。相反,更多的是在原有的基础上进行改进。很多特性都是与Java进行比较。包括语法和性能方面,都进行着不大不小的竞争。MS和SUN由来已久的矛盾真是昭然若现。
  6. C++的设计重要的是引入面向对象思想。包括泛型编程也显然是对象的概念深刻思考之后加入的。不过由于其是在Windows之前发明的。其对Windows编程方面,框架的封装不是很好。
  7. Delphi的理念正如它被宣传的一样,就是“快速开发”(RAD)。VCL框架是这样的,IDE也是这样的,编译器也是这样的。很多人摒弃Delphi,就是宣称其太过简单。但真正聪明的人都知道,这正是他最成功的地方。

上面的7中语言中,前三种动态语言都是网上公认的座右铭。后面的Java、C#、C++,Delphi有一点杜撰的嫌疑。是从自己的认识说一些他们的特点。欢迎大家指正和补充。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics