主流脚本编程语言大比拼优缺点一目了然默默淡然

先简单说说Java,Java是企业应用当之无愧的统治者。但是,近几年随着大家对开发语言认识的转变,Java已经让越来越多的人感到不满,取而代之的是脚本语言的迅速崛起。一个例子是,Java7在最初的功能规划时,呼声最高的是“闭包”,而“闭包”恰恰是脚本语言最具特色的功能之一。在使用诸如Java,C之类的语言时,我们不得不面对各种复杂的数据类型、设计模式和大量看起来没用但又不能缺少的代码。而对脚本语言来说,这些问题都是天生就不存在的。现在,开发讲究敏捷,注重效率,对于一个企业来说,开发工作首先要考虑的就是成本,敏捷开发正是降低成本最有效的手段之一,而脚本语言,又是实现敏捷开发的一条可行之路。

有人说Java已经out了,但我并不这么觉得,我个人认为Java仍然是最好的跨平台方案。现在我们已经不能单纯把Java看做一门语言,它已经成为一个事实上的平台。构建在Java平台之上的优秀的Java替代产品,也已经得到大家的广泛支持和认可,如groovy、scala等等。我相信,Java仍然有它的生命力,而它的生命力可能也要得益于脚本语言。

说了半天废话,还是要回到我选择脚本语言的话题上。我的初衷很简单,我要找一个非Java平台的,C语言的替代品。为什么?第一,Java不是万能的,比如它做不了ICMPPing;第二,C语言学习曲线过长,C程序的部署难度较高;第三,上述的脚本语言的所有优势。

本着以上几个原则,我学了几个流行的脚本语言,他们是:Perl、Python、Ruby,当然后来我也学习Java平台上的脚本语言,如Jython(Python的Java实现)、JRuby(Ruby的java实现)、Groovy。下面我想就这几个脚本语言,来做一个简单的比较,希望大家在选择脚本语言时,能有更多的参考。

脚本语言的比较

脚本语言的比较,可能比较凌乱,但我想侧重以下几个方面:学习曲线,语言本身的特色、跨平台的能力、国际化的能力,以及它在应用领域的份额。

Unix/LinuxShell

首选还是要提一提Unix/LinuxShell(包括awk、sed),它也是脚本语言,并且可能是我们日常使用最多的。我个人感觉,shell更适合做流程化的系统管理工作,而对于逻辑较为复杂的应用级产品,shell的开发和维护难度都相当高。带有个人情感的说,shell的学习难度大于大多数主流脚本语言,这和它的语法特点,调试、运行环境等等都有关系。因此,日常流程化的系统管理工作,shell仍然是一个不错的工具,除此之外,相信大家还有更好的选择。

Python/Jython

Python最大的魅力之一,就是简单易学,一个新手可以短期内(有人说是十分钟,我认为几天是完全可能的)就写出高质量并且实用的程序,它甚至被称为非计算机专业人士学习编程的最好选择。Python的功能强大,标准库的丰富程度,估计连Java也望尘莫及。Python适合做系统管理,但这并不是说它不能做大型应用程序。Python应用的成功案例,已经数不胜数,尤其是在科学计算领域更是独树一帜。Python是一门优秀的面向对象语言,但更多的Python程序员,喜欢Python面向过程的部分。我个人感觉,Python的OO不如Ruby,因为不够彻底,但这也正是Python支持者更爱它的地方。

可惜的是,Python在企业应用领域没能有更大的突破,近几年更有被后起之秀Rails(Ruby的WEB框架)抛在身后的意思。但这并不说明Python在企业应用方面不成熟(豆瓣网是离我们最近的Python案例),如果有兴趣,大家可以了解Python社区最具人气的WEB框架Django,也可以去看看简单到让人难以置信的WEB框架webpy。Python在短短几年内就成为六大主流开发语言之一,绝对不是盖的!

