各主流编程语言对比.docx

上传人:b****4 文档编号:3487061 上传时间:2022-11-23 格式:DOCX 页数:14 大小:30.27KB
下载 相关 举报
各主流编程语言对比.docx_第1页
第1页 / 共14页
各主流编程语言对比.docx_第2页
第2页 / 共14页
各主流编程语言对比.docx_第3页
第3页 / 共14页
各主流编程语言对比.docx_第4页
第4页 / 共14页
各主流编程语言对比.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

各主流编程语言对比.docx

《各主流编程语言对比.docx》由会员分享,可在线阅读,更多相关《各主流编程语言对比.docx(14页珍藏版)》请在冰豆网上搜索。

各主流编程语言对比.docx

各主流编程语言对比

PYTHON

特点:

面向对象、解释型

主要用途:

1.图形处理:

有PIL、Tkinter等图形库支持,能方便进行图形处理。

2.数学处理:

NumP扩展提供大量与许多标准数学库的接口。

3.文本处理:

python提供的re模块能支持正则表达式,还提供SGMLXML分析模块,许多程序员利用python进行XMLg序的开发。

4.数据库编程:

程序员可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer,Oracle,Sybase,DB2MySQLSQLite等数据库通信。

python自带有一个Gadfly模块,提供了一个完整的SQL环境。

5.网络编程:

提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。

很多大规模软件开发计划例如Zope,Mnet及BitTorrent.Google都在广泛地使用它。

6.Web编程:

应用的开发语言,支持最新的XML技术。

7.多媒体应用:

Python的PyOpenG模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。

PyGam模块可用于编写游戏软件。

8.pymo引擎:

PYMO全称为pythonmemoriesoff,是一款运行于SymbianS60V3,Symbian3,S60V5,Symbian3.Android系统上的AVG游戏引擎。

因其基于python2.0平台开发,并且适用于创建秋之回忆(memoriesoff)风格的AVG游戏,故命名为PYMO

9.黑客编程:

python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。

优点:

1.简单:

Python是一种代表简单主义思想的语言。

阅读一个良好的

PYTHONg序就感觉像是在读英语一样。

它使你能够专注于解决问题而不是去搞明白语言本身。

2.易学:

Python极其容易上手,因为Python有极其简单的说明文档。

3.速度快:

Python的底层是用C语言写的,很多标准库和第三方

库也都是用C写的,运行速度非常快。

4.免费、开源:

Python是FLOSS(自由/开放源码软件)之一。

使

用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它

做改动、把它的一部分用于新的自由软件中。

FLOSS是基于一

个团体分享知识的概念。

5.高层语言:

用PYTHON语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

6.可移植性:

由于它的开源本质,PythonB经被移植在许多平台上

(经过改动使它能够工作在不同平台上)。

