回复 《吐槽swoole》

原创
2014/07/28 12:07
阅读数 7.9K

看到这篇博文,深感欣慰。有人喷是好事,说的好的地方对我们是巨大的帮助。实话说口水战没意思,我对这个毫无兴趣,只是为了传播的更广。

后面不会再喷Node.js了,主要原因是:

  1. 我不是资深的Node.js用户,而且swoole和Node.js定位不同,发展方向也不同。没办法公平比较
  2. 避免Node.js的粉丝们来攻击我,我也没空余时间来争吵

关于此文中的内容,我针对性的回复一下:

  1. 无论是swoole还是Node.js,都是解决IO密集型问题的。计算密集型的大家开多个进程都可以用到多核。
    但swoole IO密集部分也是可以利用多核的(基于多线程的EventLoop),Node.js不行。
    下面有Node.js的用户评论了“使用用Cluster”,这个是可以的,但有2个问题解决不了。
    更多细节请看:http://my.oschina.net/matyhtf/blog/289829
  2. redis,memcache,mongodb的异步化。这个我们后续会支持的。swoole才发展不到2年时间,不可能一下子就全部都支持到。
    另外,复杂的业务逻辑,不建议用异步,同步阻塞就好了。swoole提供的异步MySQL不见得有几个人用。
  3. 异步文件读写,这个我为什么敢喷Node.js,我有资格。Node.js用的4个线程阻塞IO模拟异步,遇到大量并发读写文件时,线程数自然就是瓶颈了,所以Node.js的异步文件API不堪大用。
    而swoole用了Linux Native AIO(需要加编译参数开启),遇到大量并发读写文件,一样可以胜任。
  4. 像Node.js这样全异步回调是好事么?未必。各有各的好处和适用场景。异步的程序很难写,维护性太差。所以偏底层追求性能的就用异步,偏应用层面就用同步阻塞。这也就是swoole和Node.js理念上的最大不同。swoole既支持异步,又可以同步。还可以半异步(EventWorker),半同步(TaskWorker)。

另外:

  1. 就像你说的Node.js不仅仅是Net部分,Swoole也不仅仅是Net部分。
  2. 你没看过Swoole源码,我可是看过Node.js源码的,并且做过大量的分析。可能比你还要懂Node.js底层
  3. 你对我博文吐槽部分,有不少错误的地方


展开阅读全文
打赏
3
5 收藏
分享
加载中
从素质上讲LZ确实高很多,作为一个想开始使用swoole的PHPer,我表示工具不在优劣,只有适合不适合……工具只是工具,重要的还是用的人。开发不易,我们都是怀着感恩的心去使用的……
2017/03/18 09:55
回复
举报
支持
2015/05/19 17:00
回复
举报
作为一个nodejs用了两年 php用了4年的程序员来说,两种语言都很优秀,但nodejs真的很多坑,因为它发展的时间不是很长,php7也出了,楼主要留意php7的情况,而swoole看看能不能成为一个php的官方库
最后我想说,这么有空讨论,还不如用这个时间写代码.
作为一个程序员,我明白楼主的心情,但有骂声表示这东西有人用,没人用的东西没人会吐槽.
恨铁不成钢才会骂,但任何钢都要经过铁的时代.
2014/12/24 10:30
回复
举报
个人见解:node.js用的v8引擎,毕竟是为GOOGLE浏览器用的,拿来了v8的优点异步非阻塞的同时也会拿来了V8的缺点,js语言在服务器端不够简单高效,不易维护,V8不适合服务器多核的趋势,多进程的工作模式。 感觉前后端区别挺大的,非把前端的js用到后端,有点勉强吧,为浏览器设计的V8不是为后端服务器专门设计的,是为google浏览器js服务的。swoole作为php扩展更能专注于后端,因为PHP是专门为服务器设计的。我觉得node.js缺点就是v8不是专为服务器设计的。
2014/10/19 19:08
回复
举报
个人的一点见解:从功能方面看,都是高并发环境用的,方式都是异步非阻塞,所以理论上说,功能都差不多。 关键是看实际的测试数据。大项目有没有用swoole的,不间断提供服务的环境下是稳定,强悍。开发这个项目时是否高效,简单,灵活,易维护。swoole中的类库是否强大完善。才能真的了解是否比node.js更好用。希望swoole完善文档和添加更多的示例(可以参考thinkphp文档),引入更多的开发者参与进来。但从php语言和javascript语言方面说,php语言肯定是比javascript简单,高效,易维护的多的多。希望创始人把swoole一只运行下去。对以后的更多版本充满期待。
2014/10/19 18:20
回复
举报
matyhtf博主

引用来自“javacty”的评论

请问swoole使用Linux Native AIO,要添加什么编译参数?谢谢!
这个目前只能修改宏来开启,我们后面会改成可以在代码中自行选择。敬请关注
2014/08/04 20:43
回复
举报

引用来自“风亦流云”的评论

有争议这是好事,而且更多选择会更好,也为国内这样优秀的项目加油*\(^_^)/*

引用来自“matyhtf”的评论

感谢!
是的,对于异议的处理和包容性方面,我更支持matyhtf,想2楼说的有异议是好事,但是用一种更平和的心态讨论,更有利于技术的发展。
2014/08/03 08:40
回复
举报
请问swoole使用Linux Native AIO,要添加什么编译参数?谢谢!
2014/07/29 00:29
回复
举报
matyhtf博主

引用来自“风亦流云”的评论

有争议这是好事,而且更多选择会更好,也为国内这样优秀的项目加油*\(^_^)/*
感谢!
2014/07/28 17:54
回复
举报
有争议这是好事,而且更多选择会更好,也为国内这样优秀的项目加油*\(^_^)/*
2014/07/28 15:59
回复
举报
更多评论
打赏
11 评论
5 收藏
3
分享
返回顶部
顶部