QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

观点:Rails 还是 PHP?适合才是最好

  • 2007-09-28
  • 本文字数:1622 字

    阅读完需:约 5 分钟

随着大举进军Rails 号角的吹响,Rails 成为Web 2.0 中小型站点开发的框架新宠。一夜间rails 与敏捷开发的思想逐步深入人心,在这个技术浪潮中涌现出的成功站点也不在少数。然而,Derek Sivers 最近在O’Reilly 站点上发表的一篇名为两年RoR 开发付之东流,重返PHP 的七大理由的文章,激起了rails 开发者们强烈的反响。

Derek Sivers 是 CD Baby 以及 HostBaby 的创建者,自 CD Baby 站点于 1998 年创建以来,经历了数次代码重写,从最初的 HTML 到之后的 PHP,两年前 Derek 又将站点用 rails 重写,而如今又重新回归到 PHP 语言上来。缘何如此?Derek 在文中写道:

2005 年 1 月份,我在 O’Reilly 的 Blog 上撰文宣布,将放弃 cdbaby.com 站点原先十万行杂乱的 PHP 代码,并准备从头开始使用 Rails 将站点的代码重写。于是我雇用了当时最好的 Rails 程序员,开始着手这个庞大的计划…最初的几个月进展非常顺利,但是在后续的开发过程中,需求开始与 Rails 实现显得有些冲突,并且使项目陷入窘境,有时我不得不问自己放弃原先的计划而使用 Rails 是否真是值得的…两年之后,我们在 rails 开发上经历了各种挫折,最终发现总共才完成了期望工作量的一半。

Derek 一直在思考这个问题“有没有什么是 Rails 能做而 PHP 做不到的?”答案是否定的,于是 Derek 决定摒弃两年来使用 Rails 编写的代码,重新使用一直熟悉的 PHP 来将网站全部重写。Derek 在文中写道:

仅仅用了两个月,只有我一人进行开发,并且没有使用任何框架,仅是在 vi 编辑器之下,使用 PHP 重新编写了 CD Baby 整站的代码,而且效果出乎意料的好。这应该是我写出过最好的 PHP 代码,完全遵循 MVC DRY (Don’t Repeat Yourself)的准则,这些获益应归功于使用 Rails 开发过程中得到的经验和智慧。

Derek 进而总结了从 Rails 转回到 PHP 的七个原因:

  • 有什么是 Rails 能做而 PHP 做不到的?…没有;
  • 我们整个公司的 Web 代码都是用 PHP 写成的,请别忽视应用间的整合问题;
  • 别要你不需要的额外功能;
  • PHP 小巧而快速;
  • PHP 代码完全按照我自己的方式运作;
  • 我喜欢直接使用 SQL;
  • 语言就像女朋友:你觉得新的更好那是因为你有了进步。

当然,Derek 并没有否定 Rails 框架的好处,并总结了 Rails 为开发者带来的益处,当然更重要的是 Rails 经验为开发者带来的对问题看法的转变和技术的提高等。这些 Rails 的益处包括:

  • 通过 Active Record 将数据封装在模型类中,通过接口向 Web 应用提供数据,符合 Martin Fowler 提出的 Active Record 模式思想;
  • 具备自动加载( __autoload )机制;
  • 真正的 MVC 分层设计;
  • 所有的 HTML 代码来自于抢有力的模板机制;
  • 极度简化的代码量。

Rails 与 PHP 是面向敏捷 Web 开发的两种主要语言。针对两者在 Web 开发领域中的关系,JavaEye 的站长 robbin 也曾做出过这样的评价

根据我的观察,其实现在互联网应用,PHP 仍然是当仁不让的第一开发语言,占据了最大的市场份额。这是有内在的原因的,因为 PHP 超级简单易用,是当前 web 开发技术当中,学习起来最快的了。有点编程基础的人,学习一天,第二天就可以干活了。对于互联网开发来说,速度是第一重要的事情,拖拖拉拉做不出来网站,机会就永远丧失掉了,对于熟练的开发人员来说,RoR 可以提供比 PHP 还要快的开发速度,这就注定 RoR 肯定会流行。

