编程大师论道:PHP的魅力和不足何在2008-07-01 来自:lizhe1985  [收藏到我的网摘]

SOA 案例分析系列
学习和实验 SOA 的各方面知识、方法、技术及工具
Snort:入侵检测工具
Snort使用手册:保护和分析 Web 站点
Snort 使用手册之第2部分
通过设置 Snort 报告 Web 站点入侵
JAVA家族里的贵族—Groovy!
国内 首个 Groovy 中文 视频教程 Groovy入门

来源:开发者在线

  在编程领域有不少堪称经典著作,其中包括《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中强大。

编程大师论道:PHP的魅力和不足何相关推荐

  1. 编程大师论道:PHP的魅力和不足何在

    编者按:在编程领域有不少堪称经典著作,其中包括<Thinking In C++>和<Thinking In Java>,它们的作者是著名的计算机科学作家Bruce Eckel. ...

  2. Unity2D游戏开发和C#编程大师班

    本课程采用现代游戏开发的最新内容和最新技术(Unity 2D 2022) 学习任何东西的最好方法是以一种真正有趣的方式去做,这就是这门课程的来源.如果你想了解你看到的这些不可思议的游戏是如何制作的,没 ...

  3. 读样章、写评语,即有机会获赠《编程大师访谈录》!

    图书简介 <编程大师访谈录>由一系列面对面的访谈组成,带领读者一起去探索计算机行业极具威望的19位编程大师的思想.这些访谈突出了塑造并影响当今软件业的先驱的推动力.事件和人物. 这些编程大 ...

  4. 3D游戏编程大师技巧+源码

    首先win10的SDK里已经没有了<dmusici.h>和<dmusicf.h>,所以我在网上找了DirectX8 SDK下载下来(windows游戏编程大师技巧的源码当然也要 ...

  5. 开始利用CSDN做学习笔记,从windows 游戏编程大师技巧和3D游戏编程大师开始

    利用两个月的空余时间将windows 游戏编程大师技巧和3D游戏编程大师技巧看了一遍. 第一遍读的并不深入,代码也没有仔细研究.特别是3D下册,基本只是草草浏览了一遍而已.这一遍是为了对整体有个印象和 ...

  6. 12岁写代码,为数百万程序员引路,这位世界级编程大师不简单

    点击上方"程序员知识码头",选择"设为星标" 回复"666"获取新整理的面试资料 Robert C. Martin,世界级编程大师,设计模式 ...

  7. 3D游戏编程大师技巧第一章 vs2013编译书本源码问题解决方案

    (书本是VC 6.0和vs2013不同) 一. 1.1.点击右键属性->配置属性->C/C++->附加包含目录:里面添加DirectX SDK的include文件路径:(如:D:\3 ...

  8. 骨灰级程序员告诉你,怎样学习编程,才能快速从0基础,变成编程大师

    本文章向大家介绍怎样学习编程,才能快速从0基础,变成编程大师,主要包括骨灰级程序员告诉你,怎样学习编程,才能快速从0基础,变成编程大师使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价 ...

  9. 《Windows游戏编程大师技巧》(第二版)第1章(上)

    第1章 学海无涯 "Oh, you want some too?!?" -Hudson, Aliens Windows 编程就像是一场由来已久并还在进行着的战争.尽管游戏程序员曾经 ...

最新文章

  1. ibatis主键自动生成
  2. 基于springboot实现的仓储管理系统
  3. 保护个人信息安全之法律思考
  4. excel生成sql
  5. 中国工业节能减排产业项目盈利模式及投资风险预警报告2021-2027年
  6. 【教师节福利】长大后我就成了你
  7. webconfig和appconfig中出现特殊字符如何处理
  8. 连接SQL Server文件集锦
  9. MySQL + MyBatis 批量插入时存在则忽略或更新记录
  10. win10配置mysql8.0_Win10下mysql 8.0.20 安装配置方法图文教程
  11. node 连接mongodb
  12. 信号与信号分解理解总结
  13. [转]经典正则表达式
  14. BZOJ1108 [POI2007]天然气管道Gaz
  15. 写了三年程序,我25了.
  16. oracle临时表空间占用率过高,ORACLE 临时表空间使用率过高的原因及解决方案
  17. mbedtls 探索
  18. 第一章:状态化流处理概述
  19. Android多国语言的国家代码
  20. 数据结构之一元多项式

热门文章

  1. 《机器学习实战》笔记(01):机器学习基础
  2. 密码学专题 文件编码格式
  3. C++primer 第 3 章 字符串、向量和数组 3 . 3 标准库类型vector
  4. c++面向对象高级编程 总目录
  5. SDP协议 学习笔记
  6. 补肾分男女,养肾如养命
  7. 开发人员眼中最好的代码编辑器是谁?
  8. Notepad++ 6.0 发布,优化了大文件加载性能
  9. MySQL 企业监控器 2.3.10 正式版发布
  10. 解决:springcloud eureka 注册的服务config-client 状态Status:UNKNOWN (1)