这些平台包括LINUX、WINDOWS、FREEBSD、MACINTOSH、SOLARIS、OS/2、AMIGA、AROS、AS/400、BEOS、OS/390、Z/OS、PALMOS、QNX、VMS、PSION、ACOMRISCOS、VXWORKS、PLAYSTATION、SHARPZAURUS、WINDOWSCE、POCKETPC、SYMBIAN以及Google基于linux开发的androi[平台。

7.解释性:

一个用编译性语言比如C或C++写的程序可以从源文

件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。

这个过程通过编译器和不同的标记、选项完成。

8.运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。

而PYTHON语言写的程序不需要编译成二进制代码。

你可以直接从源代码运行程序。

9.在计算机内部,PythoN解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。

这使得使用PythoN更加简单。

也使得PythoNS序更加易于移植。

10.面向对象:

Python既支持面向过程的编程也支持面向对象的

编程。

在“面向过程”的语言中,程序是由过程或仅仅是可重

用代码的函数构建起来的。

在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

11.可扩展性:

如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

12.可嵌入性:

可以把PythoN嵌入C/C++程序,从而向程序用户

提供脚本功能。

13.丰富的库:

Python标准库确实很庞大。

它可以帮助处理各种

工作,包括正则表达式、文档生成、单元测试、线程、数据库、

网页浏览器、CGI、FTP电子邮件、XMLXML-RPCHTMLWAV文件、密码系统、GUI(图形用户界面)、TK和其他与系统有关的操作。

这被称作Python的“功能齐全”理念。

除了标准库以夕卜,还有许多其他高质量的库,如wPythonTwisted和Python

图像库等等。

14.规范的代码:

PYTHON采用强制缩进的方式使得代码具有较好

可读性。

而PYTHON语言写的程序不需要编译成二进制代码。

缺点

1.单行语句和命令行输出问题:

很多时候不能将程序连写成一行,女口IMPORTSYS;FORIINSYSPATHPRINTI。

而PERL禾口AW!

就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。

2.独特的语法

3.这也许不应该被称为局限,但是它用缩进来区分语句关系的方

式还是给很多初学者带来了困惑。

即便是很有经验的python程

序员,也可能陷入陷阱当中。

最常见的情况是TAB和空格的混用会导致错误,而这是用肉眼无法分别的。

4.运行速度慢:

这里是指与C和C++相比。

C

主要用途:

优点:

缺点

C++

特点:

C++支持多种编程范式—面向对象编程、泛型编程和过程化编程。

主要用途:

系统开发,引擎开发

1.C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。

2.C++设计直接的和广泛的支持多种程序设计风格(程序化程序设

计、资料抽象化、面向对象程序设计、泛型程序设计)。

3.C++设计无需复杂的程序设计环境。

4.C++语言灵活,运算符的数据结构丰富、具有结构化控制语句、

程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比,可以直接访问物理地址,与汇编语言相比又具有良好的可读性和可移植性。

缺点:

C++由于语言本身复杂。

C++的编译系统受到C++的复杂性的影响,

非常难于编写,即使能够使用的编译器如果存在问题,可能难于被发现。

[

C#

特点:

面向对象的、运行于.NETFramewo之上,面向对象

主要用途:

快速地编写各种基于MICROSOFT.NET平台的应用程序,

MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。

优点:

1.更先进的语法体系

2.强大的周边

缺点

1.没有考虑代码量

2.这是一个产品

HTML主要用途:

优点:

缺点

PHP

特点:

通用开源脚本语言

主要用途:

WEB开发领域

优点:

1.开放的源代码

2.免费性

3.快捷性

4.跨平台性强

5.效率高

6.图像处理

7.专业专注

缺点

1.对递归的不良支持

2.并非线程安全

3.因商业应用而残废

4.没有命名空间

5.不标准的日期格式字符

6.混乱的许可证

7.不一致的函数命名规则

JAVA

特点:

JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言。

JAVA技术具有卓越的通用性、高效性、平台移植性和安全性主要用途:

WEb浏览器、网络应用系统。

优点:

1.简单性:

风格类似于C++,Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。

2.面向对象:

Java是一种完全面向对象语言。

从这点来看,Java类似于SmallTalk,但其特性、尤其是适用于分布式计算环境的特性远远超越了SMALLTALK。

3.分布式:

Java包括一个支持HTTP和FTP等基于TCP/IP协议的

子库。

因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。

4.健壮:

JAVA致力于检查程序在编译和运行时的错误。

类型检查

帮助检查出许多开发早期出现的错误。

JAVA自己操纵内存减少了内

存出错的可能性。

5.结构中立:

JAVA将程序编译成一种结构中立的中间文件格式

只要有JAVA运行系统的机器都执行这种中间代码。

这种中间语言被

设计在虚拟机上运行,由机器相关的运行调试器实现执行。

6.安全:

1)删除了香指针和手动释放内存等功能,避免了非法内存操作。

2)当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来。

Java在机器上执行前,要经过很多测试,它经过代码校验,检查代

码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。

7.可移植的:

同体系结构无关的特性使得Java应用程序可以在配

备java解释器和运行环境的任何计算机系统上运行。

任何Java代

码会被解释成一种中间语言,然后通过不同机子的特定环境(如机器指令)运行程序。

实现方便移植的特点。

8.解释性。

JAVA解释器能直接运行目标代码指令。

链接程序通常比编译程序所需资源少。

9.高性能。

如果解释器速度不慢,Java可以在运行时直接将目标

代码翻译成机器指令。

SUN用直接解释器一秒钟内可调用300,000

个过程。

10.多线程:

JAvA提供的多线程功能使得在一个程序里可同时执

行多个小任务。

多线程带来的更大好处是更好的交互性能和实时控制性能。

11.动态:

动态特性允许程序动态地装入运行过程中所需要的类。

