站长工具,就用查一把!
收录查询  关键词排名  Alexa排名  PR检测  友情检测  IP反查  WHOIS查询   更多查询 
  收藏  最近查询 查一把
信息分类 首页 » 资讯信息

好站推荐

IT新闻

  业界猜想

  名人名企

建站推广

  站长创业

  运营推广

设计编程

  美工设计

  开发编程

网络开发初学者推荐 PHP、Python 还是 Ruby ?
信息来源:查一把 发布时间:2012/2/9
单纯比较语言实现的优劣可能不足以是选择某种语言的全部原因,还需要考虑一些非技术或者非全技术的原因,例如
  1. 假如现在学习A语言,那么对学习者来说,是否能在未来几个月或者更长的时间内找到应用场景,在具体的项目场景中学习和使用一种语言对于学习来说是很有帮助的,因为使用是学习中最重要的部分;假如只是学习却没有实际应用的场景,那么暂时不深入学习都可以,了解一些概念就可以了,等到需要的时候再学语言本身也不迟;这样更多的时间可以去看计算机科学领域比较基础,知识相对稳定的部分,比如系统结构与设计,设计模式,网络协议,数据库理论和实践,程序设计的理念和实践方面的书
  2. 考虑学习语言A后对求职本身的帮助,学习的最终目的不是学习本身,而是要应用,不仅仅是自娱自乐地应用(当然不是说这不可以),而是在实际的职业环境下去应用,并且以此获得回报;
  3. 语言的生态环境,是否存在高质量社区,现存的文档对你自己来说是否足够友好,身边是否有很多使用某种语言的朋友或者同事,对于学习来说,这些都是整个过程中的拐杖,特别说稍微深入高级的概念的时候;
  4. 考虑语言存在的历史和上下文,所有的语言都有问题,比如上面的知友提到的PHP代码可能产生的可维护性问题,ruby代码的AR可能产生的学习成本和性能上的问题,但这些问题是否在你自己的应用环境下存在,如果存在是否可控,假如可控那么对你来说就不是问题;忽视上下文来讨论语言实现本身是不公正的;每种语言的设计者可能有截然不同的技术价值观,你会发现PHP的非OO部分和UNIX的设计哲学很契合,因为它产生与那一种哲学被普遍认知和接受的年代;ruby的语言设计我自己的理解是因为它产生与“敏捷实践”被普遍认知和接受的年代;选择语言的时候重要的不是去对他下什么判断,而是去接受他,了解他,就像选择朋友一样;
  5. 你自己的偏好,你身边可以有一群人告诉你你应该学习ruby而不学习php,或者学习php而不学习ruby,但最终的判断在学习者自己,判断的做出可能需要适当的作全面了解比较过后才能产生,或者也不一定,有些朋友就是看到python或者php或者ruby的某一个非常漂亮有趣的部分而爱上她的,比如php的magic methods, built in hooks等等,ruby优雅的iteration语法等等,我身边有朋友无论如何我跟他怎么说ruby怎么好,他都能用务实中肯的意见反驳我为什么这个这个对他没有实际意义,为什么这个这个其实php的处理更加自然,我认为这样才是学习语言正常的状态,那就是你知道她有这些缺陷,但你还是爱“她” :)),而不是走马观花,见异思迁:))
     
编程语言非常重要,不要认为他们都图灵等价,用起来都一样。实际上,好的语言,带给你的东西是超乎想像的。

下面是一些看法,供参考。

1,程序员的时间远比机器的时间宝贵:选择开发效率最高的语言吧,不要在乎运行性能,如果你开发不出东西,那么跑得多快也没用。

2,优雅的抽象胜于简单的堆砌: 这意味着你的代码是最简洁而又充满设计感的,面向对象,容易的闭包,一切都是表达式等等,而最好的抽象是语言本身能够分层,既能够书写语言的语言,比如DSL能力强弱是个指标。

3,才华横溢的社区胜过有难度的招聘:这种语言一定要拥有一个活跃且才华横溢的社区,只要使用她的人,就有一种自豪感和精英意识,在社区里的每个人都自认为比别人强。即使,你不那么容易招聘到程序员,但我们不都知道,一个有才华的程序员胜过100个平庸之辈嘛?选用这种语言,能保证团队里一起编码的每一个人,都是高手。

4,也是最重要的,乐趣胜过一切: 灵活,好玩,永远有新发现的魔术般的语言,只有你想不到的,没有你做不到的,对一个真正的hacker来说,这是选择语言唯一的理由,这也是perl为什么能够长期存活的原因,因为她是hacker为hacker创作的。

