php,python,ruby,perl的优缺点?

Python017

php,python,ruby,perl的优缺点?,第1张

perl基本已经被淘汰,在各方面几乎已经没有优势,虽然说还正在开发perl6啊什么的,不过基本上大势已去。虽然在部分场合还有应用,不过大部分都只是因为历史遗留问题而已,也就是说一些老软件用这个,部分地方还因为各种原因没去替换这些老软件而已。

从web的角度来看,这四个语言都做过web开发,不过后来php代替了perl。而现在作为python的django构架和ruby的Ruby On Rails构架正在逐渐代替php。因为php也有其天生的缺憾,例如对于模板分离式编程不是天生的支持导致的。所谓模板分离也就是由网页制作和美工人员写纯网页,又程序员写纯程序,然后二者结合。在这个模式之前就是典型的php默认,代码和页面都是一个php文件并未分离。

不过php在现在还是有其顽强的生命力的,这也是有其历史遗留原因的,毕竟太多大型网站、大型项目都使用php,一时之间改变还很难。

排除web构架以外,python和ruby都差不多的,其对各种库的支持也都相似。总体来说现在python的普及率要高一点,可能因为一种先入为主的优势吧。高就高在几乎所有linux发行版,OSX系统都自带python,但是ruby则不然。

python在某些非常轻量级的桌面任务上可能也有优势,因为自带一个gui库,tinkter,不过这一点优势应该很小,因为毕竟太轻量级了,就是说太简单了,用处一般。

从语法的角度来说,未来肯定还是python、ruby这种开发更简单的语言的天下,php还保留着c/c++遗留下来的各种语法诟病,要是只论纯开发速度肯定不如python、ruby的强,这里主要说的web,因为php开发桌面程序那还是随便玩玩的,虽然有吧。

如果可以的话 ruby可以学下 perl已经很长时间了 ruby是站在他肩膀上的 python虽然学习人数比ruby多 但是ruby因为Jruby的出现 可以做到在JAVA里写入ruby 或者ruby去调用JAVA库这个对于学习JAVA的人去使用ruby有极大优势

虽然ruby目前在国内大部分是应用在 web上 但是ruby毕竟是脚本语言 所以可以用的地方还是很多的 只是更多人更喜欢固有的知识 以防新的知识做出来的东西导致原来的东西不能使用了

1. asp vs jsp:

asp运行在windows下的.net平台下,jsp在java平台下(可以是windows或linux或mac等等带的java平台),两者都只能做web开发的表现层(就是只是用来写网页)。两者的比较可以看作两种平台的比较(.net和java):.net平台支持几乎所有的语言(你可以用vb,vc, c#等等语言写程序)

2. python,ruby和perl属于动态语言。和传统的语言(c,c++,java,c#)相比,最大的区别在于编译器不强制要求类型的匹配,由你自己去匹配,所以程序可以写的很灵活,不用一步步定义变量,直接用就可以。传统语言数百行的程序,动态语言可能几十行就足够了,所以适合快速开发。另外程序可以在各种操作系统下运行。

3. perl vs ruby和python:

perl比ruby或者python都要古老些。perl曾经是最流行的脚本语言,曾经也被认为是黑客必备。可以只用几行就完成复杂数据的处理,而且速度不必同样的c慢许多,内置的对正则表达式和数据结构的支持更是令人惊叹。 以前许多网站都用perl写的。即使现在,国外有些较老的网站也有部分代码还是perl。perl最强大之处在于它有数不清的库支持,perl可是说有着世界上最大的社区,你想做什么事情都找得到相应的库。

但是perl的缺点也很明显:perl的程序实在是太灵活了,一个问题通常有非常多的解决方案,正如一句话有非常多的说法一样(谁让perl的发明者同时是个语言学家呢,最人性化的语言也最灵活),而且perl的语法对于不熟悉它的人完全是天书(难读)

ruby和python都是作为perl的替代者出现的。最新的perl加入了对面向对象的支持(但是我觉得和c++一样不怎么纯),ruby和python对面向对象的支持更好(甚至要好于java)。

4. ruby vs python:

毫无疑问这是目前java程序员中最流行的语言,很多人宣称java太僵化了,传统语言太僵化了,未来的主流属于动态语言。而这个未来,就是指ruby或者python。对于web开发者,快速开发更是非常有吸引力。

抛开语法的差异,两者不分伯仲。由于ruby由日本人发明,过去文档多是日文,所以python前些年更强些,甚至被google定为公司内只准使用的4种程序设计语言之一。但现在ruby的英文资料也很多,而且最近推出的ruby on rails让web开发速度非常快(尤其对于java 的web开发),使得这两年ruby最流行。但是客观的说,两者几乎没什么太大差别,ruby对面向对象的支持更纯一些,python的类库更丰富一些(因为python历史稍长些)

关于ide:

asp:windows的东西从来不缺好ide(反过来说,没有ide你简直不能编任何windows程序),当然是vs stuodio了

jsp:myeclipse或idea不错,当然比windows的工具稍差一些。

ruby和python:开源的语言,ide都不是最好,只是简单的语法高亮,调试和运行,以及错误提示和帮助。但是可选择的范围非常多,而且都不大,而且一直在变好。所以多关注新版。ruby方面可以用netbeans的ruby插件或eclipse的ruby插件,python可以用eclipse的pydev插件。

perl的ide可以用eclipse的epic插件,基本的语法高亮,动态代码完成,自动编译,错误自动提示等。

当然如果你只是编小型的程序(例如少于10个文件),用普通的带语法高亮的编辑器就可以了(例如vim,emacs,以及linux平台下多如牛毛的ide)