在运行时确定引用的好处是可以使用已被更新的类,而不必担心会

影响原有的代码。

如果程序连接了网络中另一系统中的某一类,该

类的所有者也可以自由地对该类进行更新,而不会使任何引用该类

的程序崩溃。

缺点

1.存在非对象的数据类型

2.不能够用一种描述方法来表达各种类(CLASS

3.无法继承2个以上的类的装配

JavaScript

特点:

直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内

置支持类型

主要用途:

1.嵌入动态文本于HTM页面。

2.对浏览器事件做出响应。

3.读写HTML元素。

4.在数据被提交到服务器之前验证数据。

5.检测访客的浏览器信息。

6.控制cookies,包括创建和修改等。

[4]

7.基于Node.js技术进行服务器端编程。

优点:

1.减少网络传输

2.方便地操纵HTML寸象

3.支持分布式运算和处理缺点:

1.不同浏览器支持程度不同

2.WEB安全性

框架介绍:

(1).JQUERY

<1>.介绍

JQUERY是一款同PROTOTYPE一样优秀JS开发库类,特别是对CSS和

XPATH的支持,使我们写JS变得更加方便!

如果你不是个JS高手又想写出优秀的JS效果,那么JQUERY可以帮你达到目的!

并且简介的语法和高的效率一直是jQUery追求的目标。

<2>.优点:

注重简介和高效,JS效果有YUI-EXT的选择,因为YUI-EXT重用了很多JQUERY的函数

<3>.缺点:

据说太嫩,历史不悠久。

(2).EXT

<1>.介绍

基于YAHOOUI的扩展包YUI-EXT是具有CS风格的WEB用户界面组件,能实现复杂的Layout布局,界面效果可以和backbase媲美,而且使用纯JAVASCRIPT代码开发。

真正的可编辑的表格EDITGRID,

支持XML和Json数据类型,直接可以迁入&id。

许多组件实现了对数据源的支持,例如动态的布局,可编辑的表格控件,动态加载的Tree控件、动态拖拽效果等等。

从1.0beta版开始同Jquery合作,推出基于JQUERY的EXT1.0,提供了更多有趣的功能。

<2>.优点:

结构化,类似于JAVA的结构,清晰明了,底层用到了

JQUERY的一些函数,使整合使用有了选择,最重要的一点是界面太让让人震撼了。

<3>.缺点:

太过复杂,整个界面的构造过于复杂。

(3).DOJO

<1>.介绍

DOJO是目前最为强大的JS框架,它在自己的WIKI上给自己下了一个定义,Dojo是一个用JavaScript编写的开源的DHTMIX具箱。

Dojo很想做一个“大一统”的工具箱,不仅仅是浏览器层面的,野心还是很大的。

DoJo包括AJAX、BRoWSE、REVENT、WiDGET等跨浏览器Api,包括了JS本身的语言扩展,以及各个方面的工具类库,和比较完善的Ui组件库,也被广泛应用在很多项目中,他的Ui组件的特点是通过给HTML标签增加TAG的方式进行扩展,而不是通过写JS来生成,DoJo的Api模仿JAVA类库的组织方式。

用DoJo写WEBOS可谓非常方便。

Dojo现在已经4.0了,Dojo强大的地方在于界面和特效的封装,可以让开发者快速构建一些兼容标准的界面。

<1>.优点:

库相当完善,发展时间也比较长,功能强大,据说利用DoJo的io.BiND()可以实现CoMET看见其功能强大非一般,得到IBM和SUN的支持。

<2>.缺点:

文件体积比较大,200多KB,初次下载相当慢,此外,

DOJO的类库使用显得不是那么易用,JS语法增强方面不如PROTOTYPE

(4).PROTOTYPE

<1>.介绍

它是一个非常优雅的JS库,定义了JS的面向对象扩展,DOM操作API,事件等等,以Prototype为核心,形成了一个外围的各种各样的JS扩展库,是相当有前途的JS底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR集成的AJAXJS库),之上还

有SCRIPTACULOUS实现一些JS组件功能和效果。

<2>.优点:

基本底层,易学易用,甚至是其他一些JS特效开发包的底层,体积算是最小的了。

<3>.缺点:

如果说缺点,可能就是功能是他的弱项

(5).DSCRIPTACULoUS

