自20世纪50年代以来,计算机科学家设计了数千种编程语言。很多都是默默无闻的,也许是为获得博士学位而创建的。从那以后就再也没有听说过。另一些则流行了一段时间,但由于缺乏支持或仅限于某个特定的计算机系统而逐渐消失。有些是现有语言的变体,增加了新功能,如并行性,即在不同计算机上并行运行程序的许多部分的能力。
阅读更多关于什么是编程语言的信息?
有几种方法可以比较计算机语言,但为了简单起见,我们将根据编译方法和抽象级别对它们进行比较。
有些语言要求程序直接转换成机器代码——CPU直接理解的指令。这种转换过程称为编译。汇编语言、C语言、C++语言和Pascal语言都是汇编语言。
其他语言要么被解释为Basic、Actionscript和Javascript,要么被编译为中间语言,包括Java和C。
在运行时处理解释语言。每一行都被读取、分析和执行。每次在循环中都必须重新处理一行代码,这使得解释语言的速度如此之慢。这种开销意味着解释代码的运行速度比编译代码慢5-10倍。像Basic或JavaScript这样的解释语言速度最慢。它们的优点是在更改后不需要重新编译,这在您学习编程时非常方便。
因为编译程序几乎总是比解释快,所以C语言和C++语言往往是编写游戏最流行的。Java和C#都编译成一种解释语言,这是非常有效的。因为解释java的虚拟机和运行C++的.NET框架都被严重地优化了,所以声称在那些语言中的应用程序如编译C++那样速度不快。
另一种比较语言的方法是抽象层次。这表示特定语言与硬件的距离有多近。机器代码是最低级别的,上面是汇编语言。C++比C高,因为C++提供了更大的抽象。java和C++是高于C++的,因为它们编译成一种称为字节码的中间语言。
机器代码是CPU执行的指令。这是CPU唯一能理解和执行的东西。解释语言需要一个称为解释器的应用程序,它读取程序源代码的每一行,然后“运行”它。
停止、更改和重新运行用解释语言编写的应用程序非常容易,这就是为什么它们在学习编程时很受欢迎。不需要编译阶段。编译可能是一个相当缓慢的过程。一个大型的Visual C++应用程序可以从几分钟到几小时进行编译,这取决于代码的重建速度和内存和CPU的速度。
当计算机在20世纪50年代开始流行时,程序是用机器代码编写的,因为没有其他方法。程序员必须通过物理翻转开关来输入值。这是一种非常乏味且缓慢的创建应用程序的方法,因此必须创建更高级别的计算机语言。
汇编语言是机器代码的可读版本,如下所示
Mov A,$45由于汇编语言与特定的CPU或相关CPU系列相关联,因此汇编语言的可移植性不强,学习和编写都很耗时。像C这样的语言减少了对汇编语言编程的需求,除非RAM有限或需要时间关键的代码。这通常存在于操作系统核心的内核代码或视频卡驱动程序中。
汇编语言水平很低;大多数代码只是在CPU寄存器和内存之间移动值。如果您正在编写一个工资包,您希望从工资和税收扣减的角度考虑,而不是注册到内存位置XYZ。这就是为什么高级语言,如C++、C语言或java更具生产力。程序员可以根据问题域(工资、扣减和应计项目)而不是硬件域(寄存器、内存和指令)进行思考。
C是丹尼斯·里奇在20世纪70年代初设计的。它可以被认为是一个通用工具-非常有用和强大,但很容易让bug通过,从而使系统不安全。C是一种低级语言,被描述为可移植汇编语言。许多脚本语言的语法都基于C,例如JavaScript、PHP和ActionScript。
Perl在Linux世界中非常流行,它是最早的web语言之一,至今仍然非常流行。对于在网络上进行“快速而肮脏”的编程来说,它仍然是无与伦比的,并驱动着许多网站。不过,它在某种程度上被PHP作为一种web脚本语言所取代。
PHP是为Web服务器设计的一种语言,与Linux、Apache、MySql以及PHP(简称LAMP)结合使用非常流行。它是经过解释的,但经过预编译,因此代码的执行速度相当快。它可以在桌面计算机上运行,但在开发桌面应用程序时没有得到广泛的应用。基于C语法,它还包括对象和类。
Pascal在C语言出现前几年被设计为一种教学语言,但由于字符串和文件处理能力差而受到很大限制。一些制造商扩展了这种语言,但直到Borland的TurboPascal(用于Dos)和Delphi(用于Windows)出现,才有了全面的领导者。这些功能强大的实现增加了足够的功能,使它们适合商业开发。然而,Borland面对的是规模更大的微软,因此输掉了这场战斗。
C或C++类最初是在C之后的十年,成功地将面向对象的编程引入C,以及异常和模板等特性。学习C++是一项大任务,它是迄今为止最复杂的编程语言,但一旦掌握了它,你就不会遇到任何其他语言的困难。
C#是由Delphi的架构师Anders Hejlsberg在搬到微软后创建的,Delphi的开发人员将通过Windows窗体等功能感到宾至如归。
C#语法与Java非常相似,这并不奇怪,因为Hejlsberg在搬到微软后也从事J++的工作。学习C#就可以很好地了解Java。这两种语言都是半编译的,因此它们不是编译成机器码,而是编译成字节码(C#编译成CIL,但它和字节码相似),然后进行解释。
Javascript与Java完全不同,它是一种基于C语法但添加了对象的脚本语言,主要用于浏览器。JavaScript被解释,速度比编译代码慢很多,但在浏览器中运行良好。
由Netscape发明的它被证明是非常成功的,在经历了几年的低迷之后,由于AJAX,它正在享受新的生命;异步Javascript和XML。这允许从服务器更新部分网页,而无需重新绘制整个网页。
ActionScript是JavaScript的一个实现,但仅存在于Macromedia Flash应用程序中。它使用基于矢量的图形,主要用于游戏、播放视频和其他视觉效果,以及开发复杂的用户界面,所有这些都在浏览器中运行。
Basic是初学者通用符号指令代码的首字母缩写,创建于20世纪60年代,用于教授编程。微软已经用许多不同的版本开发了自己的语言,包括用于网站的VBScript和非常成功的Visual Basic。它的最新版本是VB.NET,它在与C#相同的平台.NET上运行,并生成相同的CIL字节码。
Lua是一种用C编写的免费脚本语言,包括垃圾收集和协同程序。它与C/C++接口良好,在游戏行业(以及非游戏行业)中用于编写游戏逻辑、事件触发器和游戏控制的脚本。
虽然每个人都有自己喜欢的语言,并且在学习如何编程方面投入了时间和资源,但有一些问题最好用正确的语言来解决。
例如,您不会使用C编写web应用程序,也不会使用Javascript编写操作系统。但是无论你选择哪种语言,如果是C、C++或C语言,至少你知道你正处在正确的位置去学习它。
在Linux中使用bashshell愉快吗?或者你更愿意尝试另一种选择?有tsch、fish、KornShell和Z Shell可供选择。但是这些流行的Linux shell中哪一个是最好的呢? ...
一旦你学会了一种编程语言或编程工具,就很容易进入另一种类似的语言或编程工具。不过,有时细微的差别很难记住。Hyperpolyglot是一个非常棒的工具,用于查找编程语言和工具之间的异同。除了比较流行的解释语言如上文所...
...?Bloc已经分析了13门流行的编程课程,因此您可以轻松地比较基础知识:课程强度、长度和成本。这些公司包括免费的编码资源(Coursera、Codecademy)以及付费在线教程和训练营(Code School、Treehouse、Tealeaf Academy、The Firehose Project...
...,我不知道从哪里开始。对我这样的初学者来说,最好的编程语言是什么?签名,可能是编码员亲爱的,这可能是初学英语的人最常问的问题之一,也是教育工作者争论的问题。问题是,你可以问十个程序员什么是最好的语言,...
JavaScript和PHP是用于网站开发的两种最流行和通用的编程语言。 许多程序员会同意,将两者进行比较是不公平的,因为在网站开发方面,他们有不同的目的。 JavaScript是一种客户端脚本语言,而PHP是最流行的服务器端脚本语言。Ja...
Scala和Java都是基于JVM的面向对象编程语言,用于创建各种各样的应用程序。Java是一种通用编程语言,它无处不在,从台式计算机到**,从网站到应用程序,等等。多年来,Java已经成为最健壮和最复杂的编程语言之一,并且仍然...
R和Python都是面向数据科学的两种最流行的开源编程语言。R是数据挖掘者和统计学家广泛使用的最新前沿技术,用于开发统计软件和数据分析。R是一种功能强大的编程语言,它正在迅速成为专业人员的事实标准,并已被应用于从...
...式实施。当时他开始研究一种新的脚本语言,其语法与ABC编程语言相似,但性能有所提高,以克服ABC的缺陷。他终于在1991年推出了编程语言的第一个官方版本,随着时间的推移,它成为社区中最流行和最广泛使用的第一个编程...
...缺点。 什么是python(python)? Python是一种通用的跨平台编程语言,特别容易学习,代码可读写清晰。这是一种非常有表现力的语言,只需要编写更少的代码行,就可以用C++或java编写的等效应用程序所需的代码。Python是用可移...
Python和JavaScript都是高级编程语言,在编程语言方面非常简单。他们都是第一语言最佳人选。JavaScript无疑是最容易使用的web编程语言之一。在目前和可预见的未来,只有一种基于浏览器的编程语言。JavaScript在很短的时间内从不存...