Jython是Python的Java实现,它是IBMWebSphere服务器官方指定的管理语言。我选择jython是看重了jdbc访问数据库的便捷。但可惜的是,jython对中文支持非常不好,可能是python本身的复杂度较高,jython团队的活跃度也比较低,总之Jython要走的路还很漫长,至少我认为当前版本,还不具备投入生产开发的能力。

Ruby/JRuby

Ruby完全可以胜任系统管理的需要,当然,如果开发WEB程序,Rails更是不二的选择。

JRuby是Ruby的Java实现,也是最早被Sun官方接收的Java平台脚本语言(后来还有Jython)。JRuby与Ruby的兼容性非常高,团队也非常活跃。如果想在Java平台上使用脚本语言,除了Java原生的Groovy,我推荐JRuby,这也是我的选择。

Perl

坦白的说,我不太喜欢Perl,可能像大多数不喜欢Perl的人一样,Perl语法让人不太习惯,有人说Perl的语法丑陋,可能有些夸张,但这能说明一些问题。Perl社区至少也应该承认一点:Perl是一门比较难上手的语言。这并不是说,你短期内掌握不了Perl,而是你短期内写不出真正像样的东西。另外,Perl不是面向对象语言,当然,很多人并不看重这一点,但这并不是什么优点。

Perl适合做系统管理,我觉得它跟shell很像。在其他应用领域,尤其是internet方面,

Perl都有不俗的表现。Perl非常优秀,还是那句话,语言没有好坏,只有合适不合适。

Groovy

如果你正在为“热爱Java平台”和“厌恶Java语法”的事情纠结,Groovy可能就是最好的选择。Groovy可以说是Java平台的原生脚本语言,与Java完美结合,它本身不提供标准库,完全使用Java的API库。在Rails成功之后,Groovy社区也出现了Grails框架,用来抗衡Rails。Groovy本身也吸收了Ruby大量的经典语法,热爱Java的人,可以选择Groovy。

脚本语言的缺点和未来

目前大家公认的,脚本语言的主要缺陷还是性能问题,当然这可能取决于很多因素,问题是有多少情况下,性能问题才是致命的。从EJB的崩溃,Spring的兴起到Java遭受质疑,Rails取得成功,都说明,大家在面对不同规模的应用时,已经非常理智了。我相信能够真正服务于我们的技术,才能有好的前景,脚本语言的明天是无限光明的!

