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

我的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
分享到:
评论
51 楼 clem 2013-01-24  
xieye 写道
robbin 写道

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


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

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

修改类似phpbb这样的框架,然后构建网站,我从来没做过这样的事,大概1个多月我就做了一个论坛,自己开发就可以了。

你做的论坛和phpbb是一个概念吗?phpbb是专业论坛,你一个月做的,除了你自己,谁敢用?
开源强在哪里?就是社区,没有社区,开源屁都不是,linux在技术上面不知道被windows甩多少条大街,什么东西都自己写,要开源的东西干嘛,php是你自己写的吗?
楼主写这篇文章主要还是为了SEO,稍微有点水平的人都不会对几种语言的比较长篇大论,楼主自己做站的,ruby用用无所谓,但是如果帮别人做站的,别人会认同ruby吗?web方面,ruby能做的,php都能做,稍微丑了一点,但是市场占有率上,ruby和python捆起来都达不到php的一半,尤其是在中国,谁听说过阿。所以综合来讲,php仍然是web开发的王者。
50 楼 freespace 2012-05-16  
whzlong 写道
robbin能不能告诉我在不能联网的情况下,怎样用rails创建一个新的项目,
因为机子不能很好的联网,建项目时总是死在Bundle intstall 这里,这个命令主要是
从网上取些什么东西呢

可能是被伟大的墙给挡了。
49 楼 xtay850 2012-05-15  
写的很好,这正是我想要看的。
48 楼 whzlong 2012-04-23  
robbin能不能告诉我在不能联网的情况下,怎样用rails创建一个新的项目,
因为机子不能很好的联网,建项目时总是死在Bundle intstall 这里,这个命令主要是
从网上取些什么东西呢
47 楼 bruce.lu 2011-11-06  
smartfish9 写道
不太认同robbin对PHP的看法,比如robbin认为PHP凌乱,不够优雅,这在过去是成立的,并且由于历史原因,现在大量的开源PHP程序还是给人这种感觉。但是在良好支持面向对象的php5发布之后,并伴随着PHP程序规模的扩大,这些基本成为历史,现在一个全新的PHP项目如果还是凌乱不堪的话,那只能是程序员的水平问题,而非其它。
robbin还是用若干年前的眼光来看PHP了。

同意smartfish。 感触比较深得是CI(PHP 的一个轻量级框架)的Active Record Class。
46 楼 eto222 2011-11-01  
fantasybei 写道
其实你们都没有看到重点,重点是最后一句
"现在JavaEye网站正在招聘Ruby程序员,请有志于Ruby领域的程序员和我联系。"

同意
45 楼 freespace 2011-08-05  
php的drupal架构很不错,这么大的项目,机构也很清晰,没有robbin的“项目一大,代码一多,代码的管理很成问题”的问题。
44 楼 coolesting 2011-06-30  
我做了几年php, 属于后期的phper, 和作者说的php有一定的出入, 后期的php作品中, drupal算是优秀, 我对他的研究, 并开发自己的CMF,  在此过程中借鉴python的优点,
无意发现这ruby, 虽然很早听过ROR, 但对ruby的语法和他的独特感到新鲜, 我再也回不去php了, 现在我正努力学习ruby, 把php上的CMF移植过来。  但听说rails很强悍, 就不知道这个强悍是什么一个概念。  在开发大型项目之下, php的确缺失综合型的管理应用。

 
43 楼 vb2005xu 2011-06-12  
用rails 做应用 成本预算太大,除了MAC机 基本就没有好的 开发IDE 从去年开始接触Rails 期间也接了几个私单 使用rails做的 说白了 没有感觉比使用fleaphp/qeephp 快多少

如果加上IDE的话 绝对比不上 php开发速度...

我都是拿 NOTDPAD++ 来写 ... 有点郁闷 特别是调试的时候...

必须看源代码 ... 这点

不过相对来讲 比 ptython的turbogears 要好的太多

我之前拿turbogears给人开发过一个应用 现在每次修改我都郁闷的要死...

几次想拿rails或者PHP重写 但是担心客户接受不了...

毕竟 能跑不是... turbogears o(︶︿︶)o 唉

努力学习rails 努力学习php 努力学习 nodejs 努力学习mysql 努力学习mongodb




42 楼 sunway 2011-05-23  
难道你也搞php了吗
41 楼 mobilezht 2011-04-18  
shaka 写道
肉饼很明显在给Ruby做广告 

肉饼 这个称呼 很贴切。
40 楼 smartfish9 2011-04-09  
不太认同robbin对PHP的看法,比如robbin认为PHP凌乱,不够优雅,这在过去是成立的,并且由于历史原因,现在大量的开源PHP程序还是给人这种感觉。但是在良好支持面向对象的php5发布之后,并伴随着PHP程序规模的扩大,这些基本成为历史,现在一个全新的PHP项目如果还是凌乱不堪的话,那只能是程序员的水平问题,而非其它。
robbin还是用若干年前的眼光来看PHP了。
39 楼 yujiaao 2011-04-07  
shher 写道
robbin 大哥,你的帐号被盗了吗,怎么会写这样的文章??

