天涯论坛

 找回密码
 立即注册
搜索
查看: 23|回复: 3

2019 为么咱们还会继续运用 PHP ?

[复制链接]

3042

主题

2万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109064
发表于 2024-10-4 18:52:28 | 显示全部楼层 |阅读模式

们来开门见山地说。  HP 是一门奇葩的语言。它既不快,语法又不美丽。还遵守良好的软件研发实践。 但我还是运用研发非常多软件。 那样问题就很显著了 为何今天还在运用 PHP ?

除了个人理想主义的偏好以外,还有非常多理由。这才是咱们要讨论的范围。为何选 PHP 做为我的 Web 研发语言?

PHP 是什么?

「PHP 表率什么意思?」 这么问,「PHP 是什么?」 PHP 是一门编写 web 页面的语言,底层运用 C 语言实现,运用 HTML 的标签语法包裹代码。PHP 一般跑在服务端,与 web 服务器协同工作,负责把 HTML 加工完返回给拜访者。

PHP 最初的意思是 「 Personal Home Page 」。由于这完全限制了运用该语言进行通常运用道理和可取性,因此该语言此刻表率「 PHP:Hypertext Preprocessor」。这种写法被叫作为递归缩写(一种全叫作中引用自己的缩写)。 极客们都爱好用这种名字。

PHP 能做什么?

PHP 能用来做什么?一般来讲 PHP 能做任何你想在 web 服务器上实现的东西。 例如说做一个博客。实现一个 SAAS 应用完全不在话下。写一个临时处理数据的脚本是得心应手。又写了一个繁杂的脚本,某一天忽然成为了一门成功的软件业务?过去经常出现

倘若你不相信我,能够看下 PHP 官网列出运用场景:

服务端脚本

命令行脚本

编写桌面应用

我不太鼓励最后一项,但它确实可行。然则前两项确实是很棒的理由 。

这就引出了一个重要且没法回避的事实...

PHP 无所不在

认识喜欢 PHP 的理由有非常多,可能最给力和有效的理由是:它能够在网络的任何地区运用和运行。倘若你仔细寻找,你买到每月最低3美元的托管账户可能能够运行 Python 或 Ruby 的 Web 应用程序。但它肯定能运行 PHP 。这寓意着无论什么时候你都能够依赖 PHP 。

由于 PHP 能够运行在任何地区,并且它容易上手,非常多非常受欢迎的软件都是用 PHP 写的。 WordPress是对我影响最大和最熟练的例子,除此之外,像 Joomla , Drupal , Magento , ExpressionEngine , vBulletin (是的,它仍然存在), MediaWiki 等这些工具,它们都在服务器上运行 PHP 。

不仅如此,PHP 应用框架更加是多得数不堪数, 例如:Symfony , Zend , Laravel , Aura , CakePHP , Yii 乃至是古老的 CodeIgnitor 框架。当然你能够为其它任何一门语言制作有些长度相当的 Web 框架列表。例如常用的 Web 语言像 Python , Ruby ,或 Node/JavaScript ,你乃至能够累积一个数字竞争列表来跟 PHP 比较。但运行 PHP 的网站数量庞大到没法估计。

WordPress 自豪地声叫作在互联网上有 30% 的用户量。 你乃至不需要相信这个说法就会认识到许多的互联网应用必须运用 PHP 即使这个说法乃至能够想象成是真的。

PHP 的优点

动态化特点

PHP 和 HTML 能够非常融洽地工作在一块。将 file.html 修改为 file.php ,就可在 <?php  和  ?> 标签里编写 PHP 代码,并且大部分的 Web 服务器默认配置便是能够直接运行 PHP 脚本。正由于其门槛非常低,不需要懂太多编程知识的菜鸟程序员能够直接上手操作,以至于产生了非常多低品质的代码。

由于其易学性,海量的菜鸟程序员涌入,暴露出来另一个 PHP 始终被人诟病的问题:PHP 并对自己是最好的 Web 服务器端语言有清晰的远景,当然没为此做过太好的设计。引起走向了另一个结果,来自全世界各地松散的合作,大杂烩般地贡献代码和想法,难以避免地,有有些坏的想法渗入其中。