如果能看完这些观点,相信你能猜出我的选择了:)是的,ruby是主流语言中我认为最出色的,最高的开发效率,最优雅简洁的抽象能力,最有才的社区(github为中心),和最大的乐趣。
我认为选择语言还得具体看你的应用场景,不过说大了,这三种语言其实在web方面的服务器端脚本常用的应用脚本,所以对于做web,这三种语言都是可以,比如说ruby的rails框架确实是称得上是快速开发的典范,但是ruby的语法过于灵活,有些时候对同一个处理会有很多种不同的写法,php是老牌的网页脚本语言,相对其他两门而言比较成熟,对于python来说,由于自身的简约设计,可能应用的方面的更多,几乎是可以涉及到IT的各个方面,web只是它其中一个方面,而且有比较成功的杀手级应用,服务器的各种原来用shell或者perl的脚本,科学计算,游戏的脚本,甚至在桌面客户端上也能看到python的佳作,如UliPad,对于初学者来说python是个不错的选择,在这三者中它的语法是最简洁和清晰的,适合初学者学习
选择一门语言要看这个语言社区的气质,以及你想用他做什么东西。

最近一直在感慨:Mac上可以运行那么多种语言,有很多人用git。但却只有Ruby的用户开发出了homebrew这样牛逼的包管理系统,善用了github的诸多特性,真正的把每一个用户都变成了潜在的repo贡献者。我相信这绝对不是巧合。如果同样的条件摆在面前,你做出了一个全新的东西而别人没有,说明了你的创造力比别人要高

作为Python用户,觉得Ruby语法的优劣不太重要。但是从外部看Ruby社区近些年持续的向外输出一些从技术到开发上的理念,不断的有大大小小的很酷的项目从Ruby社区中诞生的出来。使得我觉得Ruby社区是一个很有创新气质的社区。因此如果你学编程是想做出一个很酷的东西,那么我强烈建议你直接学习Ruby。
Web开发, 自然PHP, PHP在Web开发中的占用率是第一位的. 我说第一位的意思是, 你可以找到很多共同兴趣者, 在遇到问题的时候,会有更多的人来回答你, 当然, 最重要的, PHP是C系, 亲Linux的, 如果你以后想往底层发展, 那么PHP也是一个很好的过渡.
python:  语法整齐,web框架多且都比较有个性,第三方库多,开发者人数可观。

ruby:    Rails有很多killer级的特性帮助高效的web开发和管理,gems做包管理很方便,代码也比较易读,高手也不少。
php:    接触不多,个人感觉高手和新手使用的差别很大,会的人多。

选那个都不错。当初我就是因为python的logo比较可爱才先学python的..

经验分享:
最初从python学起的,接着学习了html,css和http的一点基础知识,然后就尝试了几个web框架,会开发简单web应用了。
之后由于工作转向Rails,感觉转移成本不高,习惯后也挺喜欢Rails的设计理念,整个Rails生态环境也很完善了,所以非要推荐一个的话我直接推荐ruby(rails)吧。
我觉得还是直接学Ruby比较好。
1.本来rails框架就自带了server,WEBrick。看着Log做开发效率非常高。
2.如果要部署的话,用passenger也是绝对方便啊。
3.Views层的模板系统,ERB应该比Python的各种要来得美,而且更加简单。之前用过Django的,觉得太重了。
4.Rails可以让你不断的惊讶程序可以这样写的啊,我第一次看到有7.days.ago的时候惊掉了。
5.Rails强调一种DSL,一来符合人们的语言习惯、二来我觉得是一种编程语言的颠覆,我们并不是在用某个特定的语言(比如Ruby)来实现一个功能(就如同是用C还是用Java来写一个编译器),而是我可以在这些语言的基础上定义一种新的语言(类似于lex,yacc这样的词法语法生成器)。看看routes.rb的设置吧,能有多么惊讶,这是程序么,简直就是诗。美不只是在于内容,同样在于形式。

Ruby或者说Rails的缺点或许就是学习的曲线太陡,我之前有过MVC的经验,上手RoR还是花了三周的时间,或许也是自己接受能力不强吧,但更确切的问题应该在于Rails的惯用法太多:当然,我在用ActiveRecord拿数据的时候,可以写find_by_sql("blablabla"),但是细查Rails的文档,他是提供类似于Joins.Group.Select等等的方法的,姑且不论效率是不是真的会快点,少写一点sql在.rb的文件里面不是会更美一些么。再到后来,偶然又发现有metawhere这种东西,是不是又要忍痛抛弃既往学到的那一堆works but not elegant的东西,义无反顾的投身到metawhere的学习中捏。
当然,如果不追求完美,上手也没有这么恐怖。
转载请注明出处:站长工具 信息来源:http://www.chayiba.com/Content/304
网友点评