原文在Tim bray的blog :comparison intrinsic qualities of Java, Rails, and PHP中(http://www.tbray.org/ongoing/When/200x/2006/11/10/Comparing-Frameworks)
Tim首先明确了它这个观点的适用的范围:Web应用程序。对于那些基于浏览器的,从数据库显示一些信息,然后能够更新数据库的这种应用程序。
1 伸缩性
Java 开发了EBay ,而 PHP 开发了 Wikipedia和 Yahoo! Finance. 它们的伸缩性都足够好。
2 开发速度
3 工具支持
Java是最大的赢家,Rails有TextMate,PHP有Zend
4 可维护性
一个好的应用程序需要 面向对象,MVC架构,代码可读,代码的数量越少越好。
Tim认为这是PHP的痛脚,虽然PHP完全可以写出上面的代码,但是PHPer通常不这么做。大多数PHP程序是意大利面式的代码裹着意大利面式的SQL和意大利面式的HTML。(笑死人了)
Tim最后说,不要问它PHP,Rails,Java那个好,它依赖于你对项目进行的选择。最近几年PHP和Rails教会了我们开发的速度是多么的重要。在一切的开发中,维护才是最重要的。
InfoQ对Tim进行了访问:
InfoQ: 为什么Rails比Java更具有可维护性?
主要是因为代码少。事实是Ruby强制使用MVC模式,其模板机制和ORM,以及测试和程序代码耦合的太紧密了。请记住,我们到现在还搞不清,Rails对于那些不适用于CRUD形式的程序到底有什么用。
InfoQ: 为什么PHP比Java更具有伸缩性?
不是这个意思,而是在web应用领域,它易于伸缩(没有中间件或服务要共享)。
InfoQ: 那一种特性在你的比较中最为重要?
可维护性。
Tim 继续在其blog中解释了可维护性:
在这个疯狂的Web2.0的世界里,能够快速的构建系统非常重要。面对投资和开发需求,你要在最短的时间交付系统。但是真正做过企业开发的聪明的程序员和经理们都知道。开发最大的成本是从你产品交付的那一刻,才刚刚开始。
分享到:
相关推荐
|beta-NTI| >2说明决定性过程主导,其中beta-NTI >2说明OTU的遗传距离发散,为生物交互作用主导,beta-NTI 则说明OUT的遗传距离收敛为环境选择主导。|beta-NTI| 则说明随机过程主导,但随机过程包含遗传漂变、扩散...
BRAY VAL-SRS系列电动执行器说明书pdf,BRAY VAL-SRS系列电动执行器说明书
该索引是线程安全的,可序列化的,支持以递增方式将项目添加到索引中,并具有实验性的删除支持。 它灵活的界面使您可以轻松地将其应用于任何类型的数据和距离度量。 当前预先包装了以下距离度量: Bray Curtis...
Tim Bray:2014年软件之路 后端架构 MongoDB与内存 《淘宝技术这十年》读书笔记 - 大CC 探索 Hibernate 新 TableGenerator 机制 服务好“最后一公里”,高效CDN架构经验 探索推荐引擎内部的秘密 一起 select 引起的...
Steven Robbins的文章指出,图灵奖得主Jim Gray很早就提出了“内存将成为硬盘,硬盘将成为磁带”的说法(出自2006年Tim Bray一篇讨论网格计算的博客,2003年的访谈中他已经表达了同样的意思)。2008年Dare Obsanjo...
Web 2.0人物访谈录。Wiley Web 2.0 Heroes Interviews ...19 Bob Brewin & Tim Bray: Sun Microsystems . . . . . . . . . . . . . . 229 20 Michele Turner:Adobe Systems Incorporated . . . . . . . . . . . . 243
java源码uml JavaScript到UML Generator-js2uml 阿齐兹·纳萨尔(Azez Nassar)和伊桑·布雷(Ethan Bray) 问题域 创建一个Python 3程序,该程序可以使用Python包根据目录下一个文件中的ES6 +(ECMAScript 2015+)...
它解析相对URL(例如Tim Bray的“进行中”看到的URL)。 它可以正确处理XML名称空间(包括在非常规feed中为主要feed元素定义非默认名称空间的XML名称空间)。 安装 npm install feedparser 用法 本示例只是为了...
该软件套件是使用Java和面向对象的程序编写的,使用Bray-Curtis相似性可识别与给定基因具有相似组织范围表达谱的其他基因,并使用敲除数据来识别转录因子靶基因。 它还使用基于信息论的位置权重矩阵对基因启动子中的...
法律障碍状态代码 这是用于报告法律障碍的 HTTP 状态代码的拟议规范的... 原始网址: 此存储库用于对 Tim Bray 的草稿进行提议的更改。 具有拟议更改的当前规范位于: 通过标准的 fork 和 pull 方法提交任何更改。
Chapter 4, Finding Things, by Tim Bray, draws together many strands in Computer Science in an exploration of a problem that is fundamental to many computing tasks. Chapter 5, Correct, Beautiful, Fast ...
Bertha是用于高端存储子系统的I / O基准测试工具。 基于Tim Bray的Bonnie基准测试工具,并进行了三项增强:1)生成更多的I / O; 2)提供重播I / O事务的工具;以及3)广泛的指标报告。
卡利斯托 kallisto是一个程序,可使用高通量测序读数从RNA-Seq数据或更广泛地对... Kallisto算法在以下内容中有更详细的描述: NL Bray,H Pimentel,P Melsted和L Pachter,《序列 ,《自然生物技术》第34期,第525--
如果您知道某个社区的确切组成(例如,皮肤上生活的所有微生物),则可以计算该社区的香农多样性,或计算皮肤微生物与猫的毛皮微生物之间的Bray-Curtis距离。 但是,从实验中您只会观察到皮肤上一小部分微生物,因此...
电动执行器pdf,电动执行器
Good book on Algebraic topology, it is used for graduate student in mathematics and other science fields with solid mathematical background and knowledge to read or use as a reference.
ASDF标准 本文档介绍了高级科学数据格式(ASDF),发音为AZ -diff。... Greenfield,P.,Droettboom,M.,&Bray,E.(2015年)。 ASDF:一种新的天文学数据格式。 天文学与计算,12:240-251。 doi:
常用的成熟的生成高斯分布随机数序列的方法由Marsaglia和Bray在1964年提出,C++版本如下: 代码如下:#include <stdlib>#include <math.h> double gaussrand(){ static double V1, V2, S; static int phase =...
福隆。 等于220码的距离单位furlong是一个零依赖节点和Javascript库,用于计算用... 提供的距离功能包括: 欧氏距离曼哈顿(出租车)距离切比雪夫距离布雷·柯蒂斯(Bray Curtis)距离堪培拉距离汉明距离>>> furlong(
因此,有必要了解P的化学形式的形态,并阐明P的有效性与土壤中P的化学形式之间的关系。 这项研究的重点是水稻土中磷形态的变化和有效磷的化学形式。 在实验室规模下进行了有/无排水的孵化实验,以模拟稻田的情况,...