PHP 是最好的语言?关于 PHP 开发未来的 6 点建议

2018 年 5 月 16 日 开源中国


PHP 为什么是最好的语言?你肯定听过这个段子:


女孩:“你能让这个论坛的人都吵起来, 我今晚就跟你走。”

程序员: “PHP是最好的语言!”

论坛炸锅了, 各种吵架…

女孩:“ 服了你了, 我们走吧你想干啥都行。”

程序员: “今天不行, 我一定要说服他们, PHP必须是最好的语言。”


上面虽然是程序员的玩笑梗,但“PHP 是最好的语言” 这句话最早可能出自 2001 年 7 月的 PHP 官方文档。


PHP is the best languages for web programming , but what about other languages ?

PHP 是最好的网络编程语言,那么其他语言呢?

—— PHP and other languages





抛开玩笑梗,认真来说,PHP 的确称得上最好的语言之一。


首先,PHP 入门简单,容易掌握,对新手友好,而且程序健壮性好,不容易出现像 Java 、 C++ 等其他语言那样复杂的问题,如内存泄漏和 Crash ,跟踪调试相对轻松很多。


再者,功能函数应有尽有,不需要重新造轮子。PHP 官方提供的标准库非常强大,各种功能函数包括MySQL、Memcache、Redis、GD图形库、CURL、XML、JSON等等都能找到,免除了开发者到处找库的烦恼。


另外,PHP 文档详细易懂,每个函数都有仔细的说明和使用示例。第三方类库和工具、代码、项目也很丰富。开发者可以快速、高效地使用 PHP 编写开发各类软件。


可以说,目前为止市面上仍然没有出现比 PHP 更简单易用的编程语言。然而,自 PHP 诞生到现在的 20 多年间,从 Web 时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js 、 GO 、 Python 不断地在挑战 PHP 的地位。PHP 语言的局限也开始凸显,PHP 语言未来在哪里?PHP 程序员当如何应对未来的变革?


性能问题


PHP  最令人诟病的一点非性能莫属,作为一门动态脚本语言,PHP  的优点是开发方便效率高,缺点就是性能差。在密集运算的场景下比 C 、 C++ 相差几十倍甚至上百倍。另外 PHP 不可以直接操作底层,需要依赖扩展库来提供 API 实现。


使用 PHP7


PHP7 版本对 Zend 引擎做了大量修改,大幅提升了 PHP 语言的性能,使用 PHP7 可以使程序性能瞬间翻倍。即使是 WordPress 这样重量级的软件运行在 PHP7 都能有上千 QPS ,相当于一台服务器每天就能处理 8000 万次请求。使用 PHP7 ,做好 MySQL 优化,使用 Memcache 和 Redis 进行加速,这套技术架构完全可以应对相当大规模的系统。除了某些亿级用户的平台之外,一般规模的系统完全没有压力。


学习 C/C++/GO


PHP 程序员可以学习一门静态编译语言作为补充实现动静互补,C/C++/Go 都是不错的选择。而且静态语言的编程体验与动态语言完全不同,学习过程可以让你得到更大的提升。掌握 C/C++ 语言后,还可以阅读 PHP 、 Swoole 、 Nginx 、Redis 、 Linux内核 等开源软件的源码,了解其底层运行原理。


现在最新版本的Swoole提供了C++扩展模块的支持,封装了Zend API,用C++操作PHP变得很简单,可以用C++实现PHP扩展函数和类。


管理规范


Composer


Composer 出现后,PHP 的依赖管理可以变得非常简单。程序内依赖一些类库和框架,直接使用 Composer 引入即可,通过使用 composer update 安装依赖的包。解决了过去加载外部库的各种难题。Composer 也有国内镜像,速度非常快。现在绝大部分PHP开源的项目都提供了 Composer 的支持,建议大家在项目中使用 Composer 来解决 PHP 代码包管理的问题,不要再使用下载源码、手工 include 的原始方法。


PSR


PSR 是 http://www.php-fig.org/ 组织制定的PHP语言开发规范,约定了很多方面的规则,如命名空间、类名规范、编码风格标准、Autoload、公共接口等。现在已经成为PHP技术社区事实上的标准了。很多知名的 PHP 框架和类库都遵守了 PSR 规范。PHP 开发者应当学习掌握 PSR 规范,在开发程序时应当尽量遵循 PSR 规范。


应用扩展


Vue.js


PHP 程序员除了写后台程序之外,还有很大一部分工作在展现层,和浏览器前端打交道。2017 年你还在用 jQuery 操作 DOM 实现界面渲染吗?已经完全 out 了。现在用 Vue.js 可以非常方便地实现数据和 DOM 元素的绑定。通过 Ajax 请求后台接口返回数据后,更新前端数据自动实现界面渲染。