<1>.介绍

SCRIPTACULOUS是基于PROTOTYPEJS框架的JS效果。

包含了6个JS文件,不同的文件对应不同的JS效果,所以说,如果底层用PROTOTYP啲话,做JS效果用SCRIPTACULOUS那是再合适不过的了,连大名鼎鼎的DIGG都在用他,可见不一般

<2>.优点:

基于PROTOTYPE是最大的优点,由于使用PROTOTYPE的广

泛性,无疑对用户书锦上添花。

<3>.缺点:

刚刚兴起,需要时间的磨练

(6).MOCHIKIT

<1>.介绍

MOCHIKIT自称为一个轻量级的JS框架。

MOCHIKIT主要受到PYTHON

和PYTHON标准库提供的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。

其中的M5CHKT.DOM尤其方便,能够以

比原始JavaScript更友好的方式处理DOM寸象。

MxhiKt.DOM大部分都是针对XHTML文档定制的,如果与MdchKjt和Ajax结合在一起,使用XHTML包装的微格式尤其方便。

Mdchikit可以直接对字符串或者数字格式化输出,比较实用和方便。

它还有自己的JS代码解释器

<2>.优点:

MdchKt.DOM这部分很实用,简介也是很突出的

<3>.缺点:

轻量级的缺点

(7).MOOTOOLS

<1>.介绍

MOOTOOLS是一个简洁,模块化,面向对象的JAVAScRiPT框架。

它能

够帮助你更快,更简单地编写可扩展和兼容性强的JAVAScRiPT代码。

MDOTOOLS跟PROTOTYPEJS相类似,语法几乎一样。

但它提供的功能要

比PROTOTYPEJS多,而且更强大。

比如增加了动画特效、拖放操作

—O

<2>.优点:

可以定制自己所需要的功能,可以说是PROTOTYPEJS的

增强版。

<3>.缺点:

不大不小,具体应用具体分析。

(8).MOO.FX

<1>.介绍

MDOFX是一个超级轻量级的JAVASCRIPT特效库(7K),能够与PROTOTYPEJS或MOOTOOL框架一起使用。

它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何HTML元素的CSS属性,

包括颜色。

它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。

MOOFX整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。

<2>.优点:

小块头有大能耐

<3>.缺点:

这么小了,已经不错了

PERL

特点:

集成了正则表达式的功能

主要用途:

WEB编程、数据库处理、XML处理以及系统管理

优点:

PERL追求的是简单,解决一个一般的问题用它几行代码就完成了.一个稍复杂一点的问题代码也不会超过一屏!

在软件测试中,PERL通常是非常重要的角色。

一般一个测试通用函数库就要分十几个文件,甚至更多,包含多达上千个定制功能。

而这些函数将在主函数运行时,不定数量的被调用。

几乎可以说,一切自动过程都是由

Perl自己完成的,可见其功能的强大和在当今计算机技术高速发展的时期仍然发挥着重要的作用。

PERL最初是当做一种UNIX的脚本语言设计的,但是它早就移植到大多数其它操作系统里了。

因为PERL几乎可以在任何地方运行,

所以PERL可以说是当今最具有移植性的编程环境;要想写可移植的C/C++程序,你得在程序里加上一大堆#IFDEF标签来区分不同

的系统;要想写可移植的JAVA程序,你必须理解每种新的JAVA实现的特质;要想写可移植的shell,你可能要记住每条命令在每种

操作系统上的语法,走运的时候你可能可以找到一些公共的东西;要想写可移植的VISUALBASIC程序,需要对“移植”有个更灵活的定义。

让我们很高兴的是PERL避免了所有这些问题,同时还保留了这些语言中的许多优点,同时还有一些自己的特色。

PERL的特色来自许多方面:

它的特性集的工具,PERL社区的创造性,以及开源运动的大环境。

不过,许多这些特性都是混合的东西;PERL的身世复杂,它总是把事物看成是优点的不同方面,而不是弱点。

PERL是“背黑锅我来”的语言。

如果你觉得自己陷入一团乱麻之中,非常渴望自由,那么请使用PERL。

PERL是跨文化的。

PERL的爆炸性增长很大程度上是因为那些前UNIX系统程序员的渴望,他们希望从他们的“老家”带着尽可能多的东西。

