Python-第1章(1)-编程语言介绍
文章目录:
1.什么是编程?为什么要编程?
“编程”是个动词,编程 == 写代码。
写代码是为了什么?
为了让计算机做你想要做的事情,例如,马化腾想跟别人聊天,于是写了个聊天软件,这个软件就是一堆代码的集合,,这些代码是计算机能理解的语言。
那计算机能理解的语言是什么呢?它只能理解2进制0、1,程序猿总不能输入一堆2进制让计算机工作吧,这样的开发速度太慢了。所以最好的办法就是人输入简单的指令,计算机能把指令转成2进制进行执行。
2.有哪些编程语言
编程语言总体分为机器语言、汇编语言、高级语言。
编程语言的进化
2.1 机器语言
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言。
机器语言属于低级语言。
编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
机器语言是微处理器理解和使用的,尽管机器语言好像是很复杂的,然而它是有规律的。
存在着多至100000 种机器语言的指令。这意味着不能把这些种类全部列出来。
2.2 汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识。
但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
打印一句Hello,world!,需要写十多行。
2.3 高级语言
高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如C\C++,JAVA,PHP,Python,GO,C#等都属于高级语言
相比机器和汇编语言,高级语言对开发人员更友好,在开发效率上大大提高!
>>> print("Hello World!") Hello World! >>> name = "zll" >>> print("Hello,my name is",name) Hello,my name is zll
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:编译型和解释型。
2.3.1 编译和解释的区别
编译型是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快。
而解释型则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的。
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)。
2.3.2 编译型vs解释型
1、编译型
-
-
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
-
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
-
2、解释型
-
-
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
-
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
-
3.主流编程语言
世界上的编程语言有600多种,但真正被大家主流使用的最多二三十种,不同的语言有各自的特点和擅长领域,随着计算机的不断发展,新语言在不断诞生,也同时有很多老旧的语言慢慢无人用了。
参考自:https://www.tiobe.com/tiobe-index/
长期语言排名
1、C语言
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
适合操作系统底层应用程序、驱动程序、对运行速度要求较高的软件开发。
缺点:开发效率底,学习成本高。
2、C++
C++是C语言的继承的扩展,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
运行速度快,适合游戏开发、服务器高性能后台软件、网络编程、图形处理软件、芯片仿真、机器人等。
缺点:开发效率高于C,低于JAVA / Python。
3、Java
Java是第一个跨平台的面向对象的程序设计语言,是甶Sun Microsystems公司于1995年5月推出,Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
全球使用最广泛的语言,丰富、成熟的生态圈,应用领域极为广泛。
缺点:代码臃肿、各种库太多了、设计复杂。
4、PHP
PHP(外文名:PHP:Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web幵发领域。
广泛用于网站开发。
缺点:应用领域相对单一,运行速度慢。
5、Ruby
Ruby是一个与Python类似的解释性语言,开发效率高,学习成本低,著名的rUby on rails web框架在国外有很多人用
主要用于WEB开发,虽然其不只能做WEB幵开发。
缺点:起步晚,它能干的Python都能干,且可以干的更好,所以感觉势能都被Python抢走了。
6、Go
Go是从2007年末由谷歌开发,并于2009年11月幵源,在2012年早些时候发布了Go 1稳定版本。
Go的主要特点是开发效率高,并发性好,号称是可以接近C的运行速度,接近Python的开发效率!未来必成大器!
主要用于高性能并发程序开发,著名的Docker容器就是基于GO开发的。
缺点:生态圏还不够成熟,应用领域相对单一。
7、Python
Python是一门优秀的综合语言,Python的宗旨是简明、优雅、强大,在人工智能、云计算、金融分析、大数据开发、WEB开发、自动化运维、测试等方向应用广泛,已是全球第4大最流行的语言。
4.小结
-
- 机器语言
优点是最底层,速度最快,缺点是最复杂,开发效率最低。
-
- 汇编语言
优点是比较底层,速度最快,缺点是复杂,开发效率最低。
-
- 高级语言
编译型语言执行速度快,不依赖语言环境运行,跨平台差。
解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行。