有些小伙伴想学软件开发,想从事软件工程相关的工作,如果是这样,那么您就要学习编程语言。此篇内容不是要教会您一门编程语言,而是给您整体介绍一下目前都有哪些编程语言。此篇内容适合想从事软件开发相关行业学生、入门人等,也可以作为已经精通了一门编程语言的开发者的总结学习,同样可以作为非计算机软件专业的人员进行了解学习。
1、编程语言有哪些
您可能会听说过C、Java、Python等编程语言,那么编程语言到底有哪些呢?下面我为您列出20种编程语言,先看看他们的名字,它们有C、Java、Python、C++、C#、Visual Basic、JavaScript、PHP、R、SQL、Go、Swift、Perl、Assembly language、Ruby、MATLAB、Groovy、Rust、Objective-C、Dart。这里列的20种编程语言也是TIOBE网(https://www.tiobe.com)公布的2020年9月排名前20的语言,编程语言是和计算机交流的工具,这一点和我们人类用的汉语、西班牙语、英语、阿拉伯语等等是类似的。
人类语言大概有4000-8000种,德国出版的《语言学及语言交际工具问题手册》提供的数字是5561种。那么编程语言全世界有多少呢?据估计,编程语言的数量不少于2500种。和人类语言发展变化缓慢又持久不同,编程语言发展的很快,说不定在我们写这些文字同时就又有几门语言诞生了。编程语言这么多,我们如何来认识它们呢?怎么对它们进行分类呢?
2、如何分类看众多编程语言
说起分类,这里有个角度问题,从不同的角度可以有不同分法。打个比喻有一班学生,你可以按照性别把他们分成男生和女生,也可以按照学习成绩分成优等生、中等生和差等生。
计算机语言的分类也可以从多个角度,如果按照发展阶段分,可以分为低级语言和高级语言,低级语言又可以分为机器语言和汇编语言。
机器语言:计算机的基础是二进制,和计算机底层硬件交流,二进制是最直接的方式,机器语言就是用二进制代码表示计算机能够识别的指令,然后输入到计算机,使得计算机能够执行成员编写的编写的二进制程序。由于二进制计算机能够直接执行,因此机器语言执行速度很快,这是它的有点。但是不同型号的计算机指令系统不一样,这样机器语言编写的程序不通用,用机器语言编写程序由于都是二进制,因此晦涩难懂,对编程人员要求也很高,早期用机器语言编写程序是一件十分专业和繁琐的工作,程序也都是些0和1组成的指令代码,很难理解,也很容易出错,随着时间的发展出现了汇编语言。
汇编语言:汇编语言很好的克服了机器语言的弱点,它是用一些比较容易记忆的英文单词或缩写代替了机器语言的二进制指令,比如用add表示加法指令,mov代表移动指令等等,其实就是把进制指令和具有含义的英文字母组合对应了起来,这样无论是编写、阅读、修改和bug修复汇编语言编程的程序都变得容易了很多。
当计算机的硬件不能直接识别这些英文符号等组成汇编程序,汇编程序需要转换成计算机能直接识别的二进制代码,这时候需要一个专门的程序来进行转换,转换的过程称为汇编。汇编语言其实只是为机器语言提供了助记码,汇编指令和机器语言基本上也是对应的,因此它的执行速度和机器语言相当,但是汇编语言编写的程序依然冗长,不适合大型程序的开发,随着时代的发展出现了高级语言。
高级语言:高级语言是相对低级语言说的,我们平常说的成员一般指的就是用高级语言编写程序的人,采用高级语言也是目前开发程序的主要方式。低级语言没有摆脱计算机硬件的束缚,高级语言希望编写的程序具有移植性,也就是编写的程序可以在不同指令的计算机上运行,因此和汇编有点类似,高级语言编写的程序也需要一个转换过程,这个过程称为编译。
现有的高级语言有很多了,如前面提到的C、Java等等,通过编译器或解释器进行中间转换,使得高级语言编程的程序可以在不同的计算机上运行。如果您不能理解编译,您可以想象一下您到国外四处旅游,同时带了一个超级翻译,这个您无论到达哪个地方都可以和当地人们进行交流了。
以上是从发展阶段分的,平常我们说编程语言一般指的是高级语言,高级语言内也可从不同角度对他们进行划分。如可以从应用领域分为通用高级语言和专用高级语言,从语言特点可以分为面向过程的语言和面向对象的语言,从编译的时机上可以分为编译性语言和解释性语言,另外还有分成动态语言和静态语言,等等。如果您没有深入的学习过编程语言,这些分类恐怕是很难理解的了的。
3、编程语言的发展史
1946年,世界上第一台计算机ENIAC诞生于美国宾夕法尼亚大学,虽然具有划时代意义,但是现在看来非常笨拙,使用的输入方式是穿孔卡片,就是在一卡片上打一些孔,编程需要把机器指令码以打孔的形式打到卡片上,有孔地方代表1,没孔的地方代表0,对应的就是计算机能直接理解的二进制机器语言。然后把这些卡片输入到计算机,让计算机根据这些指令进行运算。卡片发展以后,就出现了纸带,这样可以把程序编写的长一些了。
(来源:网络)
汇编语言出现以后,编程工作就成了书写汇编指令了。这种符号语言使得计算机语言取得了很大的进步,当然现在看来还是相当复杂的,但为高级计算机语言发展奠定了方向,是向更高级语言进化的桥梁。
早期的高级语言更多是为了进行科学计算,如FORTRAN语言,后来计算机越来越倾向于解决复杂的应用问题,计算机语言也开始变得越来越通用,如C、Java等都孕育而生了,高级语言更接近于人们思维习惯,更容易学习和使用,因此得到了很大的发展。
高级语言那么多,这里给大家列一个主要的几门高级语言发展的大致脉络,供读者参考。
几种语言发展脉络图
4、如何学习编程语言
对于想学软件工程的初学者来说,可能最关心的是如何掌握这些语言。语言这么多,全部完全掌握不现实也不可能,但是高级语言很多是有相通性的,特别是用的最广的几门高级语言,掌握一两门语言后,再想学习的新的语言是非常简单的。因此,学习语言一定要掌握编程语言的核心思想。
这里给您一个一般的软件工程专业大学生学习编程语言的过程,供阅读者参考。一般情况下,刚入门的同学都会学习一门面向过程的编程语言,如C语言等,C语言也是目前大学开设的最广泛的高级编程语言。学习完C语言后,一般还要学习一门面向的对象的语言,如C++、Java、Python等,面向对象的基本思想会在这些语言的学习过程中逐渐被理解。如果您已经深入的理解了一到两门语言以后,您就会发现制约您在软件行业发展的可能不是语言本身,而是更多基础知识、算法和工程方法。好比您学英语,词汇背了不少,八大语法也掌握了,可是就是写不出好的文章。不过,随着自身积累和实践经验的不断增加,您会逐渐成为软件方面的专业人才的。
5、小结
本部分介绍了一些计算机编程语言,介绍了计算机语言的分类,了解了编程语言的发展历史。通过这些使得读者能够认识计算机语言,同时针对初学者给出了学习编程语言的建议,希望读者通过阅读对计算机语言有一个整体的认识。