对于他们而言,PERL是可移植的UNIX文化蒸馏器,是"此路不通"的沙漠中的绿洲。

从另外一个角度来看,PERL还可以从

另外一个方向运转:

在WNDOWS上工作的WEB设计者通常会非常开心地发现他们的PERL程序可以不加修改地在UNIX服务器上跑。

尽管PERL在系统程序员和WEB设计师中间非常流行,但这只是因为是他们最早发现PERL的,PERL可以用于更广泛的用途。

从PERL最早的文本处理语言开始,它已经发展成为一种非常复杂的,通用的编程语言,以及完整的开发环境,包括调试器,调节器,交叉引用,编译器,库,语法提示编辑器,以及所有其它“真正”的编程语言所具有的所有挂勾,只要你需要。

当然这些东西都是让我们可能处理难的问题的东西,而且很多其它语言也可以做到这一点。

PERL之所以成为PERL是因为它从来不会因为保持简单事情简单化而丢失其他方面的特性。

因为PERL既强大又好用,所以它被广泛地用于日常生活的方方面面,从宇航工程到分子生物学,从数学到语言学,从图形处理到文档处理,从数据库操作到网络管理。

很多人用PERL进行快速处理

那些很难分析或转换的大批量数据,不管你是处理DNA序列,网

页,还是猪肚皮的未来都无所谓。

实际上,在PERL社区有一个笑

话就是,下次股市大崩盘就很有可能是哪个家伙写的脚本里头有BUG造成的。

(不过,乐观点来看就是,任何还在失业的股票分析师仍然有可以利用的技巧。

PERL的成功有许多原因。

PERL早在开源软件的名字出现之前就已经是一个成功的开源项目了。

PERL是自由的,并将永远自由下去。

你可以在任何合适的场合使用perl,只需要遵守一个非常自由的版

权就可以了。

如果你在从事商业活动并且还想使用PERL,那么用就

是了。

你可以把PERL嵌入到你写的商业软件中而不需要支付任何费用也没有任何限制。

如果你碰上一个PERL社区解决不了的问题,那你也还有最后的一招:

源程序本身。

PERL社区不会在“升级”

的伪装下租给你它们的商业秘密。

而且PERL社区也不会“停业”,更不会让你孤立无援。

PERL是自由软件这一点无疑对它是有帮助的。

但这一条并不足以解

释PERL现象,因为许多自由软件包没有能繁荣起来。

PERL不仅自

由;而且好玩。

人们觉得自己在PERL里可以有创造力,因为它们

有表达的自由:

他们可以选择是为计算机速度优化还是为程序员的

速度优化,是冗长还是简洁,是选择可读性还是可维护性,或者选择复用性,移植性,接受性和传授性等等。

假如你进入一次模糊的PERL比赛,甚至你还可以为模糊性做优化。

PERL可以给予你所有这些自由,因为它是一门有着分裂人格的语言。

PERL同时是很简单并且很富有的语言。

PERL从其它地方拿来好主意,然后把它们安装到易用的框架里面。

对于只是喜欢她的人来说,PERL是实用抽取和报表语言(PRACTICALEXTRACTOINANDREPORTLANGUAG)E。

对那些热爱她的人而言,她是变态电子垃圾制造者(PATHOLOGICALLY

ElectricRjbbishLister)。

在少数人眼里,Perl是毫无意义的重复练习。

不过世界需要一点点冗余。

精简主义者总是想把事物分隔开。

而我们则总是企图把它们合并到一起。

PERL之所以是简单的语言是有很多原因的。

比如你用不着知道什么特殊的指令就可以编译PERL程序--只要把它当做批处理或者sHELL脚本执行就可以了。

PERL的类型和结构很容易使用和理解。

PERL对你的数据没有任何限制--你的字串和数组可以要多长就多长(只要你有足够的内存),而且它们都会自动增长。

PERL不会强迫你学习新的语法和语意,PERL改从许多其它你已经熟悉的语言里(比如c,AWK,BAsic和PYTHON,英文,希腊语等)借来语法。

际上,任何程序员都可以从书写良好的PERL代码段中读懂它的含

义。

最重要的是,你不用先学习所有PERL的东西就可以开始写有用的程序。

你可以写很小的PERL程序。

你也可以象小孩那样写PERL程序,我们保证不会笑话你。

或者更准确

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1