编者按:在编程领域有不少堪称经典著作,其中包括《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的魅力和不足何

    编程大师论道:PHP的魅力和不足何在2008-07-01 来自:lizhe1985  [收藏到我的网摘] SOA 案例分析系列 学习和实验 SOA 的各方面知识.方法.技术及工具 Snort:入侵检测 ...

  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. python开发工程师面试题-一名python web后端开发工程师的面试总结
  2. warpAffine函数
  3. idea 提示vue插件_Vue + SpringBoot + MyBatis 音乐网站
  4. 快速理解binary cross entropy 二元交叉熵
  5. 五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O
  6. 浏览器字体大小设置_CSS之 浏览器解析样式的过程
  7. 漫话:如何给女朋友解释什么是2PC(二阶段提交)?
  8. 安卓学习笔记01:安装集成开发环境Android Studio
  9. 80-30-010-原理-React模式-简介
  10. winform checkedlistbox不显示复选框_据说90%的人都不知道怎么解决这个Word问题
  11. GMA Round 1 向量计算
  12. 2.Node.js access_token的获取、存储及更新
  13. 玉柴spn码故障对照表_玉柴共轨电喷发动机故障码一览表
  14. Java 高并发编程详解:多线程与架构设计
  15. 浅谈IDEA Scratch files万能的临时文件功能
  16. 万能点位图软件_BoardViewer点位图工具
  17. MATLAB----小波去噪
  18. android中的对话框,Android中的对话框
  19. 国内坐标转换常用投影EPSG
  20. JS阻止浏览器刷新的方法

热门文章

  1. OLED 驱动模块程序代码
  2. 病毒传播建模SEIR与网络传播
  3. linux riot密码,《lol手游》Riot拳头账号密码介绍 Ri...
  4. 中国珍珠养殖产业发展现状分析,淡水养殖仍然占据主导地位「图」
  5. 如何编译ASP.NET Core源码
  6. 【纸牌屋】第一季第一集经典台词
  7. 【shell命令】拆分、合并、排序、比较文件
  8. 设计模式之策略模式(Strategy Pattern)
  9. 全自动英文SEO站群系统 V5.0 发布
  10. 面向对象:待到山花烂漫时,她在丛中笑