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

我的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,不容易啊...

相关推荐

    基于改进YOLOv5s的森林烟火检测算法.pdf

    基于改进YOLOv5s的森林烟火检测算法.pdf

    人力资源管理工具绩效考核excel模板01.xlsx

    人力资源管理工具绩效考核excel模板01

    施工班组长绩效考核表.xls

    施工班组长绩效考核表

    57 -营业部经理绩效考核表1.xlsx

    57 -营业部经理绩效考核表1

    XX公司行政部绩效考核指标.xls

    XX公司行政部绩效考核指标

    ant-apache-xalan2-1.9.4-2.el7.x64-86.rpm.tar.gz

    1、文件内容:ant-apache-xalan2-1.9.4-2.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/ant-apache-xalan2-1.9.4-2.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    部门绩效考核表模板(基于KPI以月度为例2).xlsx

    部门绩效考核表模板(基于KPI以月度为例2)

    11-6-质检员绩效考核表(含自动计算、等级评价及任意设置等级).xlsx

    11-6-质检员绩效考核表(含自动计算、等级评价及任意设置等级)

    2024年最新全国河流、湖泊矢量数据(数据权威)

    2024最新全国河流湖泊矢量数据 【数据介绍】 2024年中国河流湖泊数据 一份包含中国境内所有主要河流和湖泊的地理信息数据。 数据格式:Shapefile:广泛使用的GIS数据格式,方便在各类GIS软件中使用。 数据获取:访问OpenStreetMap官网,通过导出工具选择中国区域并下载所需的数据。 使用Geofabrik等第三方网站,可以下载预处理好的中国区域的OSM数据。 数据使用:GIS软件:如QGIS、ArcGIS等,用户可以在这些软件中导入OSM数据进行可视化、分析和编辑。 数据应用: 环境研究:分析河流湖泊的水质变化,研究水资源分布及其环境影响。 城市规划:用于规划城市水系、洪水防控、水资源管理等。 导航和旅游:为河流湖泊的导航和旅游路线规划提供数据支持。 科研:为水文地理研究、生态保护、气候变化等领域提供基础数据。 数据特点: 实时更新:OSM数据由全球用户贡献,具有较高的实时性和更新频率。 开放性:所有数据都在开放许可下发布,允许用户自由使用、修改和分发。 详细性:由于全球志愿者的不断努力,数据细节较为丰富,涵盖了从主要河流湖泊到小型水体的广泛范围。 数据时间2024年5月,shp格式,数据来源OpenStreetMap。 OpenStreetMap(OSM)介绍: 一个开放的、免费的、全球性的地图项目,由全球的志愿者和地图爱好者们共同创建和维护。 OSM的数据包括道路、建筑、公园、河流、湖泊等各类地理信息。由于是由众多志愿者共同编辑,OSM的数据具有很高的实时性和详细程度,特别是在一些活跃的区域,地图数据的更新速度和精度往往超过商业地图服务。 用户可以直接在OSM官网下载地图数据,数据格式主要有OSM XML和PBF等。此外,还有一些第三方网站和工具提供更加便捷的数据下载和处理服务,如Geofabrik、Overpass API等。 OSM的数据可以在各种GIS软件中使用,如QGIS、ArcGIS等。此外,还可以使用Python的OSMnx、GeoPandas等库进行编程处理,或者通过Leaflet、Mapbox等JavaScript库将OSM数据集成到web地图应用中。 OSM的所有数据都在开放许可下发布,允许用户自由使用、修改和分发。这使得OSM成为了许多公共项目、研究机构和商业公司的重要数据来源。

    部门绩效考核评分表.xlsx

    部门绩效考核评分表

    12-11-运输车队长绩效考核表(含自动计算、等级评价).xlsx

    12-11-运输车队长绩效考核表(含自动计算、等级评价)

    ant-javadoc-1.9.4-2.el7.x64-86.rpm.tar.gz

    1、文件内容:ant-javadoc-1.9.4-2.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/ant-javadoc-1.9.4-2.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    springboot整合 freemarker方法

    springboot整合 freemarker方法

    apache-commons-codec-1.8-7.el7.x64-86.rpm.tar.gz

    1、文件内容:apache-commons-codec-1.8-7.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/apache-commons-codec-1.8-7.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    (数据权威)全国旅游抽样调查数据

    《旅游抽样调查资料》是反映入境游客在华(内地)花费和国内居民国内旅游情况的资料性年刊,分为上下两篇。 上篇为在华(内地)停留时间在3个月以内的入境游客抽样调查资料,由综合分析报告和调查分类数据两部分组成,分类数据包括:入境游客的主要特征,入境外国人、港澳台同胞的花费水平和花费构成、在境内的停留时间以及入境次数、流向和对住宿单位的选择等。 下篇为国内旅游抽样调查资料,汇集了对城镇居民和农村居民的国内旅游抽样调查结果,共分为四个部分:第一部分为综合分析报告;第二部分为国内旅游出游及花费情况;第三部分为城镇居民国内旅游抽样调查分类数据;第四部分为农村居民国内旅游抽样调查分类数据。

    二代身份证信息读取(vfp8.0)

    1、表单界面,身份证信息保存在dbf表中,供vfp应用使用,可导出为xls电子表格。 2、提供了身份证过期校验和查询功能。

    人事行政主管绩效考核评分表.xls

    人事行政主管绩效考核评分表

    08 -大堂副理绩效考核表1.xlsx

    08 -大堂副理绩效考核表1

    apr-1.4.8-7.el7.x64-86.rpm.tar.gz

    1、文件内容:apr-1.4.8-7.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/apr-1.4.8-7.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    ComponentNameError解决办法.md

    ComponentNameError解决办法.md

Global site tag (gtag.js) - Google Analytics