几种流行计算机语言的对比研究
2021-11-30白青海
白青海
(1.内蒙古民族大学 计算机科学与技术学院,内蒙古 通辽 028043;2.内蒙古民族大学 计算机应用技术研究所,内蒙古 通辽 028043)
0 引言
当前,计算机语言层出不穷,五花八门,各自都有自己的应用领域,各自都有自己的特点和优缺点.文章通过九种计算机语言,包括Python、Java、C、C++、JavaScript、C#、Ruby、PHP 以及Objective-C 的对比研究,对于每种编程语言,从由它打造的顶级应用成果、相关职位的平均薪酬(美国)以及该语言的优势与弊端等方面给出这几种语言的对比研究,为今后从事计算机编程的人员可以提供一些参考.
1 几种计算机语言的综合比较
(1)Java:Java无疑是目前市场需求量最大的语言.它的用途非常广泛,可以用来开发Android&iOS应用、视频游戏开发、桌面GUIs开发等.它的缺点是:占用内存高于C++、学习曲线不是很友好,应用启动时间较长等.尽管如此,依然无法阻挡java前进的脚步,Java工程师的需求量也是远远大于其他语言.
(2)Python:近年来随着人工智能AI的普及[1],Python的热度不断增长.它学习起来相对简单,上手难度低,拥有很广泛的工具及功能库.它可以用于web 开发、视频游戏开发、桌面GUIs 和软件开发等.目前Rasp-berry Pi等新兴平台已经将其作为开发基础.同样,Python的缺点也很多:比如速度慢、移动领域表现糟糕.由于是动态语言,因此需要进行更多测试,并且会带来某些只在特定运行中出现的错误.不过,Python还将随着物联网技术的普及进一步发展.
(3)C语言:C语言作为多数程序员入门接触的第一种语言,目前来看表现只能算一般[2,3].C语言是一种通用型命令式计算机编程语言,你可以用它开发操作系统、开发软件和硬件设备[4,5].它的优势很多:比如可移植性强,体型小巧,几乎所有的现代编程语言都脱胎于C语言,也就是说,如果你了解了C语言,你会很容易掌握其他类语言.它的缺点是:没有OOPs概念,不提供命名空间功能.
(4)C++:C++是一种面向对象的编程语言,被广泛视为最出色的大规模应用构建语言[6].它可以用来开发软件、搜索引擎、操作系统、视频游戏等.跟Java比较起来,C++的编程过程并不友好,但它很灵活.缺点是,C++的学习难度较大[7-8].
(5)C#:C#是一种强大而灵活的编程语言,事实上C#的功能仅限于我们的想象力.它可以用来开发windows应用、企业级业务应用、软件开发等[9].C#全面集成了.net库,可转换性强,需求也极其旺盛.它的缺点是学习曲线很陡峭,不具备跨平台的能力,因此不大适合新手学习.
(6)JavaScript:移动时代的到来,使得JavaScript的需求量增加了很多.它可以做很多事情:网站前端、分析、功能控件、web交互.JavaScript的速度很快、容易学习,它还可以与其它多种语言协作.缺点是JavaScript没有名称空间,很难模块化,不太适合开发大型程序.
(7)Ruby:Ruby 是属于面向对象的通用型语言,可以用来开发桌面GUIs、web 应用和开发等.Ruby 的库和工具很多,社区也很庞大.但Ruby也有很多问题,比如运行速度慢、缺乏说明文档等.
(8)PHP:PHP 有很多用途,比如WordPress 插件、web开发、创建包含数据库功能的页面等.它易于上手、社区庞大、数据库丰富.但是由于学习门槛过低,导致项目中存在大量的经验不足的开发者,某些开源代码甚至已经存在十余年之久.目前市场对PHP的需求量也不及其他语言.
(9)Objective-C:Objective-C是一款通用型面向对象编程语言[10],其本质上是将Smalltalk类消息的收发机制添加到C 语言当中.其目前为苹果公司在OSX 及iOS 操作系统上的主要编程语言,并配合各自的API.如果希望以iOS或者OSX应用为开发方向,可以选择该语言.人才市场:a.岗位聚集城市:纽约、芝加哥及旧金山.b.薪资:平均年薪为11万美元.c.岗位数量:岗位数量约为21 000个.图1为采用计算机语言从事相关工作的平均薪资,图2为采用计算机语言从事相关工作的岗位数量.
图1 采用计算机语言从事相关工作的平均薪资Fig. 1 Average salary for related work in computer language
图2 采用计算机语言从事相关工作的岗位数量Fig. 2 Number of jobs using computer language to engage in related jobs
2 结束语
当下计算机编程语言总数达到几万种,但是最流行、最受欢迎的编程语言大致有十几种.文章通过对这些最流行、最受欢迎的计算机语言的对比,给出它们各自的特性.从计算机语言的优势与弊端等方面给出这几种语言的对比分析,为今后从事计算机编程的人员提供一些参考.