编者按:在编程领域有不少堪称经典著作,其中包括《Thinking In C++》和《Thinking In Java》,它们的作者是著名的计算机科学作家Bruce Eckel。近日这个编程大师联系编程语言Java、Perl和Python,分析了老牌经典编程语言PHP的优缺点,下面让我们一睹为快。
PHP的魅力所在
提起老牌经典脚本语言PHP,我们不禁会联想到它的一个令人印象深刻的特点,即上手快,你无需对这个语言进行深入广泛的了解就可以使用它开始编程。在我们 知道的语言中,没有几个语言能把这种特点体现的淋漓尽致。与之相对应的另一个极端是Java语言,即使你写一个简单的hello world程序也需要掌握不少Java知识,运行一个Web应用同样不那么简单。而这一切在PHP中是一件举手之劳的简单事情。
在编程能力方面,PHP只是比Perl表现好一点。Perl是一种古老的脚本语言。最初的Web应用大多是用Perl编写的,Perl很像C语言,使用非常灵活,对于文件操作和处理具有和C语言一样的方便快捷。
但是,由于Perl的灵活性和“过度”的冗余语法,也因此导致许多Perl程序的代码令人难以阅读和维护,记得在Web刚刚兴起的时候,当听到有人说将使用Perl编写大型应用的时候,我就知道他们面临的将是失败。
Perl的哲学思想是同一件事,总有不止一种方法来解决,结果造成了大量难读难懂的程序。对于规模较大的系统来说,Perl编写的维护成本相对更高,另外Perl对于CPU的消耗似乎较高,效率似乎有一些不足。
计算机科学作家Bruce Eckel
相比来说,PHP却已经创建了一些更大型的应用,例如大名鼎鼎的开源CMS系统Drupal。我的一个朋友Nancy Nicolaisen表示她希望搭建一个旅游网站,我建议她看一下Drupal。她听取了我的建议并最终选择了它,只进行了轻微的改动就使她的网站上线 了,用她的话来说,这个用户社区吸引她的地方是它的强大和易用。
而且PHP允许初学者可以直接针对他们感兴趣的功能进行编程,而无需花费大量的时间来学习编程理论和实践。你只需要编写代码并通过网页来查看效果就可以了。
PHP的不足之处
但是这同时也是这个语言的问题所在。你经常会发现很多使用PHP编写出的代码错误百出,但这些代码往往却被人们互相拷贝,却没有人去认真分析研究它们。这 些代码通常是由那些习惯互相借鉴拷贝代码的程序员所编写,这些代码质量低劣的原因是这些程序员通常不习惯问为什么,不喜欢弄清楚原理,只管拿来就用。
在我第一次想深入了解这个语言的时候,我希望看到一些关于文件锁定的示例,结果尽管看到了非常多,但却没有一个是正确的。正如事实已经证明的那样,PHP 主要是与数据库搭配使用,数据库来处理所有一致性问题,因此多数人只关心从数据库中存取数据,而不用再去必须考虑底层的问题。但是这个语言不仅仅可以处理 与数据库交互的上层问题,同样也可以实现与文件系统之间交互的底层问题。我的感觉是,在PHP社区中多数人只关心如何得到一个好的结果,而没有多少人关心 它的真正实现原理,因此才出现了这种错误的倾向。
后来推出了PHP 5,与以前版本相比有了不小改进,但是它主要是增加了一些从C++和Java中提取出来的功能,但是人们只是到处找来一些新功能,但却没有仔细的分析每一个增加的功能,及其对这个语言的影响。
相比之下,根据我对Python语言多年的观察,在过去10多年中它增加的每一个新功能都经过反复的分析和推敲。时间将会证明谁对谁错,或者PHP社区将会知道如何来处理这些功能,但是我对此深表怀疑。
在最近一段时间里,我一直使用PHP来实现我新建立的站点。之所以选择它的关键是,我只用它来进行一些简单的开发。举个例子来说,PHP让你可以解决非常 弱智的HTML问题,例如你不能在HTML中包含文件的问题。PHP可以轻松做到这一点,而且可以让我轻松的在整个站点之间实现我的设计,而且有时候我们 只需要实现一些小东西并将其嵌入在页面中,PHP实现起这些东西来非常简单。
但是,我发现随着要完成的任务复杂度的提高,更好的选择是选择使用Python,因此PHP更适于处理简单的任务。
Python的内核非常精简,功能非常丰富,它提供了一个良好的程序构建基础。综合了C和C++二者的优点,只要采用合适的结构和方式,便可对 Python程序进行无限的扩充。当然,它也有自己的不足之处,例如有的朋友抱怨Python对规则表达式的支持不如PHP中强大。
分享到:
相关推荐
这篇文章是一位90后的女性IT从业者对IT行业的观察和思考,主要讨论了技术工作者在职场中的地位和出路。她指出,IT行业中存在着一种普遍的看法,即技术开发者被看作是“代码民工”,随着年龄的增长,他们可能会面临更...
总之,换电模式和充电模式各有优势和不足。换电模式能提供更快的能源补充速度,但需要解决由此带来的高投资成本、电池管理和安全性挑战。充电模式则可能在初期投资和电池技术提升方面更具优势,但需要较长时间来补充...
综上所述,"论道HTML5源代码"涵盖了HTML5的诸多核心概念和技术,通过清晰的原版PDF和分章节的源代码,为学习和探索HTML5提供了全面的资源。无论你是前端开发新手还是有经验的专业人士,都能从中受益,提升自己的...
我国虽然在带宽资源和移动通信网络方面具有优势,但车联网行业的标准缺失,安全和隐私问题也亟需解决。未来车联网的发展路径应当关注技术瓶颈的突破和产业链的完善。 具体的发展策略包括车企要深入了解车主实际需求...
《清弘碧波论道HTML5》是一本深入探讨HTML5技术的专业书籍,其源码提供了书中所有示例代码的详细实现,旨在帮助读者更好地理解和掌握HTML5的新特性与用法。HTML5作为现代网页开发的标准,其核心在于增强网页的交互性...
《***-国泰君安-房地产行业地产论道系列之生存篇(十):生存法则,立新篇》这份文件是一份关于房地产行业发展趋势的分析报告,由国泰君安出具,并对地产行业的未来生存策略提出了新的见解。 报告导读提到杠杆逐步...
这份“2021中期投资策略集锦:论道(29页)”是一份深入研究各类行业投资趋势的研究报告,旨在为投资者提供中期投资决策的参考。以下是对报告中涉及的主要行业和策略的详细解读: 1. **宏观:回归与变革** 报告...
【房地产行业地产论道系列之保障性租赁住房篇(十五):新一轮的实物形成周期】 在当前的房地产行业中,保障性租赁住房成为了政策关注的新焦点。这篇报告详细分析了保障性租赁住房对于整个行业以及中国经济转型的...
【标题】"陈幼坚--竹叶青北京论道馆完整竣工图.zip"是一个压缩文件,其中包含了由著名设计师陈幼坚设计的竹叶青北京论道馆的竣工图纸。陈幼坚是国际知名的设计大师,他的作品通常融合了东西方文化的精髓,展现出独特...
《Linux系统编程》是一本深度探讨Linux环境下编程技术的专业书籍,它涵盖了Linux系统开发的核心概念和技术,旨在帮助读者深入理解并掌握在Linux操作系统上进行高效编程的方法。这本书详细讲解了如何利用Linux API来...
EVA模型不仅能反映公司当前的净资产价值,还能综合考虑预测的超额收益,而且可以将其拆分为当前、中期和远期三段,为房地产企业提供更为合理的估值。在远期估值方面,由于房地产行业的开发业务缺乏明显的竞争壁垒,...
中国地产行业在过去的20年间,经历了以城镇化和工业化为主导的发展阶段,这期间房地产行业的杠杆作用显著,城市化率的提升带动了农民大量进城,而政府和房地产企业成为了这一进程中的主导力量。随着资本的积累和土地...
当前零售行业的数字化转型已经成为企业发展的关键所在,尤其是在面临着新冠疫情这种前所未有的挑战下,技术强度和数字化能力的高低直接关系到企业的生存和发展。本文通过分析零售企业数字化转型的挑战与机遇,旨在为...
产品方法论不仅关注产品的具体操作,更注重于高层次的思考和策略制定,是产品经验的提炼和升华。它既包含了对产品本质的理解(世界观),对优秀产品的评价标准(价值观),也包含了如何实施产品策略(人生观)。 **...
综上所述,该报告深入分析了房地产行业在经济、信贷和效率三个层面的发展现状和未来趋势,并提出了相应的投资建议。对于房地产行业的参与者而言,了解这些关键知识点将有助于把握行业发展方向,制定合理的战略规划。
企业管理管理论道.EXE
《地产行业论道系列之迎新篇(十三):激荡二十载,遥看2041年》这篇文档,虽然未提供详细的标签,但从标题和文件名来看,我们可以推测其主要内容聚焦于中国房地产行业的历史回顾与未来展望。这篇资料可能是行业专家...