一楼的兄弟太强了,javaeye改名了,再用java有些不理智了,卖啥吆喝啥,Ruby新到货,欢迎品尝
38 楼 lhdgriver 2011-04-06  
如果ROR想要普及,最好简化它的安装,说实话,每次安装都感觉很EggPain,官网上的安装步骤太不靠谱。
其次,Ruby真的是很好玩的语言
最后,Rails感觉还行,少了很多配置,能够focus on逻辑部分,但是调错神马的还是很难,基本靠看代码。。。。。
37 楼 大尾巴 2011-04-01  
jiorry 写道
呵呵,只要是web开发,我还是使用php。
rails 直接被废,原因有二:
1. 升级成本太大(不升级,自己心里又痒痒,纠结!!!)。
2. 不能全面掌握rails,有很多编程潜在风险。(出现过内存泄露问题,很难排查)
3. 改造 扩展 rails 的学习成本很大。(我是尽量不使用插件的。因为生产环境中,一旦出了问题,不好解决。)




赞同。
曾经考虑过用Django,不过发现php各方面都更熟悉一些,换语言学习成本太大,
自己搞似有的php框架吧,ror两年内不会考虑。
36 楼 saberma 2011-03-26  
jiorry 写道
呵呵,只要是web开发,我还是使用php。
rails 直接被废,原因有二:
1. 升级成本太大(不升级,自己心里又痒痒,纠结!!!)。
2. 不能全面掌握rails,有很多编程潜在风险。(出现过内存泄露问题,很难排查)
3. 改造 扩展 rails 的学习成本很大。(我是尽量不使用插件的。因为生产环境中,一旦出了问题,不好解决。)



1. 总想用最新的东西难道是程序员的通病,我也是这样的。但是在rails中,升级的成本会随着测试成本的降低而降低,因为你可以随时bundle update你的所有插件,再把测试跑一下,花一点时间尝试修正问题,如果发现插件存在严重的bug,你可以尝试修正(github上fork一下),实在不行,git reset或者git stash把这次的升级的退了。由于ruby社区比较重视测试,虽然升级出现的问题倒是有,但都是小问题,插件的作者在push上去前都会让rspec等测试都通过的。

2. 对技术的全面掌握是不是也是程序员心理通病呢,因为要保证某个技术完全在自己的控制下,那是不现实的;但是这种心理完全可以作为我们的学习动力,而不是阻碍着我们,让我们一步也不敢去靠近他。我最初接触ruby的时候最担心的就是跨平台(操作系统,天啊还要部署在windows),跨数据库(天啊还要连Oracle和SqlServer),要想让各个rails插件都作到这一点,压力还是异常地大,但只要有信心去做了,问题还是能得到解决。

3. 如果担心rails改造扩展的学习成本,那现在可以少点担心了,因为rails3的发展已经非常完善了,各种内部框架的耦合也非常低了。不过,入门的时候最好还是先不要考虑这样的大问题的好,尽量为自己的任何一次新的学习减少前进的绊脚石。

4. 对于插件,早期还是先用插件,因为插件越多人使用,就越安全,像认证(devise)、上传(carrierwave)等等都做得非常棒了,不少大公司也都在采用,可以节约开发的大量时间;到真的不能满足要求了,咱再改,实在不行,咱再造出强悍的轮子,再发布出去,让别人也能够减少点时间。rails的插件印象中还没有看到闭源的,github上有太多的插件选择了,另外http://ruby-toolbox.com 对各种插件作了归类,选择起来非常方便(如不能访问,请翻q)。
35 楼 saberma 2011-03-26  
lkj107 写道
纠结中,想自己写个网站玩玩,但是没有接触过,php,python,ruby?


那你可以用ruby+sinatra(不用rails)+datamapper(ORM)+sqlite(DB),超轻量级了,学习个一天,就可以做出你那个网站的小原型的

真动手了,就不难,一定没有你想像中的难。
34 楼 cxh116 2011-03-25  
robbin 写道
cxh116 写道
ror 和 django相对,不管是语言,还是框架,ror都要灵活.ror相对于django来言,更适合企业应用开发.django 快速的开发CMS,企业网站还是很不错的.

   想从JAVA改行到ROR,不容易啊...


我从Java改行做RoR,用了一个月。

当初Quake同学改行从Java做RoR,用了一周。



  个人容易企业难...
33 楼 robbin 2011-03-25  
cxh116 写道
ror 和 django相对,不管是语言,还是框架,ror都要灵活.ror相对于django来言,更适合开发.django 快速的开发CMS,企业网站还是很不错的.

   想从JAVA改行到ROR,不容易啊...


我从Java改行做RoR,用了一个月。

当初Quake同学改行从Java做RoR,用了一周。
32 楼 cxh116 2011-03-25  
ror 和 django相对,不管是语言,还是框架,ror都要灵活.ror相对于django来言,更适合开发.django 快速的开发CMS,企业网站还是很不错的.

   想从JAVA改行到ROR,不容易啊...

相关推荐

    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