编程要不要美
在《GAE 添加 PHP 支持引发的一波讨论》中,有篇挺 PHP 的文章,第四局部,作者提出了:编程不一定要美(由于 PHP 被诟病的缘由之一就是很多 PHP 代码是漂亮的)。
先翻译出来,再说说我的观念。
翻译末尾 {
多年前,我末尾看到人们赞誉 RoR(Ruby On Rails),相关于运用 Java 或 PHP 这些言语,他们以为 RoR 是 Web 运用开发的最佳选择。
我看到在 RoR 创立者 David Heinemeier Hansson 的一些言论中,他在推行这样一个概念:编程必需要美。我想知道这是什么意思,是指代码作风么?还是指项目架构?还是指开发方法学?或许其他?
能够我没抓住要点,但我会这样想象:RoR 在推行一种开发方法学,作为一种正确和多产的方式。假设你不分开 Rails 平台,你的“火车”可以行驶得飞快。
但在我看来,继续地运用一种开发方法学并不依赖于你运用哪种开发言语或许框架。我运用异样的方法学开发 PHP 项目很多年了。我觉得自己是多产的,由于我也是一向遵照异样的方法学。我开发项目相当的快,由于任务已趋于机械化。看起来,RoR 给那些没有方法学可遵照的同窗的 Web 项目开发带来了分歧性。
但是,遵照方法学的开发并不一定要基于 RoR,也不需求基于 Ruby。在 PHP 中也异样可以,你可以选择运用一个相似的框架或许不用也可以。理想上,如今出现的很多 PHP 框架都从 RoR 中学习引进了一些东西。
RoR 也从 PHP 中引进了些东西。例如,曾经整合到 RoR 项目中的 ERB 模板系统,其实这就是一套模板解析机制,在 PHP 中早就有了。
有些人还布道说,你不能将代码和 HTML 模板混在一同,假设那样,就是漂亮的,在你死后你会被打上天狱的。所以,我猜 RoR 的同窗也会赞同:编程不一定要美。
还有一件被人们以为漂亮的事情是,在运用中运用全局代码而不是用类封装。好吧,你看看 WordPress 的源代码,你会看到遍地的全局代码。我写过一篇为什么《用类组织你的代码》比运用全局代码要好,但也不是一种强迫性的规则。全局代码并不美,但它能任务,PHP 允许它的存在,很多开发者还在运用它,还靠它营生。
} 翻译完毕。
下面是我的观念。
一、作者提及的几个理想:
1、确切的说,RoR 是指一套开发框架,而 PHP 是指一门脚本言语,但在文章中,大家应该都能看出,作者是在比拟两个开发平台(或许说环境、生态)。
2、RoR 推行了一套开发方法学,能提高消费力。这也是 RoR 盛行的重要缘由之一。
3、PHP 由于降生的早,运用普遍,也遗留上去很多原始的特性;而 RoR 降生内行业愈加成熟的时期,是更先进的。解释型言语很多方面可以相互学习,但 RoR 有更多值得 PHP 学习的中央。
4、开发方法学等实际知识,都是跨言语的,这些知识比掌握一门言语语法更有价值。当然言语对实际的支持水平有上下,RoR 对开发方法学的支持应该不错(我没实际过,此为推测),而 PHP 中也有框架能支持,但框架太多,还得停止选择。
二、作者并没有证明他的观念:
1、关于“美”的概念,RoR 创立者所指的“美”应该是:好的编码作风、好项目的架构、等等(如作者所了解的),目的是为了能良好应对未来的变化。但是作者举的例子中,HTML 模板和代码不能混杂,这里的“美”的意思更倾向“完美”的硬性规范,概念变了,不能作为论据。
2、WordPress 的成功,主要是市场上的成功,而不是技术上的。不论代码美不美,我想 WordPress 都能成功,只需它抓住了市场的需求。所以,WordPress 的代码并不能作为论据。
3、作者在自己的文章《用类组织你的代码》中也倡议让代码“美”些,为了应对未来的变化。所以摆明了是在反驳自己提出的观念,除非他以为的“美”的意思是指完美。
4、所以,我和作者的观念一样,都是:编程还是得美一点。
三、题外话,学 PHP 还是 RoR:
1、假设选择 PHP
能从零末尾学习效劳端 Web 开发,当你到达一定的知晓水平(特别是熟习一两个主流 PHP 框架时),转学 RoR 会很容易。写一些原生的 PHP 脚本和 SQL 查询语句,会协助你了解 Web 运用的完成原理。
2、假设选择 RoR
能马上上手停止 Web 开发,能学习更先进的 Web 开发方法,高效,享用 RoR 带来的丰厚的工具(我没实际,随声附和下)。等等。但是底层细节都被隐藏,对原理会比拟模糊。
3、Web 产业如何选择
如今,Python、Ruby 比起 PHP 更能满足 Web 产业对技术的消费力的需求。虽然 PHP 也不时在提高,单元测试、包依赖管理等工具也早都有了,但还是没有大面积运用起来。
从 GAE 支持 PHP 这事看来,Google 还是供认了 PHP 的位置,也许是由于 PHP 的门槛确实低得小盆友都能出去了。
4、我的了解是:学深了,都差不多。