admin管理员组

文章数量:1539572

首先,一个编程语言没有一个好的实现,就不算完整。不必大惊小怪,一种编程语言不能只有语法规则,必须为它找到一个依附的系统。

语言的战争

如果用汇编语言只是为了让蜂鸣器响10次就不得不写出大堆代码,不难想象写出一个文字处理器或电子表格将是一项多么浩大的工程。

自从计算机CPU采用精简指令计算集开始,人们才不得不使用高级语言编程。现在绝大多数人在绝大多数时候都使用高级语言编程,很少会有人使用汇编语言编程。只有少数最关键的部分可能还会用到汇编语言,比如开发某个计算机游戏时,你需要在微观水平控制硬件,使得游戏速度得到最大限度的终极提高。Fortran、Lisp、Cobol、Basic、C、Pascal、Smalltalk、C++、Java、PHP、Perl和Python,全都是高级语言。那么,应该使用哪一种语言?

关于这个问题,现在有很多争论。部分原因是,如果你长期使用某种语言,你就会慢慢按照这种语言的思维模式进行思考。所以,后来当你遇到其他任何一种有重大差异的语言,即使那种语言本身并没有任何不对的地方,你也会觉得它极其难用,人们对于各种语言优缺点的判断经常被这种心态误导。如果你的思想被某个语言同化了,你向下看那些比你低级的语言可能会说:“这个语言怎么用?它甚至连xx功能都没有!”但是在你看向更强大的语言时,你可能就会认为那种语言和自己用的语言同样强大,只不过是加入了某些奇怪的东西。

抽象性

高级语言比汇编语言更接近人类语言,而某些高级语言又比其他语言更进一步。C语言是一种低层次语言,很接近硬件,几乎堪称可移植的汇编语言,而Lisp语言的层次则是相当高。

如果高层级语言比汇编语言更有利于编程,你也许会认为语言的层次越高越好。一般情况下确实如此,但不是绝对的。编程语言可以变得很抽象,完全脱离硬件,Prolog语言就走错了方向。

简洁性

最重要的方面就是要使得语言更抽象,高级语言应该设计得越抽象越好。语言设计者应该总是看着代码,问自己能不能使用更少的语法单位把它表达出来。如果你有办法让许多不同的程序都能更简短地表达出来,那么这很可能意味着你发现了一种很有用的新抽象方法,简洁性是静态类型语言的力所不及之处。不考虑其他因素时,没人愿意在程序的头部写上一大堆的声明语句。

 hello-world本应该是一个很简单的程序,但是使用Java语言,你需要这样写:

public class Hello {
 public static void main(String[] args) {
     System.out.println("Hello, world!");
 }
}

如果你从来没有接触过编程,看到上面的代码可能会很奇怪,让计算机显示一句话为什么要镐得这么复杂?有意思的是,程序员的反应与你一样。

使用像英语一样又长又啰嗦的语法的代价不仅是增加了打字的工作量,还包括提高了阅读代码的难度,以及占用了更多的显示器空间,python的语法非常简洁高效,被认为是最优美的编程语言。

本文标签: 梦寐以求编程语言