php协程
1.语法:PHP 的语法看起来就像没有经过精心设计一样,很随意。有的语法看似很方便(用点来连接字符串), 但是却为之后扩展造成了很多麻烦(点没法用于访问对象的成员), 再比如比较蛋疼的命名空间的语法。Python 相比之下要好一点,但是 Python2 和 Python3 直接存在着一些不兼容的语法变动。
2.编写 HTML 模版:PHP 可以非常方便地直接用来编写 HTML 模版,Python 需要借助其他的语言或库来实现。
3.包管理器:PHP 的包管理器(PEAR)和扩展管理器(PECL)恐怕根本没人用,这导致引入一个新依赖的成本很高,于是很多人倾向于自己造轮子而不是引入现成的库。Python 有统一的包管理器,虽然也有问题,但要比 PHP 好得多,引入库之后的命名空间管理也要比 PHP 好。
4.扩展和库:PHP 和 Python 都可以用 C 来编写扩展。相比之下 Python 可用的库要更多一点。
5.运行方式:PHP 运行方式比较单一(php-fpm, mod_php), Python 则可以以 fastCGI 运行,也可以自行监听端口来处理请求。
6.性能:因为 PHP 运行方式单一,opcode 缓存方案也比较成熟(APC, opcache),缓存 opcode 之后运行速度很快。Python 则可能需要更多地自行优化性能。
7.类型系统:PHP 和 Python 都是动态类型。PHP 对类型判别比较模糊,有很多陷阱,Python 则严格一些。
8.学习成本:PHP 和学习成本都不是很高。PHP 优势在于有比较完整的官方中文文档,而且 PHP 应用领域只有 Web, 所以需要学习的内容较少。Python 因为学习路线较多,不太容易找到适合自己的教程和资料。
9.社区:PHP 的资料遍地,但是高质量的中文社区较少,普遍对官方的新功能不是很关注。Python 则要好一点。
10.应用领域:PHP 仅在 Web 后端方面被使用,Python 应用领域更广泛一点,如果需要将逻辑移植到其他平台(如桌面), Python 要方便一点。
㈡ swoole和workerman哪个更易开发
性能上Swoole毕竟是C语言开发的,在某些地方如内存管理、数据结构、通信协议解析上肯定要比PHP开发的workerman高。
功能上swoole提供的高级特性很多,列举几个workerman没有的吧,比如SSL/TLS隧道加密、http2.0、异步mysql驱动、异步redis驱动、异步的http/websocket客户端、process、lock、atomic、table。另外Swoole 2.0内置了PHP原生协程的支持,PHP代码也可以使用类似于Go语言的协程来实现高并发的网络服务器。
外部依赖上workerman需要依赖很多额外的第三方PHP扩展来实现,局限性比较大,这些扩展并非是PHP官方维护的,维护性方面良莠不齐,有些扩展连PHP7都不支持,数年没人维护。而Swoole基本上无依赖,底层的代码全部可控。