以史为鉴——主流编程语言的历史


本篇是稍微科普类的文章,谈及 计算机发展的几个阶段与一些主流编程语言的历史。博主在此分享给大家的原因是:“ 它对编程语言的学习使用带来指导作用,能够让我们更加清晰自己所处的时代,并以此指导自身下一步的进步与发展。”

计算机技术的演进

整个计算机时代呈指数趋势来发展,到今天为止,大致可以分为四个时代:

计算机系统结构时代
1946年第一台计算机诞生
1981年第一台IBM-PC机诞生
  • 1946-1981计算机系统结构时代(35年):

在这一时代中,科学家和工程师努力地研制不同类型的计算机和计算机体系结构。这个时期我们有了很多种的CPU,很多种的计算机系统,操作系统,以及编译器,解释器等不同的系统软件。

网络和视窗时代
1981年第一台IBM-PC机诞生
2008年android操作系统诞生
  • 1981-2008网络和视窗时代(27年):

2008年,安卓操作系统的诞生标志着计算机由个人“PC时代”进一步向移动时代转换。这一时代中,有两项技术快速发展,一项技术即为互联网,第二项技术是windows视窗操作系统。

复杂信息系统时代
2008年android操作系统诞生
2017.5.27柯洁0:3AlphaGo
  • 2008-2016复杂信息系统时代(8年):

在这8年间,出现了很多新名词:云计算、网络安全、大数据等等。而只有系统变得非常复杂的时候,才会去关注网络安全。

人工智能时代
2017.5.27柯洁0:3AlphaGo
FUTURE
  • 2017- 人工智能时代:

2017年5月27日,柯洁0:3AlphaGo标志着人工智能时代的到来。

  • 回顾计算机技术演进的四个阶段:

1946-1981:计算机系统结构时代:计算能力问题

这一阶段我们重点解决的是计算能力问题,即通过计算设备来提供更充分、充足和好用的计算能力。

1981-2008:网络和视窗时代:交互问题

这一阶段我们主要解决人与计算机、计算机与计算机的交互问题。人与计算机的交互通过操作系统的视窗来体现,计算机与计算机的交互通过互联网来体现。

2008-2016:复杂信息系统时代:数据问题

这一阶段我们将各种信息化系统在各种维度上整合,系统一旦进行整合,实际上解决的问题都将与数据相关。无论是数据接口问题、数据产生的速度问题、数据存储问题等等。

2017- 人工智能时代:人类的问题

2017年虽然标志着人工智能时代的到来,但我们离真正的人工智能时代应用还有很长的一段距离。正是由于在这个时代,基础工作被计算机陆续接管,我们更关心的是人类自身的问题,用计算机帮助人类达到人类希望达到的功能效果。

在复杂信息系统时代,过渡到人工智能时代,会有一个新的短暂时期,也就是我们现在所处的这一时代。在这里我们要关心计算,关心交互,关心数据,更要关心人工智能。在这个时代,我们有大量的计算需求,而且以爆炸形式发展。

过渡时期——新计算时代:关心计算、关心交互,关心数据,更要关心人工智能。

编程语言

编程语言的种类

  • 机器语言
  1. 一种二进制语言,直接私用二进制代码表表达指令;
  2. 计算机硬件(CPU)可以直接执行,与具体CPU型号有关
  3. 完成2+3功能的机器语言:11010010 00111011
    至于这一串0-1代码可以在哪一款CPU上执行,怎样执行,执行结果怎样表达,需要去参考每一个CPU的参考手册。

机器语言用来编程是不现实的,它继续演进:

  • 汇编语言
  1. 一种将二进制代码直接对应助记符的编程语言;
  2. 汇编语言与二进制代码一一对应,与CPU型号有关,程序不通用,需要汇编器转换;
  3. 完成2+3功能的汇编语言:add 2, 3, result

机器语言、汇编语言其实都不适合编程,它只适合计算机底层硬件的设计和开发。在上个世纪六七十年代提出高级语言:

  • 高级语言
  1. 更接近自然语言,同时更容易描述计算问题;
  2. 高级语言代码与具体CPU型号无关,编译后运行;
  3. 完成2+3功能的高级语言:result = 2+3