THE END
1.八大主流编程语言优势和缺点解析且代码在用户电脑上运行,容易被别省用心的坏大恶意利用 8.Objective-C 优势 开发目标紧紧围绕与Cocoa编程框架的写作需求, 能够访问苹果的开发库动态程度更高适用范围有限 劣势 拥有自己独特的编程思路,与其他编程语言思路差别较大 这就是这些语言的优点和缺点。https://blog.csdn.net/WSH2012ffff/article/details/141129644
2.编程语言类型和优缺点是什么?Worktile社区缺点:低级语言复杂,编写和调试困难,代码可读性差,可移植性差。 高级语言: 优点:高级语言更加易读、易写、易维护,提供了丰富的库和工具,加快了开发速度。可移植性强,适用于各种应用领域。 缺点:相对低级语言,高级语言的性能较低,对计算机资源的利用不如低级语言高效。 https://worktile.com/kb/ask/2421011.html
3.14种常见编程语言的优缺点及应用范围概述:C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛;C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。1983年,贝尔实验室 在C语言的基础上推出。 优点:多用途,支持多种程序设计风格,还有大量的库。 缺点:复杂性,非常难于编写,安全性也无法保证 https://www.51cto.com/article/606046.html
4.各种编程语言的应用各种编程语言的应用领域3.了解C语言,也就了解了关于编程语言的一切,几乎所有现代编程语言都脱胎于C,因此了解C语言能够帮助大家快速掌握其它各类编程语言。缺点: 1.运行时C语言不具备运行时检查机制。2Java 难度:★★★ 人气:★★★ Java的热度一直居高不下,长期霸占各类编程语言排https://cloud.tencent.com/developer/information/%E5%90%84%E7%A7%8D%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E7%9A%84%E5%BA%94%E7%94%A8
5.机器人热门编程语言及优缺点分析思岚科技这个问题困扰了很多新手学者,但遗憾的是,这是一个没有准确答案的问题,你问不同的人会得到不同的答案,对于机器人学者来说建立“编程思维“才是最关键的,而不是用一种特定语言去衡量,在很多方面,学习哪种机器人编程语言并不是最重要的,重要的是通过编程思维来不断提升自己的技能。https://www.slamtec.com/cn/News/Detail/169
6.大专计算机职业规划书范文(通用13篇)专业技能磨练期大三、大四学好专业知识,考计算机等级证、网络工程师。 进入职场的前五年——中期目标的计划 时间:(20xx年6月—20xx年8月,22~27岁)时间内容20xx年8月~20xx年8月从思想上,由学生转型为独立的职业人,这是进入我进入职场的首要任务·个人想像与社会、公司实际情况可能存在落差,要调整心态,正确对待·https://www.diyifanwen.com/fanwen/wgerenxiezuo/14014396.html
7.关于计算机应用技术职业生涯规划书范文(精选20篇)确立职业目标的同时,需要对该职业进行深入的了解,这包括该职业的优缺点、职业的需要及职业的未来发展方向等因素。 第二部分:个人技能 个人技能是成功在计算机行业发展的关键因素之一。这里列举几个必备的计算机技能: 1、熟悉常见的计算机编程语言及其应用。 https://www.yjbys.com/qiuzhizhinan/show-596687.html
8.编程语言对比与选型语言是一种通用的编程语言,它广泛用于系统软件开发、嵌入式软件开发、游戏开发等领域。由于其高效的性能和对硬件的直接控制能力,C语言在对性能要求较高的场景中表现突出。例如,操作系统、驱动程序以及嵌入式系统等领域。由于C语言具有较高的灵活性和可移植性,它还被广泛应用于跨平台开发中。 https://www.jianshu.com/p/ad8f8b5a6270
9.7种热门编程语言优缺点对比选择适合自己的编程语言是一门学问,下面我们来详细分析一下目前最受欢迎的7种编程语言,帮助你做出更明智的选择。Java Java是目前最受欢迎的编程语言之一,广泛应用于安卓开发、操作系统、视频游戏和桌面GUI等领域。 优点: 需求旺盛:Java开发岗位需求量极大,是世界上使用最广泛的编程语言之一。 https://mbd.baidu.com/newspage/data/dtlandingsuper?nid=dt_4368456274606417454
10.Copilot插件:开启AI编程新篇章Copilot插件支持多种主流编程语言和框架,如Python、JavaScript、React等。这意味着无论你使用哪种编程语言或框架,Copilot都能为你提供强大的代码补全和提示功能。这种跨语言支持使得Copilot成为了一个通用的编程助手,适用于各种开发场景和需求。 五、Copilot插件的优缺点分析 https://developer.aliyun.com/article/1420209
11.C语言和Python的区别到底有多大?从基础语法到应用嘲全面解析这C语言和Python作为计算机科学领域中的两大经典编程语言,各自有着不同的发展历史和应用场景。C语言诞生于1970年代,由丹尼斯·里奇(Dennis Ritchie)开发,最初是为了在UNIX操作系统上进行系统编程而设计的。由于其简洁高效、接近硬件的特性,C语言很快成为了许多操作系统和嵌入式系统开发的首选语言,并且对后来的许多语言(如https://www.zhishiku.com/post/180394.html
12.《c语言基础入门》课件.pptC语言基础概述1发展历程介绍C语言的发展历程,从B语言到C语言的发展过程,让人们全面了解C语言的出现和发展。2语法特点探究C语言的语法特点,从函数、变量、运算符、控制语句等方面进行详细讲解,让人们深入了解C语言的语法特性。3应用领域介绍C语言在各个领域中的应用情况,从系统编程到嵌入式开发,帮助人们了解C语言在不https://www.renrendoc.com/paper/298378435.html
13.常见的编程语言.pptx常见的编程语言.pptx,常见的编程语言-第13章第12章第11章第一章第二章第三章第四章第五章第六章第七章第八章第九章第十章C语言GoNimJuliaJavaPHPSwiftGoRustRScalaRustC++1C语言030102C语言C语言是一种通用的编程语言,由Dennis Ritchie于1972年发明它是一种低级语言,主要https://max.book118.com/html/2024/0311/5102203232011121.shtm
14.python编程语言知识关系运算Python编程是一种高级编程语言,广泛应用于各个领域。在Python中,关系运算是一种常见的操作,用于比较两个值之间的关系。 Python编程关系运算的基本概念 在Python中,关系运算用于比较两个值之间的关系,返回一个布尔值(True或False)。常见的关系运算符包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)https://www.bwie.com/jsgh/53.html
15.App前端开发跨平台框架比较:ReactNativeFlutterXamarin等移动应用开发领域的跨平台框架正在不断演进,为开发者提供更多选择。在本文中,我们将比较几个流行的跨平台框架:React Native、Flutter 和 Xamarin 等。讨论它们的优缺点、适用场景以及开发体验。 第一部分 React Native: 优缺点、适用场景和开发体验 React Native 是一款由 Facebook 开发的跨平台移动应用框架,允许开发https://xie.infoq.cn/article/4f2ab8e393f3e55618207526a
16.适合人工智能的九大编程语言人工智能这一术语起源于20世纪中叶,尽管有了多年的发展,但在过去的十年才被开发人员将人工智能技术用在应用程序的开发中。 编程语言是人工智能开发项目的支柱,因为它们可以帮助软件开发人员创建创新的人工智能解决方案,而无需学习专业人士用来相互交流的高度专业化的语言。 https://nic.hnuu.edu.cn/10043/2021/0024668.html
17.Python成为程序员最想拥有的语言!虽说编程语言难分好坏,各有千秋。 但作为最想被拥有的语言,Python到底有什么魔力? 一、对新手及其友好 Python vs 其他语言 C语言:尽管C语言是个生命力强大的编程语言,但不得不说,C语言在内存管理方面存在缺陷,如果指针应用不当,会带来严重错误。 C++:C++在内存管理上有着较大的改进,增加了智能指针,但对于编程新http://www.situedu.com/news/uid/2112.html
18.OpenAI与AIGC:改变人类生产范式,通往“万物的摩尔定律”对应OpenAI 大模型发布的顺序,模型应用层相对最成熟的是文本生成领域,其次是图片生成领域,其他领域由于还未出现统治级的大模型相对落后。 文本领域天然应用场景丰富,且 GPT-3 开放 api 很久,细分赛道很多。大致可以根据生成内容不同分为两类:机器编程语言生成、人类自然语言生成。前者主要有代码和软件行为的生成等,后https://new.qq.com/rain/a/20230217A012RS00
19.python和c++学哪个好?怎么选择?Python和C++是两种不同的编程语言,各自有其优点和适用场景。Python是一种解释型的高级编程语言,它具有https://www.yutu.cn/question/tiwen_182082.html
20.?物联网应用技术专业2023级人才培养方案规格ZS2:掌握必备的专业基础知识、基本原理及方法;掌握传感器技术、自动识别技术、无线传感网技术等物联网技术基础理论和基本技能,掌握单片机、嵌入式技术相关知识,掌握物联网应用软件开发技术和方法等。 技术技能规格:掌握胜任服务面向专业领域实际工作的专业技术,具备胜任服务面向专业领域重要岗位的高水平专业技能,具有解决https://www.cswu.cn/dsjyxxcy/2023/0619/c3737a71175/page.htm