各种编程语言的比较

xiaoxiyu 2011-07-23 10:51:14
1 动态语言之3P(python,php,perl)

越来越发现喜欢喜欢动态语言,不用编译,直接执行。三者之间,最早接触的是 PHP,那时只是为了做INC的考勤系统,那时只也就认为PHP就是一网站的,只识冰山一角,后来发现PHP还其还具有普通脚本如python,perl 之类用作命令行编程的功能,只需要一个PHP的解释器。后来接触了一点python,perl. python号称是最简单的一种脚本,最容易学的,而与此相反,perl据称是相对比较晦涩难学的。

作一个客观公正的比较,有时候真的比较难以取舍。相对于php跟python,perl是长辈了,三者之间最老的一种脚本,跟unix有着千丝万缕的关系,它于1987年(我勒个去跟我一年同一年诞生了)12月18日发表。Perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性。perl的设计的最初衷是,90%的文本处理,10%的其它功能。熟悉shell脚本的人会发现perl 的语法基本就来源于shell与c。本来最开始我对SHELL就没啥好感的,尤其是它变量中那引入的那些各种$,@符号,很让人讨厌呢。总体上,会有这样一种感觉,SHELL脚本是很难读的,反正就是郁闷。不过在linux环境下,shell确有着得天独厚的优势,shell管理linux系统那是必须的,便捷的。整体上看在linux平台下如果会sehll+sed+awk的话,基本上可以应付一般的任务了。不过还是有他的不足吧(啥不足我也不知道反正就促成了perl的诞生),从功能上看shell+sed+awk可以实现的,perl同样可以办到。perl最初就是被设计为用来进行文本处理的,继承了shell的很多特点,更加放肆更加灵活了,神马$,@这类型的符号被发挥得淋漓尽致。语法习惯上看,perl结合了C的语法特点,比如,使用;号了,在顺序分支循环的结构方面的,跟C很类似了,不过更加灵活多变,所以说,perl就是shell跟C所产生的儿子。有关语法和结构的灵活,很多人评论 perl是丑陋的,这点不得不承认。不过也同样因为这个原因,如果真正对perl很熟悉的话,会觉得perl还是很不错的。

python起源于1989年,是perl的小弟弟,比起perl来,python就设计得相对比较单了,号称是两个时候就可以入门。语法上看,python确实简单了,便量定义没有那么多花样了,顺序分支循环语句就那几种,相对固定。如果是perl是灵活的,那么python则是相对规律的。不过个人觉得 python最大的特点就是颠覆了以;号结束一行大括号分块的习惯,靠强制缩进来分块。从习惯上看,任何一个高级语言如C或者java的人,短时间都会有点不适应吧。不过也正是因为python的如此设计,被业界认为python是优雅的。因为它简化了灵活性,让它更加规矩更加听话更加规范了,所以比较适合大型项目,适合团队合作。如果说python是团队中人手必备的军刀的话,那perl,就如暗器如飞刀,比较适合个人选择使用,用得好的便如小李飞刀例不虚发。比如你要用个正则,或者作一些系统操作的话,在python里面你得入模块,再调用模块的方法,而在perl里面,哪管这么多,perl直接内嵌了很多方法,直接用就行了,这点跟shell有点像,不用导入什么模块,你可以在perl里写如`date`之类的linux系统命令,很方便。perl 最强大的地方也就是perl的正则表达式,这可以说是perl的精华所在,在文本处理中,很多情况下需要用到大量的正则表达式,这也就是为什么说perl 最初的设计就是拿来做文本处理的。

再后来,三弟出现了,那就是php。php一出身就被定向了,主要任务就是取得perl利用CGI作网站的功能,所以PHP最擅长的就是web 编程,不过同样具有他俩哥哥的脚本功能。其实本人是比较喜欢PHP的语法,比起大哥Perl复杂的变量引用方式,PHP只保留了一种,那就是$,无论是普通变量还是数组,都用这个去标志,而且,简化了很多语法,更C更加接近,把遗传基因中shell的部分去掉了。比起二哥python,选择了走大众化编程习惯,还是用';'和大括号风格,并且PHP也是内置了很多函数,不用引入模块直接用就行了,另一个在设计结构方面的变化是,PHP里面用数组取代了 python,perl中元组,字典,列表等数据结构,所有的东西都交给数组去管理了。

总的来说,个人认为,perl就是一个强化版的 shell,引入了较多的C元素,比较适合一些个人任务上事情,不适一个团队拿来做大型项目。python是个万金油,啥都行,不过它比较规矩,对于单人任务或者追求灵活快捷的人不是一个好选择,PHP呢,目前流行的还是主要用来web开发吧。

语言没有优劣,主要是一个人的习惯问题,习惯了,啥都好。不过各自有各自所擅长的领域这也是事实,具体选择什么,看自己喜好了,最好是能够精通一个,别像我一样,啥都会一点,但啥都不精通,我勒个杯具,这是绝对的大忌。本来还想写点C/C++与java之间的故事的,留待下次吧。
...全文
642 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaja 2011-09-21
  • 打赏
  • 举报
回复
定楼主学习了
aini7758521 2011-09-20
  • 打赏
  • 举报
回复
谢谢cobol
foolyb 2011-09-20
  • 打赏
  • 举报
回复
看出来楼主对这几种脚本语言还是有一定的研究的,写的挺不错。

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