在此基础上是否有其他编程语言类型? 有! 它不仅接近自然语言、与CPU型号无关,它还粘合已有程序,具备庞大的计算生态:

  • 超级语言:
  1. 具有庞大计算生态,可以很容易利用已有代码功能;
  2. 编程思维不再是刀耕火种,而是集成开发;
  3. 完成2+3功能的超级语言:result = sum(2,3)
    至于sum()是自己写的,还是来自于生态库,便不重要了。

高级语言

世界上有超过600多种编程语言,全部的语言首字母可以覆盖A-Z全部的字母表:
Basic、C、C++、C#、CSS、Fortran、Go、HTML、Java、JavaScript、Lisp、Lua、Matlab、Object C、Pascal、Perl、PHP、PostScript、Python、Ruby、Scala、SQL、Swift、VBA、VB.NET、Verilog、VHDL、Visual Basic……
编程语言,也是一个江湖!
辣么多编程语言,事实上当初不同的语言的初心和适用对象都是不同的。

  • C 学习内容:指针、内存、数据类型等——处于计算机系统结构时代

C语言的本质,是希望编程者能够理解计算机系统结构,使得你编写的程序更符合计算机的结构,让它运行起来的效率更高。C语言核心解决的是性能问题,这是因为C语言诞生在计算机系统结构时代,是用来编写操作系统的语言——在计算机诞生之初,内存只有几兆,计算机的硬件无法提供更多的资源来支撑程序运行。

它适合计算机类专业,做计算机底层程序的设计和开发。

  • Java 学习内容:对象、跨平台、运行时等——诞生于网络与视窗时代

网络和视窗时代,当时所有的计算机都期望能与其他计算机进行交互,但是在一台计算机上编写的程序是否能在另一台计算机上运行?因此Java语言提出了面向对象的编程方式,通过跨平台的方法去解决跨平台的问题。面向对象又进一步抽象了计算机编程代码的级别,使得代码复用变得更为高级和更为灵活。这一语言希望我们去理解程序设计过程中主体和客体的关系,本质上它是用来解决跨平台和程序中的交互问题

它适合软件类专业。

  • C++ 学习内容:对象、多态、继承等面向对象的概念

它既是C语言的演进,又具有面向对象的特点,并希望我们理解主客体之间的关系。它适合于大规模程序的编写,比如操作系统的编写、大规模图像处理的程序的编写等等。

它适合计算机类的专业作为核心的编程语言来学习。

  • VB(VB衍生的.NET)学习内容:对象、按钮、文本框等——诞生于网络与视窗时代

通过VB程序,我们能实现一个小的桌面窗口,它希望使用者能理解交互逻辑,但这种交互不是程序之间的交互,而是人机之间的交互。我们已经很少在桌面上编写程序,大多数程序要求既能在桌面上运行、又能在手机上运行,最主要是一种网络程序,VB的使用对象变得已经很少了。

它比较适合做桌面应用的开发。

  • Python 学习内容:编程逻辑 第三方库等——发展于复杂信息系统时代

Python是一种面向编程逻辑,使用第三方库来完成程序设计的语言。它的本质是希望使用者去理解问题的求解,去解决各种各样问题的计算部分的实现

它适用所有专业。

超级语言

Python语言是目前世界上具有最庞大生态的语言,其他所有语言的计算生态加起来都不如Python的计算生态大,Python语言是目前世界上唯一的超级语言。

Pyhton语言是:
通用语言:普适的计算问题求解的开发(图形运算、操作系统、发现引力波…)
脚本语言:使用解释器
开源语言
跨平台语言
多模型语言
……

Python优势Python优势
C代码量的10%(10×)13万第三方库(10×)
强制可读性快速增长的计算生态
较少的底层语法元素避免重复造轮子
多种编程方式开放共享
支持中文字符跨操作系统平台
  • C代码量的10%、13万第三方库,直接将开发速度相对于C提高了100倍。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值