编程语言
C#编程语言基础
C#面向对象与多线程
C#数据及文件操作
JavaScript基础
JavaScript的数据类型和变量
JavaScript的运算符和表达式
JavaScript的基本流程控制
JavaScript的函数
JavaScript对象编程
JavaScript内置对象和方法
JavaScript的浏览器对象和方法
JavaScript访问HTML DOM对象
JavaScript事件驱动编程
JavaScript与CSS样式表
Ajax与PHP
ECMAScript6的新特性
Vue.js前端开发
PHP的常量与变量
PHP的数据类型与转换
PHP的运算符和优先规则
PHP程序的流程控制语句
PHP的数组操作及函数
PHP的字符串处理与函数
PHP自定义函数
PHP的常用系统函数
PHP的图像处理函数
PHP类编程
PHP的DataTime类
PHP处理XML和JSON
PHP的正则表达式
PHP文件和目录处理
PHP表单处理
PHP处理Cookie和Session
PHP文件上传和下载
PHP加密技术
PHP的Socket编程
PHP国际化编码
MySQL数据库基础
MySQL数据库函数
MySQL数据库账户管理
MySQL数据库基本操作
MySQL数据查询
MySQL存储过程和存储函数
MySQL事务处理和触发器
PHP操作MySQL数据库
数据库抽象层PDO
Smarty模板
ThinkPHP框架
Python语言基础
Python语言结构与控制
Python的函数和模块
Python的复合数据类型
Python面向对象编程
Python的文件操作
Python的异常处理
Python的绘图模块
Python的NumPy模块
Python的SciPy模块
Python的SymPy模块
Python的数据处理
Python操作数据库
Python网络编程
Python图像处理
Python机器学习
TensorFlow深度学习
Tensorflow常用函数
TensorFlow用于卷积网络
生成对抗网络GAN
1.机器语言与汇编语言:
编程语言,翻译自英语programming language,也被称为计算机语言。现在实用的电子计算机都是数字计算机,只能识别0和1组成的二进制代码,即机器码,又被称为机器语言(machine language)。对于不懂机器语言的人来说,为了要让计算机工作,就要通过翻译,把自己需要计算机做的事情变成二进制机器码的形式,让计算机“听懂”并执行。对于长串的0和1组成的序列,就是专家也会感到头大,对人来说这是一种很难懂也很容易混淆的语言,所以就把计算机能识别的长串的二进制序列(机器码)用比较直观的方式(一般为英语缩写词)写出来,这就产生了汇编语言(assembly language),如MOV R1,A,基本是每个汇编语句都对应一个机器码,这样用一个比较简单的翻译程序就能转变为计算机可以识别的机器语言。早期的计算机很多都是要用汇编语言的,现在操作系统底层也有一部分与硬件密切相关的程序必须用汇编来写,更多情况下汇编语言用于为程序空间有限的低端廉价的MCU(微控制器)编写程序。总体上看,汇编语言在一些场合还是不可替代的,但只有少数编写程序的人员需要用到,主要是那些系统程序的设计者。
2.高级语言:
因为汇编语言与机器语言有对应关系,与硬件设计密切相关,在一种硬件基础的计算机上设计的程序就无法在其他计算机上运行,这就需要一种与硬件平台无关的计算机语言,被称为高级语言。其实高级语言很早就开始出现,甚至早于第一台实用的计算机,而且随着计算机技术的发展不断出现新的高级语言,据说至今已有上千种。
高级语言要能在计算机上运行,需要转变为可以被计算机识别的机器语言,这就需要一种翻译程序,按翻译功能的不同,可分为解释和编译两种。所谓解释,就是一句高级语言对应一段代码,一段高级语言的程序在运行时被一句一句地解释成机器语言并被执行,有些像同声传译或现场翻译;所谓编译,是把整段高级语言程序全部转为二进制机器码,然后整体运行,有些像文章或书籍的翻译。
3.高级语言的变化:
计算机高级语言到底有多少种,其实并没有人能完全说得清,因为在不断变化中,不断有新的高级语言产生,也有的被淘汰,很多高级语言只在很小的范围内被少数人使用,并未能被广泛了解和推广。我当年上学时,学习的是FORTRAN,是一种科技领域被普遍使用的解释式的高级语言,多用于中型大型计算机,适合进行并行计算,现在还有人在用,但比例已很低,主要在大型工程计算方面;当时计算机系的教学语言是Pascal,以严谨的结构化编程语法而著称,还一度因为Borland公司推出的Turbo Pascal而很流行,后来被发展为Delphi,Pascal则渐渐被遗忘;COBOL也曾是一种被商贸和金融行业广泛使用的高级语言,在商业应用软件之中曾有极高的占比,不过在图形界面和互联网主导的现在商务环境下,遇到了很大挑战,应用范围有些萎缩。
随着计算机技术的发展,运算速度大幅提高,运行内存也有很大扩展,所以很多情况下代码效率不再是高级语言及编译程序主要考虑的问题;而随着计算机的普及应用,主要使用者从计算机程序员变为各个行业的专业人员,多数并没有受过严谨的计算机软件相关基础知识的培训,更喜欢友好的图形界面和直观简单的编程方法;特别是互联网的全球覆盖,网络应用成为时尚和潮流,很多曾经在个人计算机和大型机时代独领风骚的软件应用及编程逐渐失去光彩,而网络编程的高级语言则成为爆发点;智能手机现在几乎成为人手一部的必备(至少在中等收入以上的那些城市人群中),手机软件开发成为最热门的领域,再加上功能基本一致的平板电脑,市场绝对盖过传统的计算机平台。这些变化都促成了高级语言的转变,很多曾经风光的高级语言变得落寞,而一些新兴的则迅速成为暴发户。
4.高级语言排行榜:
下面是TIOBE编程语言2015年4月排行榜。
还给出了前10种的变化曲线:
TIOBE编程语言排行榜只是反映某个编程语言的热门程度,其他网站给出了编程语言的市场占比。
一些网站还给出了薪酬情况:
5.常用的高级语言分类:
从目前看,比较常用的高级语言有如下几类:
1)C语言:
作为上世纪六七十年代推出的老资格的高级语言--C语言,至今仍然焕发着活力。很多较早的或同时代的高级语言大都归于沉寂,或者是因为源于理论而随着理论的变化而失去了优势。C语言则不同,开始只是几个技术人员玩程序,是从实用中发展起来的,曾经很长时间被程序语言研究者诟病很多。但因为实用,被实际的编程者所喜爱,更得到很多软件公司的青睐,推出各种实用的编译软件和开发平台,包括了目前主流的Unix/Linux和Windows操作系统。虽然随着面向对象的高级语言更多用于图形界面的计算机软件开发,ANSI C失去了不少领地,但随着嵌入式系统的发展,C语言牢牢占据着其软件设计的主流地位。目前C语言主要用于Unix/Linux平台的软件开发和嵌入式系统的软件开发。
2)C++:
C++,看名字就知道是在C语言基础上发展起来的,是一种面向对象编程的高级语言。“+”,英语为plus,有增强的意思,所以其程序文件的后缀为.cpp。因为微软等公司的Visual C++等可视化软件开发工具的推出,使C++成为开发图形用户界面软件的最常用编程语言,更多用于Windows平台的软件开发,嵌入式软件使用的还比较少,或者因为过于复杂了。
3)Delphi:
编程语言的兴衰,不仅与语言本身有关,而且还往往与大型软件公司的兴衰及竞争密切相关。Turbo Pascal和Turbo C的成功推出曾经使Borland公司很风光了一阵,是DOS系统下软件编程的主要平台。后来微软推出Windows操作系统,还有Visual Basic、Visual C++等软件开发平台,使Borland公司一落千丈。沉寂一段时间后,Borland公司在Turbo Pascal基础上推出用于图形用户界面的面向对象程序设计的可视化开发环境--Delphi,并一点点追赶上来。Delphi其实就是面向对象的Pascal语言,也被称为Object Pascal,用于Windows平台的软件开发,LINUX上的对应产品是Kylix。
4)Java:
目前计算机主要是Windows、Mac OS和Unix/Linux等操作系统,其他比例很低,应用软件及程序开发软件在不同的操作系统平台都有自己的版本,各不通用。随着互联网的广泛应用,已使各种平台的计算机相互连接,在不同平台都能通用的跨平台的编程语言就更受欢迎,JAVA也因此从边缘走向了中心。JAVA最初是为嵌入式系统而编写,但受当时硬件技术性能的限制而难有发挥的空间,但正赶上互联网的快速发展时期,JAVA被用于开发浏览器软件并受到欢迎。这时,JAVA语言的拥有者Sun公司采取了技术开放的方式,使得全球上万的软件开发公司加入,只是被要求所设计的Java软件必须相互兼容。现在,常用的浏览器均支持Java applet,JAVA是设计动态网站和进行网络计算的主要编程语言,近些年又随着Android系统在智能手机和平板电脑操作系统的绝对优势地位而成为嵌入式系统应用程序的主要编程语言,数次登顶排行榜。
5)C#:
Java在互联网领域的成功和跨平台的优势,严重冲击了C++在编程语言中的地位,微软公司因此推出C#来应对。最初微软推出了可视化编程工具Visual J++,但引起JAVA语言拥有者SUN公司的诉讼,不得已改为发表C#。C#语言深受 Java、C 和 C++ 的影响,还借鉴了Delphi的一些特点,用于.NET Framework之上的程序设计,使得原来使用C和C++的程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序。
6)Objective-C:
乔布斯被迫离开苹果公司后成立了NeXT公司并推出NeXT计算机,虽然计算机销售不佳,但其具有优秀的 NeXTStep操作系统,这是运行在Unix (BSD)系统上的图形界面,使用Objective-C语言作为面向对象的编程语言。后来,NeXT公司与Sun公司合作推出OpenStep, 目标是建立跨平台的面向对象的程序开发环境,并使其可在 Mac, Windows NT, Sun Solaris等系统上运行,后来变成自由软件基金会 (Free Software Fundation)的 GNUstep计划,也使用Objective-C语言进行开发。随着NeXT被苹果公司收购和乔布斯重回苹果,Objective-C也成为苹果公司的软件开发语言,是编写苹果公司iOS操作系统下软件的主要编程语言。Objective-C是面向对象的编程语言,是对C语言的扩充,随着苹果智能终端在市场上的强劲表现而迅速串红,变得炙手可热。不过,苹果公司已推出简单易用的Swift语言来开发iOS系统的程序。
7)Javascript:
Javascript是一种解释型脚本语言,主要用于网页开发,给HTML网页增加动态及交互功能。Javascript最早是由Netscape公司推出,并跟随其Netscape Navigator的流行而迅速获得认同,并与其他竞争对手的浏览器的类似代码相融合而形成统一的标准,并成为现在各种浏览器的必要组成部分。
8)PHP:
PHP是Hypertext Preprocessor的缩写,意思是超文本预处理器,与HTML密切相关,用于嵌入其中形成动态网页,主要用于Web开发。PHP混合了C、Java、Perl的特点,做出的动态页面执行效率要比其他方式高许多,还可以执行编译后代码,使代码运行更快。关键是PHP开放源代码,提供免费的开发环境,并具有跨平台的特性,免费软件组合LINUX+Apache+PHP+MYSQL就可以开发大型商用网络程序,只需要人工费用。
9)MATLAB:
MATLAB是美国MathWorks公司出品的商业软件,和Mathematica、Maple并称为三大数学软件,主要用于数据分析和科技计算,具有可视化开发环境,新的版本中还加入了对C,FORTRAN,C++,JAVA的支持。MATLAB现在主要用于科学研究和工程计算方面,高校和研究机构使用较多,通过其使用率可以间接反映一个地区或城市的科技研究的情况。
10)SQL:
结构化查询语言Structured Query Language的缩写,用于存取数据以及查询、更新和管理关系数据库系统,通行的数据库系统都对SQL规范作了某些编改和扩充。因为互联网的广覆盖,积累了大量数据,相应的大数据和云计算都广受关注,查询和运用这些数据往往都需要SQL。PL/SQL和Transact-SQL分别是Oracle和Microsoft/Sybase公司的SQL Server使用的SQL,二者的关注度随着公司之间的竞争而起起落落。
11)BASIC:
BASIC,在英语里的含义是基础,被认为是学习编程的入门语言,具有简单、易学的特性,是一种解释型高级语言,早期的个人计算机如苹果II和IBM PC都有支持BASIC的软件,所以很流行。微软从DOS操作系统就支持BASIC,发展到Windows后还推出Visual Basic可视化开发环境,常用的办公软件Office还支持Basic写的宏,到了网络时代又推出Visual Basic .NET和Visual Basic Script(VBScript)。在微软的大力支持下,以及更多的非专业编程者的加入,Basic这种一直被专业编程者嘲笑的业余级高级语言一直是一种流行的计算机语言。
下面是网络调查得到的全球及美国和中国部分地区的编程语言的使用情况图表: