编程语言:PHP & Swoole 与 Java、Go
来自 SwooleVIP 群内一位成员的问题
- 感觉
Swoole
越来越复杂了,虽然特性也变得更强,可惜在项目组里面根本推不动,而且协程后需要注意事项也很多,稍不注意可能就是连接忘了回收,连接错乱的风险(当然有defer
之类的可以规避) - 学
PHP
的,基本上都是半路出家,或者大部分培训机构的,不招他们进来吧,项目赶不完,招他们吧,都是得过且过的学习性格。 - 稍微高端一点的特性,几乎推不动,他们还会反问,花时间看这个,为啥不学
go
呢?毕竟go
是官方自带 - 搞得我们现在新项目(国内龙头电商),基本上都用
Java
了,也不知道咋说。。。用PHP
确实太多只会做简单crud
Rango 回答
Swoole4
现在是越来越简单了,现在的协程比以前的异步回调好用。你应该使用社区内成熟的框架,比如Hyperf
、Swoft
、EasySwoole
、MixPHP
。直接基于Swoole
开发很容易犯错,这需要开发者具备更高的素质。而基于框架之上开发应用,无论是Swoole
还是Java
、Go
对于使用者来说难度是一致的。- 大多数
Java
、Go
的工程师其实也都是用别人写好的框架,所以简单。如果是自行写一个多线程的Java
框架,类似于Spring
,这很困难。 - 也不只是
PHP
的工程师是CRUD
,大部分做Java
、Go
的程序员也一样是在做CRUD
的工作。并没有什么差别。提升对整个技术栈的理解深度、技术把控能力才是最重要的。 Swoole4
的协程 和Go
完全一样,但是PHP
语言更简单易用。Go
是强类型静态语言,没有泛型支持,面向对象也不完整,更适合搞底层软件的开发,各种组件生态也没有PHP丰富。如果你是从事服务器端应用开发用Go
效率远不如PHP
- 编码、工程实践、抽象、业务理解、服务治理(包括性能、稳定性、健壮性、可用性、可扩展性)、架构设计,这些方面的能力与语言无关,编程语言对于优秀的工程师来说只是一个顺手的工具。掌握两个一模一样的技能,比如用
PHP
、Go
、Java
开发服务器后台程序的技能几乎是同质化的,实际上意义不大,浪费了时间。 PHP
是很多有优势的,可以让工程师不再花时间用在对于语言技术栈的学习上,熟练掌握PHP
整个技术栈只需要2-3
年即可,其他的语言虽然功能上更强大,但是需要程序员花费更多时间用在学习语言API
、运行原理、各种类库和工具上。时间需要3-6年才能达到精通的水平。PHP
工程师因为精通这门技术更容易,反而可以把宝贵的时间投入到更高层面的工作上。PHP-FPM
的健壮性是有目共睹的,算得上是工业级的技术。而Swoole
目前也越来越成熟了,健壮性也越来越高。Swoole
是一个帮助PHP工程师在PHP-FPM
的Web
编程之外功能范围的一个扩展,PHP
工程师可以获得更大的操作空间。而不必花时间去重新学习一门新的编程语言技术栈,这通常需要几年时间才能完成,而学习掌握Swoole
一般来说3-5
个月即可,毕竟Swoole
其实也是PHP
技术栈范畴之内。
关于半路出家、学历低等问题
一个工程师是否优秀,很大的程度上取决于他的技术思考深度、持续学习能力。很多人说自己是非计算机专业、半路出家、学历不够高。我觉得这个并不是问题,以上并不妨碍你去学习与思考。
大部分人没有到拼天赋的阶段,我一直相信一万小时理论,如果你能坚持在技术上保持专注,进行大量工程实践,日积月累,大概率会成为这个领域的专家。
相关博文
HP & Swoole 与 Java、Go 等技术选型答疑