`

脚本语言比较

阅读更多
随要大家觉得语言之间的比较恰似没有什么意义,但介于对自己好奇心的满足,我还是在网上找了些线索来比较自己喜欢的一些语言,同时也贡献给大家作为参考。



一、Python编程语言:


一)优点:


1、比较成熟,通用,工具库多,资源丰富,文档等支持强大,几乎能做任何事,如:
网络,图形界面,桌面程序,服务器,图形处理,算法等。
2、相比之下性能好,负载力强。
3、简单易学,文法简洁,其使用空白缩进代替花括号或END使代码看起来很干净,易读易懂因此易维护。
4、基于尽量使用一种方法完成一件事,越简单越好的哲学。这种哲学适合大型项目,因为让其他人看着易懂,
好维护,不至于过多灵活繁杂的语法使自己玩的爽了,别人看得傻了。
这与RUBY的用许多种方法完成一件事的哲学正相反。GROOVY感觉在两者之间。
5、得到业界承认
a) Mac机,还有大多数Linux,或者流行Linux中绝大多数都默认安装Python,
这意味着不管你是哪国人在哪里,想用哪台Linux机子,想用Python就可以用,
省时顺手;要用Ruby Groovy还得另外安装。
b) 有巨头支持。如:Google 互联网老大,公司内部中Python是官方的第三语言,
有内部员工说他们是能用Python就用Python, 实在不行才用C++;
Youtube 大部分是用 Python写的;
著名Linux发行版Ubuntu的发行公司的官方语言,也是其创始人的首选语言;
c)其他还有Redhat Linux, 美国宇航局,金融系统如纽约股票交易所,摩根大通,
电影动画制作如Disney,Pixar和DreamWorks,星球大战的特效公司ILM等一系列著名大型机构中使用。
桌面程序如流行程序BT客户端等。
6、语法灵活亦相对严谨 除了动态性外,类也是开放的(但是底层内置的不是),
可以动态增加删改类及其属性函数等。

7、如果你掌握了Python,想在Java里应用它,你可以采用Jython。
Jython是采用Java语言实现的Python。这样,你只 要按照Python的语法,
就可以调用Java的各种类库,快速的编写出基于Java的程序。也就是通过Jython,
编写Java程序。这样就可以更为 快速的实现Java的功能。Python在面向对象方面和Java是相通的。



二)缺点:

1. 运行效率低下

目前为止,Python编程语言可以说是所有主流脚本语言中速度最慢的。
这与其脚本引擎的设计思路有关。如果你的应用对于速度有着较高的要求,
就要考虑Python是否能满足需要。不过这一点可以通过使用C编写关键模块,然后由Python调用的方式加以部分解决。

2. 多线程支持欠佳

Python编程语言支持多线程,但是其运行效率也不高。

3. 独特的语法

这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。
即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的况是tab和空格的混用会导致错误,
而这是用肉眼无法分别的。

4. 无类型

作为一种动态语言,随时随地创建和使用变量是Python给我们带来的巨大的便利。
但是它也会使得程序不严谨,某些错误只有在运行中才可能出现。
所以,使用Python编程的时候,要对类型做到心里有数。这也使得Python的IDE工具无法提供便利的自动完成等功能。

三)Python最大的悲哀就是:


现在很多项目经理,大多不去了解Python,
导致其默默无闻!好在现在众多的web巨头开始关注,但愿Python可以发挥自己的优点!

四)使用场合:

查阅的结果似乎对于这两种语言的评价都很好,在网络开发上的性能都很好。都很适用于快速的应用程序开发,
开发的效率很高。

跨平台开发:
Python 以中立方式支持不同的一系列平台,如果用户使用的系统包含不同的平台,
使用 Python 开发应用程序则再好不过;它这种适应性也可以为系统预留使用其它工具的可能。
对于频繁更换平台用户,Python 是个理想的选择。

为最终用户提供软件服务时,Python 也是个备选方案,可以避免同时用不同应用软件编程的时间和费用。
互联网程序设计
Python 带有的标准模块可以对网络插槽进行初级和协议级别的通讯,
比如,如果要从 POP 服务器上读取电子邮件,Python 随带的库模块可以做到。
另外, Python 还支持 XML、HTML和 CGI 库文件,所以利用它可以解析用户输入的需求,
并通过网络服务器产生最佳质量的成果。
程序员还可为拥有 Python 内置解释器的 Apache、Unix 和 Windows 网络服务器编译模块。
基于 CGI 程序的功效,可以很方便地执行 Python 语句而不用单独装载。



二、Ruby编程语言:

一)优点:

1) 语法是更纯正的面向对象语言,许多功能让从Java/C++世界过来的人耳目一新;
因为它借鉴了包括Python, Smalltalk, Lisp等在内的一些其它优秀语言的优点。
一切都是Object,如避免Python的类似len("name"),而采用 "name”.length,
还有提供类内部参数数据的保护等;提供的更多语法, 比如它有python没有的块与闭包;
它有更易懂简练句法,如用' < ' 来表示类继承,用?来表示返回是否的函数。
2) 灵活的魔幻语法,如模块的混入,块,开放式的类定义,加上已有的动态性使其变得极其灵活;
各种繁多的著名设计模式在它手中好象都失去了意义,Java做梦都想达到的灵活性在RUBY手中轻而易举,
Spring AOP相比也失去了光泽,设计大师们的法则与多年经验也好象都不再适用。
3) 相比Python提供了End作为程序块的截止符,这是Rubyist们自认为的一大进步,也是与Python的一个重要区别。
4) 杀手级框架,Ruby on Rails,及还有些其它杀手级框架正在一一跃出。
5)有跑在JVM的JRuby和微软的IronRuby


二)缺点:


1)灵活可能有负面影响 开放的类(尤其是底层的)在大型程序中可能会造成混乱,
不易懂不易维护,类可能会不知道谁在哪个角落就能够改动(不过有了IDE的支持这种情况可能可以解决);
语法方法的灵活可能使代码不规范,一个人喜欢写魔幻代码的有可能使后来人看不懂,
其用多种方法实现一个目的的哲学好象是在鼓励代码的多样灵活性,这在大型项目中会加大维护难度。
这可能也是为何目前尚未有大型企业界使用Ruby的原因。针对这一情况已经有人提议对修改底层的类加以限制。
2)性能相对不强 原有的Ruby速度慢,稳定性相对差些,据说是原有的GC写的不强。
不过随着新的更好的一系列Ruby解析器的出现与硬件的快速发展与价格降低,此性能问题应该能够在不远的未来解决。
据Java Eye的Robbin讲,即使有此性能问题,扩充硬件或设置系统也多可解决问题。
3)对线程支持不强,Ruby 2.0据说要加强
4)好象尚未支持多核,不过未来可能解决,道理同2)
5)对End的意见 不少人认为Ruby的End过多,显得不好看。代码在写很多层时尤其如此,
这样使查找相应的起始位置增加难度。有人建议其创始人Mats提供End的替代字符,他有此意,
但是好象没有他看的上的,如果谁不喜欢End的,找个自认为不错的字符发给总部吧,要趁早,否则以后越来越难改。
综述:Ruby是令人兴奋的,学习Ruby可以加深程序员对面向对象,及计算机语言的理解,从这一点上说,
Python更只象个工具,Ruby灵活却又很有深度,值得一学。Ruby的主要缺点是其GC及性能,
近年来已经涌现一系列新的解析器号称能解决GC问题;有关性能看看Java的历史可知,
当时Java的速度被评为比C++差得太远,可是几年后性能随着硬件的发展而大大加强,
所以Ruby的性能应该在未来不会是大问题。 ruby目前最主要的应用也是其杀手锏Rails框架具备快速开发网站的特点,
一个或几个人就能快速开发一个网站,能节省很多人力时间,较适合创业型小公司,
负荷量不是非常大的中型公司,或大型机构的内部网站。 对Python的空格缩进,非面向对象语法,
self, "__xxx__", 跛脚的lambda难以忍受的可以尝试一下ruby ;



三、Groovy编程语言:

一)优点:

1)初看起来Groovy好象是Ruby on Java,它几乎继承了ruby所有的优秀语法,
也添加了少量Python的东西。Ruby中引以为傲的一切是对象,Groovy也可以作到,
如 3.times { ...}, 块传递,动态改变类,增删类函数等。它借鉴了大量Ruby优秀的语法,
保留了C/C++/Java程序员熟悉的花括号,没有用Ruby无所不在的"End”。也支持开放的类,
此外还支持将修改的类在一定范围内使用以减少负面影响。对Ruby的一些生僻的字符进行了改进,
使得更加友好易懂,如块中的 | x | 换成了 x→;
2)被Thoughtwork(就是写重构那本书的Martin Fowler所在公司)经理称为 “Java 2.0” ,
可以“无缝”结合Java 代码,你可以在Groovy文件中写Java代码,用Java库。
Groovy象是个轻量级的动态版Java,而且加大扩展了许多易用的句法,以前曾想过的一些"Java 要是这么写多好啊"
竟然在Groovy中实现了: 如去掉了多余的分号,三引号使得多行的文本变量整洁好看,
砍掉了没多大用的getter setter等。
3 )可以使用所有Java的库,因为Groovy"就是Java”。
相比Ruby爱好者在一个一个辛苦编写各种库的时候,Groovy已经是站在Java 的车头上向前冲了。
4)支持多核CPU,未来的硬件是多核CPU的世界,谁不支持多核可能不是淘汰就落后。由于跑在JVM上,
Groovy再次领先于Python和Ruby;有人说,也有Jython 和Jruby 啊,但是从与Java的结合性及调用Java代码或库来说,
Groovy无疑是极佳的结合,Jruby或Jython相比下显得并不很自然。
5)性能不错 Groovy不再是一个玩具或试用品,一个已经使用Groovy的公司其正式发布的产品中有超过十万行Groovy代码。
其性能相比Python我不清楚,但有测试说Grail性能不亚于,
甚至更强于Ruby on Rails.由于Groovy跑在JVM上,性能应该不会太差。

二)缺点:

1)Groovy就是Java, 目前只有JVM的实现,只能跑在有JVM的机子上。做桌面程序有着Java相同的弱点,
不适合做小巧的Window GUI程序。
2) Groovy不适合作手机或嵌入程序。 综述:Groovy较适用于需要调用已有的Java库,
或者项目中想利用已有Java人力与资源的情况。如果以使用Java为主的公司不十分愿意换一个新语言,
Groovy和Grails是ruby和rails的一种可考虑的替代选择



四、因为Python与Ruby各项参数比较接近,所以他们两个可能是最为较近的语言了,我就拉出来特意比较一下啊!

一)python和ruby的相同点:
都强调语法简单,都具有更一般的表达方式。python是缩进,ruby是类basic的表达。都大量减少了符号。
都是动态数据类型。都是有丰富的数据结构。
都具有c语言扩展能力,都具有可移植性,比perl的可移植性更好。也都可以作为嵌入语言。
都是面向对象的语言,都可以作为大项目的开发工具。
都有丰富的库支持。
也有最宽松的版权许可,除了一些工具属于GNU世界。
都有lisp特色的eval函数,也都能把函数作为参数。
也有图形界面的ruby的专门编辑器。
都获得了广泛的c库的支持。如qt、gtk、tk、SDL、FOX等,ruby计划实现SWIG接口(已实现)。
都有完善的文档。


二)和python相比ruby的优点:
具有正则表达式和嵌入html的功能。
python也有正则表达式,但没有ruby的应用方便和广泛。python的嵌入html项目才刚起步。
ruby 还有apache的mod模块。ruby本身也实现和很多unix工具,如racc,doctools。比python更亲近linux。
比python功能更完整的面向对象的语法。
ruby的整个库都是具有类继承的结构。
他的基本的数据类型和运算符都是可以重载的。
ruby主要的功能都是通过对象的方法调用来实现的,而不是函数。python也在向这方面发展,但没有ruby做的彻底。
ruby的类是更规范的单继承,还有接口等概念的实现。
python可以实现在列表内的条件语句、循环语句,而ruby用“块”的方式来实现这个功能,比python的更灵活,更具有通用性。
ruby具有类似lisp的彻底的函数方式的条件语句、循环语句等。语句的表达能力更强。
附带一些unix工具,如racc等。

三)和python相比ruby的不足:
最大的不足正是因为ruby的强大所引起的。它没有python的简单性好。
比较复杂的面向对象语法、“块”语法的引入、正则表达式的引入、一些简写标记都增加了语言的复杂性。
python的缩进表达方式比ruby的basic的表达方式更让人悦目,ruby程序的满眼的end让人不舒服。
当然,ruby认为end的方式比python更先进。
ruby还没有python的“自省”的能力,没有从程序文件中生成文档的能力。
ruby没有国际化的支持。国际化支持在ruby的计划中。这是因为ruby的历史比python要短造成的。
ruby没有类似jython的东西(JRuby有了)。

四)python和ruby的语言的选择:

从简单的就是好的来说,选python是没错的。python适合寻找简单语言的人,这很可能造成python更流行,
因此也有更多的支持。但如果要追求更强大的语法功能,则ruby是好的选择。
因为ruby和python的哲学有很多相似的地方,先从python入手,尽量用python,如果 python的能力不足了,
可以在找ruby。



五、总结:
1、往往好的性能优秀的框架,语言等,并不一定等于他是最终的胜利者!
2、原则语言要根据自己从事的业务,自己的知识结构,兴趣爱好等因素而定!
3、无论哪种语言能存活到现在,其实都有它的用武之地,我们要学就要把这门语言学精,
这才是正道,在一个领域你才能得到刚好的发展!



分享到:
评论

相关推荐

    编译性语言、解释性语言和脚本语言

    计算机编程语言根据其工作原理和执行机制,主要分为编译性语言、解释性语言和脚本语言。这三种类型的编程语言各有特点,适用于不同的场景。 编译性语言,如C、C++、Objective-C和Fortran,它们的源代码首先需要通过...

    3dmaxscript脚本语言完全学习手册

    maxscript语言是3ds max 自带的脚本语言,它不但拥有一般程序语言的所有特点,而且可以在程序内实现几乎所有在3ds max界面下的交互操作,功能非常强大,而且语法比较简单,容易上手。.  本书详细、系统地介绍了max...

    Mac OS X脚本语言

    ### Mac OS X脚本语言详解 #### 一、概述 Mac OS X作为一款深受程序员喜爱的操作系统,其魅力不仅在于其优雅的用户界面,更在于它为用户提供了丰富的脚本语言支持。无论是在UNIX环境中广泛使用的脚本语言,还是如...

    3ds MAXScript脚本语言完全学习手册

    《3ds MAXScript脚本语言完全..., MAXScript语言是3ds max自带的脚本语言,它不但拥有一般程序语言的所有特点,而且可以在程序内实现几乎所有在3ds max界面下的交互操作,功能非常强大,而且语法比较简单,容易上手。

    NASL脚本语言教程

    "NASL脚本语言教程" NASL脚本语言是为网络安全扫描工具Nessus开发的一种脚本语言,它允许用户快速编写测试插件,以检测新出现的漏洞。NASL语言具有许多优点,如易于学习、快速编写测试插件、可移植性好等。 NASL...

    3ds MAXScript脚本语言 完全学习手册

    ### 3ds MAXScript脚本语言完全学习手册 #### 一、引言 3ds MAXScript脚本语言作为3ds Max的重要组成部分,为用户提供了强大的编程能力,使其能够在3ds Max环境中实现高度自定义和自动化的工作流程。《3ds MAX...

    脚本语言介绍及代码

    ### 脚本语言介绍及代码 #### 定义与特性 脚本语言,又称动态语言或扩建语言,是一类编程语言,主要用于控制软件应用程序。这类语言的特点在于它们的源代码通常以纯文本形式(例如ASCII)存储,并在运行时进行解释...

    FLASH脚本语言详解.doc

    FLASH脚本语言详解 FLASH脚本语言是用于创建交互式FLASH动画和应用程序的脚本语言,具有强大的编程能力和灵活的应用性。 FLASH脚本语言可以用来控制FLASH电影的播放、交互、动画和其他效果。 FLASH脚本语言的主要...

    3ds MAXScript脚本语言完全学习手册电子版

    《3ds MAXScript脚本语言完全学习手册》是一本针对有程序基础或3D知识的读者的专业教程。3ds MAXScript是Autodesk 3ds Max软件内置的一种强大的脚本语言,它允许用户自定义工作流程,创建插件,以及自动化各种任务,...

    TASKING LSL 脚本语言介绍.pptx

    Tasking编译器链接脚本用法介绍,LSL脚本语言,用于给英飞凌系列的单片机软件开发的代码分配地址。

    脚本语言做的Game

    本文将深入探讨“脚本语言做的Game”这一主题,介绍脚本语言在游戏开发中的重要性、常见脚本语言以及它们如何使游戏变得有趣且实用。 首先,脚本语言是一种高级编程语言,其主要特点是简洁、易读,通常用于控制软件...

    在delphi中嵌入脚本语言

    在Delphi中嵌入脚本语言是一项常见的技术需求,它允许开发者通过脚本代码扩展应用程序的功能,而无需重新编译整个程序。这种技术通常应用于那些需要动态配置、自定义行为或者用户可编程接口的系统中。本文将深入探讨...

    第4章__客户端脚本语言_java客户端脚本语言_

    java客户端脚本语言。JavaScript是一种嵌入HTML的脚本语言,它不需要编译,在客户端可以通过浏览器解释执行。JavaScript具有跨平台、基于对象和事件驱动的特点,同时它也具有一定的安全性。

    Delphi支持多种脚本语言演示.rar

    总之,"Delphi支持多种脚本语言演示.rar"压缩包提供的工具,不仅体现了Delphi的开放性和适应性,还揭示了跨语言开发在现代软件工程中的重要性。通过这些工具,开发者可以更便捷地在Delphi环境中调试和管理Python、...

    Swift:一种分布式并行脚本语言

    根据给定文件信息,以下是对“Swift:一种分布式并行脚本语言”知识点的详细说明: 标题:“Swift:一种分布式并行脚本语言”表明了该语言的定位和主要特性,即它是一种专门用于编写分布式并行处理任务的脚本语言。...

    第四章 VBSCRIPT脚本语言简介

    【VBScript脚本语言简介】 VBScript(Visual Basic Script Edition)是一种轻量级的脚本语言,主要用于Web开发,特别是ASP(Active Server Pages)环境中。它不能独立运行,必须嵌入到HTML文档中,由浏览器或服务器...

    微软专家讲解脚本语言

    脚本语言是计算机编程的一种重要形式,尤其在微软生态系统中占据着重要地位。"微软专家讲解脚本语言"这个主题,意味着我们将深入探讨由微软最有价值的专家(MVP)传授的关于脚本的知识,这将对那些已经有一定编程...

    Python游戏脚本语言(精讲)

    Python游戏脚本语言精讲 Python 是一种优秀的游戏脚本语言,因其强大、易于嵌入、可与 C/C++ 代码无缝集成、拥有多种高级特性且可用于自动化生产过程。游戏开发中,使用脚本语言可以快速开发游戏行为,而不需要陷入...

    t32 practice脚本(.cmm) training

    T32 Practice脚本语言培训 T32 Practice脚本语言培训是Lauterbach GmbH提供的一种Script Language培训课程,旨在帮助用户掌握TRACE32脚本语言的编写和应用。该课程涵盖了Script Language的基础知识、脚本语言的使用...

Global site tag (gtag.js) - Google Analytics