@
ihipop 兄弟,看了一下评论,我也是一个多年的 php 开发了,很理解你的心情。
不过我觉得 php 确实特性越来越多像 java 的东西,之所以说像 java,是因为基于 class 的这套 oop 形式和 java 很像,当然早一点的 oop 语言都是 class based。其实本来动态语言有更多自己的特色,比如元编程的能力,ruby 和 python 基本都有。而 php 则一直在向 java 这样的“工业级编程语言”靠齐,本身动态语言的优势都在忽略,而 java 本身很多方式是因为静态语言不得不如此。这样一学下来,淡化了优势,反而加强了一些强加上来的东西。
php 的使用相当多,走向正规化是必然。比如框架,包管理,,,学习成本因此而上升也是绝对值得的。但就像 python 和 ruby,lisp 之类的元编程方式都不一样。不是说像 java 就能成为“工业级编程语言”,从 5.x 开始,php 语法就越来越像 java 了。
还有一点不太赞同,web 这一块,瓶颈基本都在 io,不存在说你换成 swoole 常驻了之后瓶颈就变成 cpu 了,只要不是做数值运算,基本瓶颈都是在 io。swoole 这种异步模式,其他语言里基本都不少见,像 tornado。也谈不上什么颠覆性的东西。编程模式和常见的 fastcgi 不一样,内存泄露的可能性增加,难度增加。要说 php 做通用编程,先不说别的,语言层面支持异步吗?现在靠 swoole 一个扩展支持,但是语言层面配套跟不上啊,swoole 只不过相当于用 c 开了个后门而已,比如你说的协程库什么的。而且说到并行,现在有成熟的线程实现吗?仅仅在 unix 下有一个多进程实现,更别说其他的通用库了。所以说,php 现在离通用语言还是很远,而社区似乎也没有搞成通用语言的趋势。
php 向下兼容不错,但我有时候觉得还不如像 python 搞个不兼容的新版本出来,彻底整改。py2 到 py3 虽然很多人吐槽,但实际现在 2.7 已经停更了,大部分第三方库已经迁移到 py3 了,升级完成得很不错了。