计算机编程语言概述
计算机语言是什么
语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而中国人要和英国人交流,可以使用英语或普通话。
计算机编程语言:就是人与计算机交流的方式。人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。
计算机语言有很多种。如:C 、C++、Java、Go、JavaScript、Python,Scala等。
计算机语言简史
第一代:机器语言(相当于人类的石器时代)
1946年2月14日,世界上第一台计算机ENAC诞生,使用的是最原始的穿孔卡片。这种卡片上使用的是用二进制代码表示的语言,与人类语言差别极大,这种语言就称为机器语言。比如一段典型的机器码:
1. 0000,0000,000000010000 代表 LOAD A, 16
2. 0000,0001,000000000001
代表 LOAD B, 1
3. 0001,0001,000000010000
代表 STORE B, 16
这种语言本质上是计算机能识别的唯一语言,人类很难理解。可以大胆想象"此时的程序员99.9%都是异类!"
第二代:汇编语言(相当于人类的青铜&铁器时代)
使用英文缩写的助记符来表示基本的操作,这些助记符构成了汇编语言的基础。比如:LOAD、MOVE等,使人更容易使用。因此,汇编语言也称为符号语言。
l优点:能编写高效率的程序
缺点:汇编语言是面向机器的,不同计算机机型特点不同,因此会有不同的汇编语言,彼此之间不能通用。程序不易移植,较难调试。
比起机器语言,汇编大大进步了,是机器语言向更高级的语言进化的桥梁。目前仍然应用于工业电子编程领域、软件的加密解密、计算机病毒分析等。
第三代:高级语言(相当于人类的信息时代)
高级语言发展于20世纪50年代中叶到70年代,是一种接近于人们使用习惯的程序设计语言。它允许程序员使用接近日常英语的指令来编写程序,程序中的符号和算式也与日常用的数学式子差不多,接近于自然语言和数学语言,容易为人们掌握。比如:
高级语言独立于机器,有一定的通用性;计算机不能直接识别和执行用高级语言编写的程序,需要使用编译器或者解释器,转换为机器语言才能被识别和执行。
此外,高级语言按照程序设计方法的不同,又分为:面向过程的语言、面向对象的语言。
- C、Pascal、Fortran面向过程的语言
- C++面向过程/面向对象
- Java跨平台的纯面向对象的语言
- C#、Python、JavaScript、Scala…
目前以及可预见的将来,计算机语言仍然处于“第三代高级语言”阶段。但是不管是什么语言,最后都要向机器语言靠近,因为CPU只认识0和1。
计算机语言排行榜
TIOBE 是一个流行编程语言排行,每月更新。排名权重基于世界范围内 工程师数量,Google、Bing、Yahoo! 、Wikipedia、Amazon、Youtube和百度这些主流的搜索引擎,也将作为排名权重的参考指标。
网传编程语音鄙视链
C语言:万物之源
- 诞生于1972年,由AT&T公司旗下贝尔实验室创建完成,用于构建Unix操作系统。
- 偏向计算机底层操作(操作系统、网络、硬件驱动等)。
- 优势:几乎所有现代编程语言都脱胎于C
- 劣势:相当陡的学习曲线;不支持面向对象编程
C++语言:难学的语言
- 诞生于1983年,作为C语言的增强方案、升级版本。C++是C语言的超集,C语言的大部分知识也适用于C++。
- 用途:windows 或 MacOS UI、office全家桶、主流的浏览器、Oracle、MySQL、著名的游戏引擎(如星际争霸、魔兽世界)等
- 优势:很多公司都用 C++ 开发核心架构,如 Google、腾讯、百度、阿里云等;面向对象性
- 劣势:体系极为庞大,这是世界目前来说最复杂也是最难的编程语言。
- C#语言:背靠大树的语言
- 诞生于2000年,一款强大而灵活的编程语言。靠着微软这棵大树,是多年来windows平台的一门主流编程语言。
- 用途:windows桌面应用开发、Windows Azure、游戏开发
PHP语言:最好的语言?
- 诞生于1994年,一款服务器端脚本语言。最初表示个人主页(Personal Home Page)
- PHP语法和C类似,有很多的模板和框架,简单易懂,也许你可以在短短几天做出web app。它主要用于web端,快速建站网络开发
- 劣势:学习门槛太低;其代码运行速度低于大部分编程语言党争对手
Python:易学的语言
- 诞生于1991年,一种面向对象的语言,虽然运行效率不高,但是开发效率非常高。
- Python被称为胶水语言,哪里都可以用。
JavaScript语言:前端为王
- 诞生于1995年,网景公司开发完成。
- JavaScript是JavaScript 是目前所有主流浏览器上唯一支持的脚本语言。在前端开发中,占有不可替代的地位。
Java语言:需求旺盛
- 创建于1995年,Java是一种面向对象、基于类的编程语言。
- Java可能是目前运用最广的项目语言。代码稳定性超过 C 和 C++,生产力远超 C 和 C++。有 JVM 在,可以轻松地跨平台。
- 具有强大的开源开发工具,大量的开源共享库。
- Java拥有世界上数量最多的程序员,最不缺人。
Go语言:夹缝中生存
- Go 语言现在很受关注,它是取代 C 和 C++ 的另一门有潜力的语言。
- C 语言太原始了,C++ 太复杂了,Java 太高级了,所以 Go 语言就在这个夹缝中出现了。
- Go语言已成为云计算领域事实上的标准语言,尤其是在 Docker/Kubernetes 等项目中。
- Go 语言语法特别简单,你有了 C 和 C++ 的基础,学习 Go 的学习成本基本为零。
- Go社区从Java社区移植了各种优秀的框架或库。
总结:
- 程序设计语言有很多种,每种语言都是为了实现某个特定的目的而发明的。
- 没有“最好”的语言,只有在特定场景下相对来说,最适合的语言而已。
- 如果你掌握了一种编程语言,也会更容易上手其它的编程语言。关键是学习如何使用程序设计方法来解决问题。这也是本套课程的主旨。
- Talk is cheap,Show me the code。