PHP和Java是两种截然不同的哲学,前者致力于简化web开发(quickdirty),而Java则是大而全、厚重、严谨只要按照流程开发很难犯错。不管怎么说,用PHP和开源代码创建小项目的速度是任何其他语言都无法企及的,搭建个人博客或者小网店,可能只需要半个小时(或者更短)就可以上线。
在PHP发布7之后,类型方面有了很大的改善,语言本身也因此变得更优雅。不过,PHP对于web开发来说只是工具箱中的一项工具而已,对于高级程序员而言,工具箱里不能只有PHP。另一件高级工具就是Golang,它对于PHP而言能够起到1+12的效果。
Go在12年前被Google发明,历经考验,越来越成熟。和PHP不一样,Go是一种静态强类型、编译型、并发型的语言,Go的优势都是PHP所不具备的。
作为一种系统语言,Go能够为PHP带来强大的可伸缩性(Scalability)。
RoadRunner是一个Go语言写成的基础架构(infrastructure)级别的框架,类似的框架有用C++写成的Swoole。Swoole这个框架的基础上还发展出了Swoft、Hyperf、EasySwoole,这篇文章里我们就不深入聊了。
从上图来看,RoadRunner在高流量场景中的性能比非阻塞的ReactPHP更加优越,同时甩开PHP-FPM等传统模式好几条街。
什么时候会用到Golang呢?
简单地来说就是PHP遇到瓶颈的时候,比如PHP耗费了大量的内存、反复的读写数据库、读取巨大的文本文件等等,Golang可以用来救场。简言之,Golang可以帮助PHP解决一些非常艰巨的任务。
为什么不用C/C++或者Java呢?
执行效率方面,C/C++完胜大部分其它语言,但是开发效率不敌Golang。Java开发效率比C家族高得多,但是它在环境方面的开销巨大,而Golang则显得轻巧而优雅。总而言之,Golang兼具高执行效率和高开发效率,对于奉行quickdirty哲学的PHP来说,可谓是意气相投、相得益彰。
学习Golang会让你成为一个更好的程序员
Golang的哲学是lessismore,它非常强调简单性和标准型。有了gofmt和golint的协助,Golang程序员能够写出大致一致的标准代码。总之,Golang奉行的是极简主义。
在web开发这个领域使用一种编译语言,其实可以让你从另一个角度来看待web开发。
你可以在PHP代码中直接使用Go
如果你的能力够高,当然可以写自己的底层框架,或者扩展现有的框架(比如RoadRunner),不过也有简单的方法可以利用Go的高效率。
比如你可以把一些对PHP来说非常繁重的工作写成Go服务,你可以通过MQ或者API与之通信。
Golang的特殊武器:并发
总之,Golang是一项非常值得学习的语言。另外一个语言是Rust,艺多不压身,多学一点总是好的。
注:本文图片来自网络,版权归原作者所有。如有版权疑虑,请联系我们删除。
闲儒勿忘三连,3q