程序语言的由来是什么?在历史上,计算机是只认数字的,它们不认识别的东西,我上大学的时候,有个老师给我们看他原来在大型机上写的程序,是一个穿孔卡片,告诉我们一个小程序要20几张卡片来输入计算机,还好,我们现在不用那个东西了。从数字到汇编语言,是很大的飞跃了,汇编语言实际上是机器语言的一些助记符号而已,就是不用记住那些0101,只要记住MOV之类的都好了,然后在Noam Chomsky等大牛的指引下,我们有了高级计算机语言。这个每个学计算机的人都是应该知道的。
那么计算机语言给我们带来了什么?无论是很古老的COBOL,还是学院派的CLIPS,SMALLTALK,还是新潮的JAVA,C#,等等如此之多的计算机语言,它们提供给我们描述我们这个客观世界的方式,然后通过计算机语言映射到计算机系统内部并进行计算,它提供了映射我们客观世界到计算机系统的一种映射机制。
计算机语言从本质上说,受限于John von Neumann体系,它还是面向计算机系统的,比如C语言,它本质上就是提供了一个对计算机的最小抽象,计算,流程,存储。当使用这些计算机语言告诉计算机我们的现实世界的情形的时候,就算我们是经过训练的计算机专业人员,但是还是有很多受限制的地方。
那么面对对象语言呢?来自认识论的面对对象技术,提供了对现实世界的真实模型的计算机化的描述,但是本质上这个技术还是面向计算机的,所有的谈对象技术的,总是重复的三个词是封装、继承和多态,但是这几个特性对现实世界的问题对计算机的映射有多大的帮助呢?还是我们受过训练的计算机专业人员,对我们解决真正的用户问题,面对对象技术为我们提供了什么本质上的提高了吗?原来写函数,现在写方法就是提高吗???
to be continued...
?