持有强大的面向对象包管理是此刻 PHP 中的一种标准

Composer 是 PHP 的加分项。

在 PHP 的研发中,经常会有有些奇葩的东西被发布出来。最著名的栗子当属 PHP 5.3 (广泛的被视为 PHP 的第1个现代化版本 )中引入 goto  声明。

类似的问题是在 PHP 成长过程中产生:面向对象最初是做为一个有缺陷和有限制的概念来实现的,标准库中充满了不一致的名叫作和参数排序,并且(举个近来备受关注的栗子)在 PHP 5.3 中 :: 操作符没法识别时,解析器会抛出可读性很差的报错信息:语法错误 (T_PAAMAYIM_NEKUDOTAYIM) ,倘若不看文档,你能用英文来理解这个 T_PAAMAYIM_NEKUDOTAYIM 标示的意思吗?

然则此刻,PHP 已然完全支持 OOP。很少语言拥有像 PHP 这般类似 Java 的 OOP 实现。另一,与 Java区别的是,PHP 有一个单独的并持有广泛支持的包管理器,叫作 Composer。它非常的好用,并且不容忽略的一点是它能够方便地引用优秀守护良好的库,拥有很高的易用性。

PHP 的高速发展

经过这些事实发掘, PHP 正在以有趣的方式发展着。它正逐步作为像java同样功能齐全的面向对象语言(更好或更糟糕),正在为函数式编程供给简单的抽象,这能够说是当前的热点。并且,正在发展一套非常棒的工具, PHP 爱好 Composer , 并有充分的理由 ---  由于它在有些大型开源项目的协同工作上做出了值得赞扬的奋斗.

当然,咱们不该该忘记当前的热点:PHP 在 PHP7 系列版本中的发展取得了速度上的提高。这被广泛认为是由于 Facbook 显现的 HHVM 导致的,在短期内,存在 HHVM 的发展速度会破坏 PHP 社区的危害,但事实并非如此,相反,PHP 的发展速度快得多,以至于人们几乎忘记了 HHVM 的存在。

PHP 有一个巨大的社区;它对新手友好。

倘若你决定运用什么很酷的新技术,我认为经常得到很少关注的是与语言达成协议的方式。学习PHP是什么感觉? PHP教程很好找,质量一般很好。

PHP流行的一个缺点是,你会从哪些对工具不足认识的人那里找到有些那样好的教育从某人那里学到的“最佳实践”是十年前的。但总的来讲,这很少见,我不认为它应该让你灰心。忽然发掘自己运用了几个月的最佳实践并不是最好的是很少见的,不是一个大问题。

PHP 与其他语言的比较

接下来咱们要对比下 PHP 与其他的语言,这些语言需满足以下需求

开源寓意着你能够自由、免费地运用查看底层语言程序;

应用于 Web 研发行业:不必定是专注于 Web 研发然则在 Web 研发中有比很强的应用;

高阶动态语言:具备动态语言的特性,大部分面向 Web 应用的语言兼具此特性;

足够大的社区:有非常多满足以上要求然则只是在小范围运用的语言,咱们运用这最后一个要求她们过滤掉。

为何运用 PHP?而不是 JavaScript?

许和 PHP 比较的最重要的语言是 JavaScript。现代研发需求每一个项目都最少会一点 JavaScript 来进行客户端研发和交互。借助 Node,这使得在服务器上运用 JS 变得相对简单。在服务器上和客户端“同构”运用相同的语言非常吸引人。

如同 PHP,JavaScript 是一个兼容并蓄但有时丑陋的语言,有非常多的瑕疵和“陷阱”,但 JavaScript 在过去十年变得非常快,因此他的状况是真实的。为何选取 PHP 而不是 JavaScript?你已有专业知识在 PHP 运用库。否则,我认为 JavaScript 或许是个更好的选取

PHP 对比动态服务器页面 (.Net Core)

动态服务器语言起源于一个用于网友编程的 Microsoft 语言。他和 PHP 非常直接类似。但他运行在 Windows 服务器环境。这被 ASP.net 取代了。此刻已被 ASP.NET Core 取代。后两者此刻是 PHP 同样的开源语言。而我个人从在任何变体中写过一点 ASP。

