`
robbin
  • 浏览: 4826003 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
377a9ecd-1ea1-34ac-9530-9daa53bb2a7b
robbin谈管理
浏览量:137471
社区版块
存档分类
最新评论

我的PHP,Python和Ruby之路

    博客分类:
  • Tech
阅读更多
因为看到一篇讨论PHP,Python和Ruby的编程语言讨论贴,就说说我的PHP,Python和Ruby之路吧:

我2000-2001年用PHP用了两年,那还是第一次互联网泡沫时期,到2001年后期,Servlet/JSP流行,然后我就发现:你说用PHP写的东西,都会被人鄙视。当时我们其实也用Java了,只不过用Java写后端的消息队列。

2001年后期泡沫破灭,我跑去做企业应用,就主要写Java写了很多年,中间2003年开始做JavaEye网站,到2006年用Rails重写JavaEye之前的3年,用的是phpbb搭建的,所以PHP也断断续续一直用到了2006年。

以我2000-2006年总共六年多的使用体验来说,我对PHP真的是深恶痛绝之,但凡做一个稍微大一点的系统,代码就很容易失控。2002年以后,我曾经一度以为PHP这个东西快死掉了,那个时候大家都言必称J2EE和.net了。结果Web2.0之风袭来,大家又发现J2EE太重,PHP又死灰复燃了,我其实很诧异现在PHP居然又变得如此流行。从技术上来讲,PHP是个很烂的东西,但它门槛低,易部署,普及率高,好找人,实在是互联网时代的VB,打不死的小强。

Python我大概是04-05年迷恋了一年左右,研究过Zope,plone,后来还看过wxPython,曾经一度想用Python写JavaEye网站。记得04年Rails出来之后,还很长一段时间被我深深鄙视过。

但后来我去杭州拜访potian,被他的Rails实践经验说服了,之后我和他以及其他人在JavaEye上面有一个很长的讨论贴,讨论Rails的运行机制,最后我又被他说服了。然后我还不死心,研究和比较了Rails和Django,不得不死心了,后来还曾经几次想用Python,每次都死心的很彻底,现在就彻底不考虑Python了。

就算你不用Rails,作为一个程序员,我也强烈建议你学习一下Ruby,仅仅因为可以开拓你的思维就很值得了。因为Ruby的语法很强大很好玩,是现代语言版本的smalltalk,算是很原汁原味的面向对象编程语言,你学习了Ruby以后,你就会发现,原来Java/C++所谓的面向对象就是TMD的山寨版本的面向对象,原来面向对象还可以这样玩阿。

PHP用一句话来总结就是: quick and dirty
Python用一句话来总结就是:quick and clean, but not convenient for web development
Ruby用一句话来总结就是:code for fun and quick for web

补充一下吧:为什么我当初用Rails来写JavaEye网站:

在选择用什么工具开发JavaEye网站的时候,唯一的指导标准就是:用最少的人力,最少的时间开发JavaEye网站,并且后期维护和持续升级,乃至重写的时候,代价最小。

首先排除Java和C#,代码太多太麻烦;
其次排除PHP,项目一大,代码一多,代码的管理很成问题,PHP缺乏一个起码的包管理机制;

当时重点考察Python和Ruby,因为有豆瓣的先例,开始很倾向于Python,而且我那个时候对Python比较熟悉,还曾经痴迷过一段时间的wxPython,对Zope和plone也有一些研究。

但后来比较了Rails和Django之后,就倾向于Rails了,差距实在太大了,而且当时Django很不成熟,在很早期的版本。其实即便现在Django和Rails的差距也没有缩小过。

但让我最终下定决心的是potian在05年就大规模使用Rails的实际工程经验,我曾经去杭州就我比较质疑的问题当面请教过他,和他谈过以后,就决定用Rails了。

应该说,我当初用Rails的决定很英明!

现在JavaEye网站正在招聘Ruby程序员,请有志于Ruby领域的程序员和我联系。
51
30
分享到:
评论
31 楼 cxh116 2011-03-25  
DJANGO 简单,但灵活性欠佳.
  当然如果很了解DJANGO,就不存在灵活性问题
30 楼 zhaolei415 2011-03-24  
robbin连续几篇文章都在说ruby如何好,让大家心动去javaeye的召唤啊,哈哈
29 楼 orlaa 2011-03-24  
ricks_wu 写道
传闻facebook以前用ruby,因为不稳定后来又用回python,是真的不

facebook用php,ruby && python都不关它的事
28 楼 ricks_wu 2011-03-24  
传闻facebook以前用ruby,因为不稳定后来又用回python,是真的不
27 楼 xieye 2011-03-24  
robbin 写道

项目一大,代码一多,代码的管理很成问题,PHP缺乏一个起码的包管理机制;


我承认看不懂,新的php版本有包管理机制,不过就算没有也没觉得有什么难管理的,可以考虑按pear或zend的类命名机制

简单而强大,这是我对php的感觉。

修改类似phpbb这样的框架,然后构建网站,我从来没做过这样的事,大概1个多月我就做了一个论坛,自己开发就可以了。
26 楼 sw1982 2011-03-24  
对于真正敲代码为生的人,语言真的决定了自己发展的线路。
25 楼 matyhtf 2011-03-23  
语言不是最重要的,关键是架构。
24 楼 bardo 2011-03-23  
看来,我也要被说服RUBY了。不过,PHP有没有包,事实上仍是就用架构的问题。好的架构师,始终不会感到代码管理是困难的。
23 楼 happy7259 2011-03-22  
终于看见robbin的新文章了。好久都没写了吧 拜读下
22 楼 飞雪无情 2011-03-22  
其实喜欢着语言,学习那语言,这个优雅,那个笨重,都是“虚”的。我们可以以个人兴趣去研究这些,但是这些并不是衡量一门语言好坏或者重要标准。。
一门好的语言在与它是否“普通”,是否被大多数人所知道!!!站在更高的角度看,也许这门语言有这样或者那样的缺陷,比如说“没有完全面向对象”,“不优雅”,“笨重”等等,但是它流行了,大家都知道,这就是最好的证明。。。。
21 楼 shaka 2011-03-22  
肉饼很明显在给Ruby做广告 
20 楼 java-007 2011-03-22  
我是grails的坚定支持者。用了两年多了,借鉴ror的思想,以java为基础,真的不错。
19 楼 fantasybei 2011-03-22  
其实你们都没有看到重点,重点是最后一句
"现在JavaEye网站正在招聘Ruby程序员,请有志于Ruby领域的程序员和我联系。"
18 楼 peterwei 2011-03-21  
ruby听起来很美,但在国内的web应用里还不是很流行吧。看了语言的排行,python有超过ruby.暂时没时间折腾ruby。java体系要掌握的东西还有很多。
17 楼 小龟爬爬 2011-03-21  
在我的开发中,接触过 php、asp.net、java、rails,感觉php的东西的确是如robbin说的那样,管理起来很吃力;asp.net又局限在windows平台下,windows 服务器的权限设置又很容易出问题;java 在做互联网项目的时候,又有点太庞大了;rails作为流行的框架,能很好的解决互联网的快速开发的问题。
16 楼 dongcb678 2011-03-21  
看的那个纠结哟...
15 楼 liuqiang 2011-03-21  
ruby人难招
14 楼 lkj107 2011-03-21  
纠结中,想自己写个网站玩玩,但是没有接触过,php,python,ruby?
13 楼 jkfzero 2011-03-21  
围观一楼的发言,好有喜感。
我有和10楼第二问一样的忧虑。
另外http://www.quora.com/Why-did-Quora-choose-Python-for-its-development和http://www.quora.com/Do-Facebook-engineers-enjoy-programming-in-PHP是不是可以做一个参考呢。
12 楼 mysoko 2011-03-21  
现阶段的我有些情况和robbin情况一样,用最少的成本在网站上。
但是我用java(因为就熟悉它,没有其他理由),用appfuse开发,在我接触java中认为最好的web开发方式就数appfuse了。
个人非常喜欢互联网应用,很多东西都想去折腾,后来发现如果用java去实现这些,你会依赖很多东西,就像整合appfuse一样,需要较多成本学好每一个技术点才能很好的使用。而且在java世界很少有分享互联网产品设计方案的。

到处都是动态语言的开源实现,迫于无奈简单折腾了php,rails后把相应的插件代码转换为java代码,一阶段下来简直不敢相信自己能用java来开发web产品 ,所有的一切太笨重了,要想使用它,除非你有一整个集团军。

由于成本有限,不能把网站重写,不过现在开始整合其他语言进入网站,有些东西真没必要是java。

而且发现即使把学其他语言的时间+开发的时间,也远比用java去实现来得快。

个人计划动态语言的顺序是php py rails

相关推荐

    PHP、Python、Ruby的(数据库、文件)比较(原创)

    本篇文章将深入探讨三种流行的脚本语言——PHP、Python和Ruby在处理数据库和文件操作方面的差异与特点,以帮助开发者更好地理解它们各自的优势。 首先,PHP(Hypertext Preprocessor)是一种广泛用于Web开发的语言...

    为什么你一定要学习Python或Ruby语言.pdf

    Python和Ruby是两种强大的、高效且易学的编程语言,它们在现代软件开发中扮演着重要的角色。本文将探讨为什么学习Python或Ruby对于程序员来说是必要的,并与一些常见的编程语言进行对比。 首先,Python和Ruby相比C/...

    PHP、Python、Ruby的(数据库、文件)比较(原创).pdf

    在编程世界中,PHP、Python和Ruby都是广泛使用的脚本语言,尤其在Web开发领域。它们各自具有独特的特性和优势,特别是在处理数据库和文件操作时。以下是对这三种语言在数据库和文件操作方面的一些比较。 首先,我们...

    学编程选什么语言好?是php、python还是ruby.doc

    学编程选什么语言好?是php、python还是ruby.doc

    每个程序员都应该学习使用Python或Ruby

    尽管C、C++、Java等经典编程语言依然是主流,但Python和Ruby因其简洁、易学、开发效率高等特点,在业界受到了越来越多的关注。本文将探讨为何Python和Ruby对程序员如此重要,以及它们与其他编程语言相比的优势所在。...

    The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#).zip

    The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

    基于 C 的 gRPC(C++、Python、Ruby、Objective-C、PHP、C#).zip

    基于 C 的 gRPC(C++、Python、Ruby、Objective-C、PHP、C#)gRPC – 一个 RPC 库和框架gRPC 是一个现代的、开源的、高性能的远程过程调用 (RPC) 框架,可以在任何地方运行。gRPC 使客户端和服务器应用程序能够透明...

    Python安装包和安装教程.pdf

    与 Java、PHP、C# 和 Ruby 等语言相比,Python 具有许多优点,使其成为开发者的首选语言。下面是 Python 安装包和安装教程的详细信息。 Python 的优点 1. 简单易学:Python 的语法简单易学,易于初学者上手。 2. ...

    学编程选什么语言好?是PHP、Python还是Ruby?

    在互联网上,关于初学者应该选择哪种编程语言的讨论非常热烈,常见的选择有PHP、Python和Ruby。以下是对这三种语言的深入分析以及它们在实际应用中的优劣比较。 首先,PHP是一种广泛使用的服务器端脚本语言,尤其在...

    appium 示例代码(dotnet、java、node、perl、php、python、ruby 等).zip

    appium 示例代码(dotnet、java、node、perl、php、python、ruby 等)请参考https://github.com/appium/appium/tree/master/sample-code而不是此存储库示例代码该存储库包含主要用于 appium 功能测试的示例应用程序...

    生产规模的数据中心分析器CC Go Rust Python Java NodeJS PHP Ruby Perl.zip

    这个压缩包文件"生产规模的数据中心分析器CC Go Rust Python Java NodeJS PHP Ruby Perl.zip"包含了多种编程语言实现的数据中心分析器组件,这表明该工具可能支持跨平台和多语言集成。以下是对这些编程语言在数据...

    Ansible角色,以capistrano风格部署脚本应用程序,例如PHP,Python,Ruby等-Python开发

    Ansistrano ansistrano.deploy和ansistrano.rollback是Ansible角色,可轻松管理脚本编写应用程序(如PHP,Python和Ruby)的部署过程。 这是Capistrano的Ansible端口。 Ansistrano Ansistrano ansistrano.deploy和...

    基于 C 的 gRPC(C++、Python、Ruby、Objective-C、PHP、C#)

    gRPC – 一个 RPC 库和框架 gRPC 是一个现代的、开源的、高性能的远程过程调用 (RPC) 框架,可以在任何地方运行。gRPC 使客户端和服务器应用程序能够透明地通信,并简化了连接系统的构建。 为了最大限度地提高可用...

    基于Python的Web技术

    LAMP 是一种流行的 Web 开发平台,由 Linux、Apache、MySQL 和 PHP、Perl、Python 或 Ruby 等脚本语言组成。LAMP 具有开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等优点,是目前最流行的 Web 开发...

    完全用Python工作---Harness the power of Python

    Python的优势在于其通用性,它可以替代C、C++、Java、Ruby等语言的部分功能,并在许多方面表现出更高的效率和便利性。例如,C语言需要处理复杂的内存管理和指针操作,而Python通过自动内存管理简化了这一过程;C++的...

    python学习源码和开发应用技术

    - **PHP、Python、Ruby的(数据库、文件)比较(原创)**:通过对三种语言在处理数据库和文件操作方面的对比,为读者提供了一种横向比较的视角,有助于理解不同语言的特点和适用场景。 - **python_win32api操作**:专门...

    我的vim配置和插件 小型 python php IDE

    【标题】:“我的vim配置和插件 小型 python php IDE” 【正文】: Vim,全称Vi IMproved,是一款高度可定制且功能强大的文本编辑器,尤其受到程序员们的喜爱。它允许用户通过配置.vimrc文件来个性化编辑器的行为...

    apjp:APJP是用JAVA,PHP,PYTHON和RUBY编写的代理

    apjp:APJP是用JAVA,PHP,PYTHON和RUBY编写的代理

    python动态代码审计

    kcon议题《python 动态代码审计》,我已经将上面的所提到的技术广泛的用在我自己的工作之中,为我自己节省了大量的时间和精力。并且通过比较多实践,我把一些繁琐的过程和步骤做了简化,也填了大大小小的坑。...

Global site tag (gtag.js) - Google Analytics