最近,我通过一个客户端的Drupal应用程序第一次接触PHP(5)。体验当然没有什么困难(例如,文档很好),但是我从来没有想过,“这真的很聪明!”或“哇,这很有趣!”而且,我无法准确预测函数的命名方式,也无法确定要遵循的指导原则。
例如,与Ruby相反,Ruby的一切都是对象,方法是可预测的并且是伪多态的,而使用块则很有趣(仅举几个例子)。其他语言也可以作为对比:Python的列表理解改变了您对迭代的思考方式,C通过其指针和位操作将您带回了硬件,JavaScript凭借其无名的功能和对哈希的高级支持甚至是SQL都令人惊讶地很棒硬性迫使您欣赏数据并进行相关考虑。
因此,请注意php的重点是什么?语言的总体设计理念是什么?我知道php总体上并没有享有很高的声誉,但是我一直听说这是一个感知问题,原因是大量的非专业开发人员都擅长复制和粘贴代码。
编辑:
好,因此,共识是PHP是Web程序员的猴子。我可以接受。我只是在寻找见识,但我想我已经有了。我当然很欣赏mod_php / libphp例如。而且我能够在两周内将我的应用程序发布出去,而没有任何以前的php经验,所以我想这也说明了一切。
感谢您的帖子。
PHP是HTML嵌入式脚本语言。它的大部分语法是从C,Java和Perl借来的几个特定于PHP的独特功能语言的目标是允许网络开发人员编写快速动态生成的页面。
换句话说,实际上并没有一种设计理念:完成工作是各种想法的混合和融合(显然是继承自Perl,呵呵)。
PHP的设计理念:
D'oh!
PHP的重点是迅速完成工作,而不是聪明。这并不是说您不会用PHP编写漂亮,干净,面向对象的代码。我认为大多数PHP程序员出错的地方在于,因为您can将PHP嵌入HTML,所以您必须这样做。我自己的PHP代码是严格面向对象的,并且根本不包含任何嵌入式代码(除了初始页面之外)。
并且正如您所指出的那样,PHP有很好的文档记录,对您的许多竞争对手来说,它是您无法说的。
您必须记住的是,PHP是一场革命。当Rasmus Lerdorf创建PHP时,对于动态站点确实没有其他选择。好吧,有CGI-GATEWAY(基本上是php),涉及编写您自己的C exe来服务页面-有一种叫做ASP的东西,但那当时还很垃圾,只在很少的Windows盒上运行。网络。
您可以说这是它的理由,或者它的设计理念是,它是网络上第一种大众市场的脚本语言。它的设计并没有那么大,这就是为什么看起来有些混乱的原因,但是它确实起作用。
关于功能命名/约定,当然背后没有任何设计哲学。除非您将不一致视为设计理念:)
从一本PHP书中有:
PHP是Apache软件基金会,它是最受欢迎的Apache Web服务器附加组件模块,约占Apache的53%具有PHP功能的HTTP服务器。PHP特别适合网络数据库应用程序由于其Web和数据库环境。尤其是,嵌入脚本的灵活性HTML页面中的内容易于集成HTML演示文稿和代码。的数据库层集成支持是也很棒,超过15可与之交互的库几乎所有流行的数据库服务器。
接着讨论以下优点:
- 开源
- 灵活地与HTML集成
- 适合复杂项目
- 快速运行脚本
- 平台和操作系统便携式
- 社区的努力
我知道这并不能真正回答您的问题,但是也许它可以使您对PHP的使用有个更高的了解。
来自:休·威廉姆斯和戴维·莱恩。 使用PHP和MySQL的Web数据库应用程序。第二版。
PHP是使用Perl语法的HTML文档的服务器端包含系统。从那时起,它一直在试图超越其遗产。
做你想做的事情
我认为php的优点是您可以快速启动并运行,并且对初学者非常友好。我学习的第一门语言是学校里的Java,因此PHP非常容易上手。当我学习Java时,第一次遇到OO概念就很困难,而且我并没有完全理解。但是,由于您不需要在PHP中使用OO,因此非程序员可以轻松地学习语言基础,然后继续学习对象。
我同意这种语言有点混乱,但是它确实支持Facebook,Digg和Yahoo的某些部分。除了Twitter,真的不能对Ruby(更确切地说是rails)说同样的话。