倘若运用且更爱好 Microsoft 服务器的话,我会更爱好 ASP。其他状况,请给我 PHP。两者社区的规模和体积可比性。

我应该运用 Ruby 还是 PHP?

Ruby,尤其是 Ruby on Rails,在过去十年前 非常 受欢迎。Ruby 依然是一个备受喜欢的语言,这在我看来他比 PHP 优雅。便是说,他的社区较小。同期我认识到 Ruby 已然再也不是 "热门语言"(被 JavaScript 取代了此角色)。Ruby 的优雅,并且有足够多的人善于运用因此呢我不会避免他。但招聘已熟练 Ruby 的人依旧比招聘 PHP 要难。(虽然我认为通常的 Ruby 研发者水平比相同的 PHP 研发者要高。)

Python vs PHP:谁更好有些

最后一种与 PHP 一对一比较起来有道理的是 Python 。 Python 的运用场景要更加多,相针对专注于 web 研发的 PHP 来讲(尤其是在数据统计与分析上面)。况且人们广泛都觉得它是一种更为更稳定和优雅的语言。

就像 Ruby 和 JavaScript 同样, Python 在服务器上运行要比 PHP 稍微麻烦一点。然则它是一种非常完美的语言,况且比起 PHP 的运用更具多样化,我认为它是比 PHP 更流行的语言之一,况且在其他方面(例如:各样第三方的库、专业技术知识的获取、招聘求职)都是同样的。

PHP vs Go 语言?Scala语言?Java语言?等等

起始说到过,许多语言在做比较时或多或少会有有些类似地区这儿非常多的语言能够拿来做对比,因此呢简单的聊几个:

java 非常受欢迎,并且效率很高。一般被用来搭建安卓应用程序,桌面应用程序,和 web 端应用。不外,它不是动态类型的,它有更好的性能保准,但很适合Web 编程。

Go是 Google 支持的正在发展的一门新语言。它专注 web 服务。然则这块相比 PHP 还是有些不足(更像 C 语言),它的执行速度火速然则社区相对有限。

Scala 是一种流行的运行在内存区(Java 兼容)的语言,似乎越来越受欢迎。它比 PHP 设计的更优雅,然则除此之外,似乎更加多了。

另外,我觉得这些分析足够能够做出选取了,然则你有更加多的选项能够去考量,不外最后我的替代方法将会思虑 PHP。

需要按需选取编程语言

有了上面的比较,为何还要运用 PHP ?上文我已然提过了有些 PHP 里坏的设计,有有些我经常性会经历,例如在『查询类型的函数』里,这些函数needle 和 haystack 次序不一致,在代码补全的环境下,我还是会掉坑里。

倘若你在构建一个全新的 Web 项目,并且此项目不需要与其他系统交互,并且仅有你一个人在工作,你想试试看其他语言,类似 Python 什么的。然则,你需要晓得的是,即使是这般的一个项目,还是有非常多理由让你选取 PHP。

任何现代化的语言都能够让你构建一个 Web App。每一门语言都有她们不足之处,例如 PHP 便是这般的,PHP 需求你清晰地认识其不足之处,而后才可决策是不是要在项目里运用它。然则针对来讲,我仍然会选取 PHP 来构建我的 Web 项目,就如 Keith Adams 在其 演讲里  说到的:

PHP 的研发效率真不是通常的高。

倘若你有一个 Python 的团队,请运用 Python。倘若你有个合伙人熟练 Java,请运用 Java 来编写你的 SaaS 程序。语言,永远都不是最重要的。





上一篇:PHP研发=高薪工作
下一篇:装修企业的资质是什么意思
回复

使用道具 举报

2990

主题

2万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109218
发表于 2024-10-10 06:24:18 | 显示全部楼层
我完全同意你的看法,期待我们能深入探讨这个问题。
回复

使用道具 举报

3066

主题

2万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99138962
发表于 2024-10-29 12:21:19 | 显示全部楼层
软文发布论坛开幕式圆满成功。 http://www.fok120.com
回复

使用道具 举报

3119

主题

2万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99108641
发表于 2024-11-11 14:38:40 | 显示全部楼层
我们有着相似的经历,你的感受我深有体会。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-22 08:55 , Processed in 0.132581 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.