History:
1. 1950年之前是由穿孔到汇编语言(那时候用数字那些,太麻烦,而且爱出错)
2.1950年之后的几年就百花齐放百家争鸣了,许多高级语言的祖先就出来了,主要是用来系统级编程和数学计算(这些语言相对以前的汇编,好用方便,更容易让人理解和使用,毕竟我们不是计算机)
3.1971年,我们熟悉的c语言诞生了,c语言是B语言发展来的,C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。这里的数据无类型,应该就是我们
所说的弱类型(JavaScript为无类型有很大的争议),就像JavaScript声明变量,一个var就ok了,不用分整型还有浮点等等,相比,我个人还是喜欢弱类型,不喜欢强类型语言。这个时候,同时也出现了面向对象的语言
4.软件危机后诞生的面向对象编程
c++诞生背景:
到了80-90s年代,一个软件不再是一个人或者一个3-5人小团队可以handle的事情了,在大学和企业的实验室里,动不动上百万行的大项目不再像恐龙那样稀缺和罕见,而是经常的事情。抽象语言解放了程序员的生产力和想象力,人们可以像写文学小说一样将代码的长度自由发挥下去。项目的失控和一团糟也成为了家常便饭,一个软件往往不能达到客户所预期的效果(到现在也是如此)。
除了生产,软件的维护也越来越困难,以前汇编所写的软件是几乎没有bug的,因为人写出汇编的时候几乎对每一条指令都知道它在做什么;而现在,这些东西由编译器帮我们产生,同时指令数成指数增长。出现问题的概率也越来越大。
软件行业的发展受到了制约,需求决定产品线,工业界要想解决更加复杂的问题就必须以来更复杂的软件,但是人们发现现有的工具不足以创作出高质量的复杂软件
面向对象语言的诞生:
面向对象,设计模式以救世主的姿态站出来了,并且一直风靡到今天,今天没有哪个软件行业的人没有听过面向对象和设计模式。更多的高级语言替代了FORTRAN和C这些老前辈,C++, Java, C#都是这个时代的佼佼者。除了技术,软件工程和相关的管理理论也有了长足的发展,这些该井帮助生产流水线建立了起来,软件的质量和规模有了长足的进步,犹如从小工厂到福特公司的流水线一般,整个行业的面貌被改变了,软件行业的春天也来了,也是在这个时代,软件公司开始替代传统的硬件提供商,站到了IT科技的前沿,而其中最为出色的当属微软。越来越多复杂庞大的软件产生了,软件开始侵略普通人的生活。
5.现在语言多元化,更加倾向于某个方向,一种语言,其实可以做很多东西,c能办到,Java也可以,但是,要选择简单的方式去做,这个语言就容易发展起来
如图:
6.展望未来2020
我认为,弱类型语言会有更好的发展(亲身体会,还是JavaScript这种弱的比较好),语言也会向着更人性化的方向发展,毕竟硬件发展的很快,机器能很快处理,所以人就可以偷懒,毕竟懒才是促使程序猿去改革发展的动力源泉,哈哈哈。第二,语言会更加容易理解,代码量更少,库会更多。在2020年(毕竟现在都快2019了,一年多时间,语言的大体状况都不会有很大的改变),c和c++这种接近底层的语言还是很适合做这些,毕竟其他语言代替不了他的地位,面向对象编程还是占据大的市场。还会有没有会出现中文编程?手动滑稽....