在使用 PHP 多年之后,我对 PHP 的优势和劣势已经非常清楚,与后起之秀 Golang 相比,两者已经不在一个重量级。
PHP 更像是 70 kg 级别的选手,脚本语言,极速开发,部署方便,性能可以。
Golang 更像是 90 kg 级别的选手,静态语言,众家所长,部署非常方便,性能非常好。
PHP 的应用主要集中在 Web应用 / API 应用 / 通用脚本。
PHP 部署方面,一般是部署源码。FPM 依赖 Nginx 之类的 Web 服务器;
对于常驻内存 HTTP Server 方面,Workerman 并未普及,Swoole 贴近底层而面临未来版本升级、维护的高成本。
PHP 性能方面,中小型规模应用完全可接受,但一旦服务器数量增多,和 Java 类静态语言的性能差距就会直接暴露出来。
PHP 服务端编程方面,只有 Pcntl 用于多进程编程,比较简陋,Pthreads 多线程不安全,网络编程门槛高,多数在结合框架基础上才能够做一些工作。
Golang 的应用广阔,Web应用 / Web服务器 / 云计算 / 区块链 / 通过脚本,面对各方面都游刃有余,使用上还能带来脚本语言般的体验。
Golang 部署方面,既可以直接 run 文件运行,也可以编译成二进制运行,安全性好。
不依赖 Web 服务器,单文件就可以启动高性能 HTTP Server,资源消耗极少;Golang 实现的流行的 Web 服务器有 Caddy。
Golang 性能方面,可以媲美 C++,从一些知名项目也可以看的出来,Docker、Kubernetes、Caddy、TiDB、go-ethereum 等。
Golang 服务端编程方面,官方内置很多网络库,底层不依赖 C/C++ 实现,协程编程模型的 CPU 效率高、易用。
所以对于未来所有的新应用,我是非常建议使用 Golang 平台进行开发的,PHP 能做的改变不多了。
对于敏捷开发而言,技术栈的积累始终是有价值的,只要找到最合适的地方,比如:一些后台管理系统,PHP 能很好满足这类场景。
Link:https://www.cnblogs.com/farwish/p/12733329.html
来源:oschina
链接:https://my.oschina.net/u/4297759/blog/3276012