对于计算机而言,程序是其灵魂,如果没有了程序,计算机也就成了“植物机”了!
因而如何写程序/编程序(可不是瞎编,否则小强(BUG)总会给你意外惊喜)一直以来都是计算机行业最重要的事情!
为了更好编写程序,聪明的我们发明了编程语言,和人类的语言不断发展一样,计算机编程语言也不断在发展,目前,全世界已经有2500多种编程语言,常用的也有数十种。
如果这些编程语言聚在一起,他们会说些什么呢?Hello,World!会刷屏么?
一人成群/*机器语言在计算机出生的时候也就同步出生了,这个时候的语言,完全由二进制代码01来书写,所以这个时候的语言非常人能写、非常人能读,但是也是计算机能直接理解的语言。就像新生的婴儿,他发出的你听不懂的声音其实确确实实是他最初的语言,相反这个时候你跟他说Hello,baby!他的反应很可能是拉一次屎,或者干脆哭起来*/
/*这个年代唯一的好处是编程语言只有机器语言,坏处是每台机器都有每台机器自己的机器语言*/
01毕竟太高冷,人类用符号代替01也就出现了第二代计算机语言,汇编语言。
二元时代/*汇编语言也称为符号语言,它的一大进步是用符号/标识符/助记符来代替二进制码。例如ADD表示加法,记起来相对简单(当然如果没学英语那也不简单)。虽然汇编语言有了一些进步,但是严格意义上来说,汇编语言还是直接硬件相关的语言,依然属于“婴儿语”*/
人类一直想让计算机直接理解人类语言,但是计算机天生只能理解二进制的天性也决定了,机器语言才是计算机的最爱!
但是,机器语言(汇编语言)实在太繁琐,人类最不爱繁琐。
所以,高级语言的出现也就必然了!
当然,计算机的高级语言或许并不太高级,但是,就像美女这种东西需要绿叶来衬托才显示出美一样,有了机器语言这种反人类的语言,高级语言也就真的高级了。
高级语言和“低级”语言会如何对话呢?
三分天下/*FORTRAN是第一个计算机高级程序设计语言,FORTRAN是IBM公司于1957年开始针对汇编语言的缺点着手研究开发的。FORTRAN在那个时代计算机最喜欢做的事——数值、科学和工程计算领域发挥了重要作用*/
/*不论FORTRAN目前发展如何,但是FORTRAN的出现具有划时代的意义,它首次让大众学习编程成为了可能,间接让计算机开始真正改变历史。——任何东西要改变历史必先渗透人类日常。计算机的普及其实是先从程序语言普及开始的*/
/*从另外一个角度也可以看出FORTRAN的影响力,现今大多数高级语言都或多或少和它有关系,有的是比较远的近亲,有的甚至是比较近的近亲——不过这样说应该就是亲戚了!*/
计算机语言裙带关系网在FORTRAN后又陆陆续续有很多成员加入了计算机语言这个大家庭,他们共同虐待了一代又一代程序员——这里并没有矛盾,虽然从1957年开始计算至今也不过60年,但是程序员的职业生涯可是很短的!
1958年诞生了通用科学计算语言Algol。
1960年诞生了基于数学的Lisp语言。
1960年通用商务语言COBOL发布。
1971年,源于Algol 68的Pascal语言诞生,取代了Fortran程序教科书的地位。
……
这一时期,也能看得出,计算机仍然还远未飞入寻常百姓家,计算机主要做的还是科学计算方面的事。
时间来到1970年,1970年对计算机而言是一个神奇的数字。计算机时间和众多编程语言要从1970年1月1日开始算起,因为很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。
提到UNIX,是为了引出B语言,而提B语言,是为了引出C语言。B语言是UNIX系统上的第一个高级语言,B和汇编语言有太多相似,所以贝尔实验室——这个实验室于计算机,相当于少林寺于功夫——对B语言进行了改进和优化,这就产生了C语言。
1972年C语言正式出山,从此一直在江湖至今。
C位出道C语言后,又陆陆续续出了很多经典语言,不过,这更进一步奠定了C语言的霸主地位。
显然这得益于C语言运行速度上向机器语言学习,易学易用性上又彻底高级语言化。
过了不到10年,大事发生了。C语言毕竟是用经典的计算机做事思维——过程最重要,一步两步三步四步走到天黑——来设计的程序,而随着程序的大型化,这种思维折磨得程序员脱发越来越严重,最终用人类思维——对象最重要(其实这里的对象并不是那个对象意思,否则现在的程序员也不会快等于单身狗的意思了)——来设计的面向对象语言诞生了。
/*面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。*/
/*面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。*/
/*面向过程思想太深入,导致现今很多程序员依然是用面向对象方式工作,面向过程生活,所以一步一步走向单身狗!这也是程序员的哀歌!*/
*/同情!*/
上面两段话之所以写在注释符里,就是怕程序员看到后不满,写在注释符里安全多了,毕竟很多程序员并不写注释,也不读注释。
1967年5月20日(多么诗情的日子,不过这里有BUG,520只不过是中文里的读音强加了它“我爱你”的意思,外文中并没有“我爱你”的意思!),挪威科学家Ole-Johan Dahl和Kristen Nygaard正式发布了Simula 67语言。
Simula 67被认为是最早的面向对象程序设计语言。
1980年,基于Simula 67的Smalltalk语言诞生,这是第一个纯面向对象语言。
可以看出,有对象思想,到真正面向对象经历了很长一段时间。
C++对象来了!1983年,在C的基础上,诞生了C++(注意,不是C Plus)。因为继承了C的特点,C++称霸一时。
不过成也C,败也C,因为吸收了太多C的特性,后来还贪杯吸收了很多当时有效的计算机语言特性,导致C++成为了虐待程序员最狠的语言——C++几乎是最难学习和掌握的语言了。但是我相信其强大性还是组织不了想学习的伙伴!
另外想要成为一个优秀的、有能力程序员的话,其实作为一个开发者或者编程学习者,有一个学习的氛围跟一个交流圈子特别重要!这里我要推荐一个C语言 c++交流Q群,7-4-1-8-1-8-6-5-2,不管你是大牛还是小白,大家都一起成长进步。
随着应用的发展,1987年脚本语言Perl发布。
1995年,C++最强劲的对手Java出生。
Java最大的特性是跨平台,毕竟在这个时代,Windows已经不能一手遮天,所以跨平台特性迅速得到认可。
对象多了!毋庸置疑,世界在发展,计算机人性化是必然,计算机语言学人话已经进行了这么多年,学人思维也是势在必行。
所以,后面的几年,计算机语言一直朝着面向对象发展,毕竟这更符合人的思维。
2000年,Java最强劲的对手C#出生。
C#出生名门,当然,Java同样出生名门。所以,这一时期的语言已经不再是思想上的竞争——这两种语言实际上区别不是太大,更多是其背后金主之间的竞争。
C#:我爹是微软!微软:坑爹啊,老子Hard呢!
至于接下来,计算机语言如何发展,这很难猜想!不过,可以肯定的是,简单肯定是终极目标!
简单到写任何一个程序都像写“Hello,World!”一样简单。
相信这都不是计算机语言的最终目标。实现真正的说话即编程应该是编程语言的宿命。
当然,相信,就算这个时代终到来,底层机器语言依然还是存在,毕竟和计算机用机器语言符合“见人说人话,见鬼说鬼话”的定理。
另外想要成为一个优秀的、有能力程序员的话,其实作为一个开发者或者编程学习者,有一个学习的氛围跟一个交流圈子特别重要!这里我要推荐一个C语言 c++交流Q群,7-4-1-8-1-8-6-5-2,不管你是大牛还是小白,大家都一起成长进步。
网友评论