编程语言大比拼

来源:互联网 发布:开源人工智能 编辑:程序博客网 时间:2024/04/24 22:21

 c语言:


从性能上说,除了汇编语言,c语言是最接近机器的语言。各种操作系统的编程接口的默认语言都是c语言。因此,用c语言编程,可以最大限度发挥操作系统的能力。同时,由于绝大部分的商品软件都是c实现的,都有c编程接口,可以说,没有c不能实现的功能。

在linux环境中,c具有很好的开放源代码的条件,它有统一的编译器gcc,有强大但比较难掌握的编程环境emacs,有统一的API:posix和linux接口。并且编译器和API是开放源代码的。

在linux上编写图形界面程序,有两个选择KDE和gnome,KDE更成熟,gnome支持多语言和面向对象的程序间的协同。

在windows环境中,现在统一到了vc上,但有一个缺点,windows的升级换代太快,从dos环境到windows31
,从windows31到windows95,到windows2000,到.net。API常常变换,这样,在windows上的程序代码的寿命会比较短。并且vc的编译器和API太复杂,难于掌握。

同时,由于c具有现代语言的大量特征,现在常常代替pasical作为教学的编程语言。

实际上,如果不深入学习,c也是一种很简单的语言。不学basic,直接学c完全没有问题。

和其他语言相比,c有多种编译器,多种操作系统API,多种语法和函数。学习的难度大,统一性差。

java:


相对c,java作为现代语言,具有非常丰富的语法特征,如模块和类,不像c随操作系统和编译器的不同有极大差异,java是一个公司的产品,具有唯一的API,因此,java程序员没有语言隔阂。

相对跨平台的语言来说,java具有最好的图形界面编程API。

java所有的API都是类库,相对c的函数来说,是非常大的进步。java具有现代语言几乎所有的特征。
perl:


perl的最大特点是有强大的字符串模式匹配,是最好的文本文件的读取和生成语言。

perl具有很大的自由性,象英语一样有很大的随意性,

perl有一个强大的数据库接口和其他各种接口。

perl有最大量的程序库。

perl不适合编写大程序。

perl有一个著名的缺点是难懂,也有一个著名的优点是简练。
php:


我感到php是个怪胎,本来perl加嵌入html的功能就完全能实现php的功能,还要另创一种语言,加重了大家的学习负担。

php可以嵌入html,更容易编写服务器端程序。

php天然和web服务器以及mysql数据库相结合。

php可以动态生成图像。
python:


首先,python是和basic一样面向初学者的语言,和英语一样容易懂。

python具有和java一样的最丰富的语法。

python有和perl类似的简单性,但没有模式匹配。

python适合编写大程序。

python有和lisp相似的地方,它有将字符串作为程序执行的eval函数,可以对一个对象的所有数据进行保存,可以把函数作为参数传给另一个函数。

python具有非常好的扩充性,python程序可以和c程序,以及java程序很好地结合。
tcl:


tcl具有最简单的语法,最好的和其他程序交互的能力,有编写图形界面程序的tk。
javascript:


编写动态网页的最佳工具。
lisp:


lisp的语法非常简单,只有简单的函数和参数的语句结构。

lisp数据和程序的界限模糊。

lisp可以深度嵌套。
prolog:


prolog是一种专门的语言。专门用来处理知识。

我感觉prolog是一种数据库的处理工具。

也是根据一些知识衍生出更多知识的推理工具。
basic:


现在最著名的basic是vb,

basic是简单的初级语言。

vb是快速的界面生成语言,是快速的数据库程序开发语言。

vba是vb的应用版,嵌入在offic中。编写offic上的程序很好用。

vbscript是vb的脚本语言,可以产生服务器端和客户端的动态网页。

basic的丑陋在于参数还是默认传地址。太危险。
delphi:


和vb一样是快速开发环境,但性能更好,功能更强大。
.net:


支持多种语言的统一的API类库,

可以编写webform程序,即所有的逻辑都在服务器端,传到客户端的是标准的html3.0,可以被各种浏览器支持。各程序组件间通过soap交换消息。

各种语言的选择

如果编写对性能要求苛刻,或和操作系统结合紧密的程序,必然选择c。

如果编写到处可用的程序,选java。

如果编写大程序,可能的化尽量用python,不行了再用java和c。因为python带来了生产力。

编写文本的处理程序用perl。

编写知识的处理程序用prolog。

编写最灵活,最模糊的程序用lisp。

编写office程序用vba。

编写服务器端程序,php、perl、python、asp都是选择。

编写数据库程序用vb或delphi。

各种语言的选择
如果要追求性能和程序的能力,要完全发挥操作系统的能力,使用c语言是合适的。在windows环境下用vc,在linux环境下用gcc。

如果不是追求和操作系统完美结合,而只是性能,又要追求跨平台性,那么仍然选择c,但可以选择跨平台的库,如qt、gtk、fox、wxwindows。如果要编写游戏也有跨平台选择:SDL。

如果不满意c领域标准的不统一,不满意c的容易出错,不满意c的面向对象特征不彻底。如果不在乎跨平台,windows平台可以选择c#,mac平台可以选择coco。如果需要跨平台,可以选择java。

如果需要跨平台,又要广泛的支持的话,选择java。

如果不在乎商业机密,应用目标也不是太苛刻的话,编写大型跨平台程序还有一个选择就是python或ruby。脚本语言,但是具有全面的库的支持,有和c语言的方便的交互能力。他们和java相比,编程效率更高。同时因为没有编译,程序更方便修改。因为他们的库都是c实现的,也比java有更高性能。同时,他们都是开源的,都是对商业应用友好的,也是简单的、方便定制的。也是不满意java的不可控制的越来越庞大的库的又一个选择。

在linux下,最方便的工具语言是perl,它有强大的社区和代码库的支持。

如果只作为简单应用的工具语言,python和ruby是更好的选择,他们的跨平台移植性好,应用也比较广泛。其中python更适合入门和交流,长期使用也不错。ruby是对python不满意的另一个选择,它提供了很多额外的功能。

如果要选择一个程序的嵌入语言,原来有lisp、basic和java,现在还可以选择python和ruby。

如果在要求动态解释执行语言,而又不想学其他语言的话,c程序员的选择是pike,java程序员的选择是beanshell。

在java平台,又想用脚本语言的话,可以用jython。

最正统的基于文档的语言或叫动态页面语言是javascript。

最专门的服务器端语言是php,当然也有很多其他选择。

xml语言以xul为最著名,dtml也算一个,你自己也可以用xml作为自己特殊用途的语言。比如jedit就用xml作为一种模式定制语言。xml语言是一种比较先进的趋势,比现有的语言在特殊领域更高效。

要找容易实现的语言,lisp和tcl是选择。

lisp的数据和程序融为一体的能力和自由是其他语言都没有的。现在出现了一个lisp的现代化的变种:rebol。

如果有基于事实的编程的需要的话,prolog和clips是必然。

原创粉丝点击