如果你不光要写 Web 程序,同时还希望兼顾 Android 、IOS 、PC 客户端等平台,React Native 是一个不错的选择。


Swoole


PHP 还局限于做 Web 网站吗?Swoole 是一个异步并行的通信引擎,作为 PHP 的扩展来运行。Node.js 的异步回调 Swoole 有,Go语言的协程 Swoole 也有,这完全颠覆了对 PHP 的认知。


使用 Swoole PHP 可以实现常驻内存的 Server 程序,可以实现 TCP 、 UDP 异步网络通信的编程开发。过去PHP只能做一个 Web 网站,现在使用 Swoole 可以做 Java 、C++ 才能实现的通信服务,比如 WebSocket 即使通信、聊天、推送服务器、RPC 远程调用服务、网关、代理、游戏服务器等。


可以说,Swoole 是每位 PHPer 都需掌握的必备技能。但 Swoole 的使用门槛对新手来说相对较高,需要付出一定的精力成本。


所以这一次,我们邀请了 Swoole 开源项目的创始人 —— 韩天峰参加「上海源创会」,为我们介绍 Swoole 3.0 全新的 PHP 协程编程模式,以及 Swoft 协程框架的使用,基于 Swoft Cloud 提供的各类组件实现 PHP 微服务架构。


除此之外,5 月 27 日(周日)上海源创会 还邀请了黄励博(又拍云系统开发高级工程师)、曲骏(安畅混合云服务架构团队负责人)、朱明智(个推B2D研发部平台研发专家)、许雪里(XXI系列开源软件作者,美团点评工程师)四位行业大牛。以架构为核心,与你进行一场关于面对面的技术对话。


扫码报名,与业内大咖和更多小伙伴当面交流。(微信)






注:以上内容有引用和参考 2017年PHP程序员未来路在何方  韩天峰

链接:https://segmentfault.com/a/1190000008888700?utm_source=tuicool&utm_medium=referral





推荐阅读

被 Oracle 玩弄于股掌,Java 会因此被 Kotlin 取代吗?

微软终于修复了 Notepad 长达 33 年的换行“Bug”

没想到吧!Intellij IDEA 神器还有这些小技巧

ARM 授权费用太贵科技巨头欲转向开源架构 RISC-V

谷歌终于开放 ".app" 顶级域名注册

点击“阅读原文”查看更多精彩内容

登录查看更多
0

相关内容

PHP 是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入 HTML 文档的脚本语言,语言的风格有类似于 C 语言,被广泛的运用。PHP 具有非常强大的功能,所有的 CGI 的功能 PHP 都能实现,而且支持几乎所有流行的数据库以及操作系统。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
从零开始用Python写一个聊天机器人(使用NLTK)
AI研习社
10+阅读 · 2018年12月27日
各编程领域最好的入门书籍
程序猿
28+阅读 · 2018年7月29日
在公司一直“涨薪”的程序员都关注了这些......
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
2年Java经验,真的就拿不到30万年薪吗?
程序员观察
3+阅读 · 2018年4月8日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
盘点 | 2017 年关于 Python 的 12 件大事
CSDN
3+阅读 · 2018年1月1日
EfficientDet: Scalable and Efficient Object Detection
Arxiv
6+阅读 · 2019年11月20日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
18+阅读 · 2019年1月16日
Arxiv
3+阅读 · 2018年8月27日
Arxiv
8+阅读 · 2018年5月15日
Arxiv
8+阅读 · 2018年4月12日
Arxiv
17+阅读 · 2018年4月2日
VIP会员
相关VIP内容
相关资讯
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
从零开始用Python写一个聊天机器人(使用NLTK)
AI研习社
10+阅读 · 2018年12月27日
各编程领域最好的入门书籍
程序猿
28+阅读 · 2018年7月29日
在公司一直“涨薪”的程序员都关注了这些......
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
2年Java经验,真的就拿不到30万年薪吗?
程序员观察
3+阅读 · 2018年4月8日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
盘点 | 2017 年关于 Python 的 12 件大事
CSDN
3+阅读 · 2018年1月1日
相关论文
EfficientDet: Scalable and Efficient Object Detection
Arxiv
6+阅读 · 2019年11月20日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
18+阅读 · 2019年1月16日
Arxiv
3+阅读 · 2018年8月27日
Arxiv
8+阅读 · 2018年5月15日
Arxiv
8+阅读 · 2018年4月12日
Arxiv
17+阅读 · 2018年4月2日
Top
微信扫码咨询专知VIP会员