在一篇名为“漫谈 rails 与 php”的帖子中,从框架和语言、MVC、ORM 以及各自优缺点等各方面都做了评论,axgle 在结尾处这样写道

我想说的是 php 将继续发展下去,已经发布了的 php5 以及正在发展中的 php6 也将有一些新的特性加入。而 rails 也在不断发展中。我相信 rails 和 php 一道,都有各自的一席之地。

其实,语言或开发框架相关的争论并不鲜见,然而争论的最终结果往往是选择合适的语言或框架才是最正确的。在接触新技术的初期,不能仅靠对技术的热情而对不熟悉的领域主观臆断,因事先估计不足而使得结果事与愿违。程序的编写不仅要靠设计良好的语言和框架,靠经验的积累和技巧的沉淀有时才是最重要的。

2007-09-28 20:342890
用户头像

发布了 74 篇内容, 共 13.1 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

Steinberg Cubase Pro 14 for Mac破解版安装教程 多功能音乐制作

Rose

2024中国大模型,一超多强格局依旧

脑极体

AI

Lakehouse 架构下的元数据“大一统”管理深度解析

袋鼠云数栈

Python爬虫实战:抓取拼多多商品详情数据(基于pdd.item_get接口)

代码忍者

API 接口 pinduoduo API

Agisoft Metashape Professional 高精度3D模型 + 多格式支持,协同工作无忧

Rose

Renamer 7 for mac 中文激活版 最好的批处理文件重命名工具

Rose

DispCam DisneyPlus Video Downloader for Mac(迪士尼视频下载工具)v1.1.1 激活版

Rose

超强不限速BT/磁力下载工具—Transmission for mac苹果版

Rose

AI Agent重塑微服务治理

百度Geek说

重构 微服务治理 AI Agent 多智能体 微服务运维

HarmonyOS开发宝典震撼来袭,卓越应用开发之旅一触即发,轻松启程!

HarmonyOS开发者

SmoothScroll for mac v1.6.0永久激活版 鼠标增强工具

Rose

以数据驱动增长,火山引擎数智平台“数据找人”为双12营销提效

字节跳动数据平台

电商 数据飞轮 双十二

音视频监控SDK开发的技术难点

北京木奇移动技术有限公司

音视频开发 音视频技术 软件开发定制

工单+远程技术支持一个方案就搞定!贝锐向日葵技术支持方案升级

科技热闻

Understand for Mac(优秀的源代码审查工具)

Rose

铁路运输行业怎么定义?为什么要用到堡垒机?

行云管家

等保 堡垒机 铁路行业 运输

浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)

JackJiang

网络编程 即时通讯 IM

得物商家客服从Electron迁移到Tauri的技术实践

得物技术

typescript rust Vue 前端 前端 electron

TunesKit Subtitle Editor Mac版 功能强大的字幕编辑工具

Rose

HarmonyOS 5.0应用开发——UIAbility生命周期

高心星

HarmonyOS Ability 鸿蒙Next

大公司难解“违规报销”题,是管理方式出现问题了吗?

ToB行业头条

美团

如何编写年度工作汇报PPT

老张

年度总结 工作汇报 述职

DaisyDisk for Mac:可视化磁盘清理,释放空间超轻松

Rose

曲靖具有资质等保测评机构在哪里?电话多少?

行云管家

等保 堡垒机 等保评测 曲靖

Word 2024 LTSC for Mac(word 2024)永久破解版

Rose

教育信息化 2.0 时代,如何从 “数字化校园” 迈入 “智慧校园”?

袋鼠云数栈

火山引擎数据飞轮帮助音乐APP充分洞察用户需求,提升用户粘性

字节跳动数据平台

数智化 数据飞轮 营销增长

QT开发Linux应用软件

北京木奇移动技术有限公司

qt Qt Creator 软件外包公司

PHP爬虫的使用与开发

科普小能手

php 爬虫 爬虫教程 PHP开发

Cinema 4D 2023激活补丁(C4D 2023中文版)-Mac/win

Rose

To B企业:2025继续打价格战,只有死路一条

IPD产品研发管理

企业管理 产品研发 企业经营 产品战略

观点:Rails还是PHP?适合才是最好_Ruby_高昂_InfoQ精选文章