首页 > 业界 > 关键词 > PHP开发最新资讯 > 正文

反对PHP协程提案,Swoole创始人被质疑存私心

2021-03-17 08:52 · 稿源:OSC开源社区公众号

声明:本文来自于微信公众号OSC开源社区(ID:oschina2013),作者:局长,授权站长之家转载发布。

PHP 社区上周(3月8日)发起了将 Fiber RFC 添加到 PHP 的投票。

根据 Fiber RFC 中的描述,Fiber 主要用于为异步 I/O 实现协程,提供了独立栈分配、函数调用的暂停和恢复功,它将作为扩展集成到 PHP 中:https://github.com/amphp/ext-fiber。

按照计划,投票将于3月22日截止,最新数据为38票赞同、11票反对。从目前的结果来看,Fiber RFC 很大可能会通过投票从而被添加到 PHP(获得2/3的赞成票即可通过)。

图片

当前公开的投票结果显示,两位创始人——PHP 创始人 Rasmus Lerdorf 和 Swoole 创始人韩天峰@matyhtf 均投了反对票。

Swoole 是一个 PHP 协程框架,为 PHP 提供协程、高性能网络编程支持,并提供了多种通信协议的网络服务器和客户端模块,可以方便快速地实现 TCP/UDP 服务、高性能 Web、WebSocket 服务、物联网、实时通讯、游戏、微服务等,使 PHP 不再局限于传统的 Web 领域。(来自 Swoole 官网介绍)

Reddit 上的一篇帖子引用了@matyhtf 在 PHP 内部发送的邮件,里面提到他担心 Fiber 只能在 AmPHP 这种框架中使用,而对于其他普通的 PHP Web 项目没有价值。这篇帖子在 Reddit 引起了不少讨论,有人认为 Fiber 是 generator 的升级版本,它是协程的最小化核心实现,并且不会对 PHP 产生不利影响,将它集成到 PHP 有利于发展和探索未来的异步生态。也有人质疑@matyhtf 投反对票是因为担心此提案会对 Swoole 的商业化 (Swoole Plus) 造成影响。

图片

有人将这篇帖子搬运到了国内的社区,同样引起了激烈的讨论。@matyhtf 对此进行了回应,他的观点是 Fiber 还不够完善,应该先作为 PECL 扩展进行验证,而不是直接集成到 PHP 中。@matyhtf 在知乎上的答案写道:

我要表达的意思是 “Fiber 主要是提供给 amphp 和 reactphp 这样 php 实现的异步框架使用的,对于普通 PHP Web 项目没有太大价值”。

……

对于 Fiber RFC 我的观点是,建议先作为一个 PECL 扩展,PHP 内核开发者能够思考清楚 PHP 未来协程的整体技术体系和实现方式后再做决定。实际上异步编程颠覆了 PHP 一直以来的设计哲学和编程模式。如果 PHP 语言官方决定要支持像 Node.js、Golang、Swoole 这样的异步/协程并发编程模式,那么就需要系统性思考一下整体的架构,以及完整的实现。

@matyhtf 表示他给 Fiber RFC 投反对票与 Swoole 无关,因为 Swoole 是一个纯粹的开源技术项目,而不是商业产品。如果有可能,他甚至愿意修改 Swoole 的 Copyright,并将 swoole-src 的源代码贡献给 php-src。不过对于 PHP 支持协程的提案,他认为这是一项重大变更,应该进行深入讨论,从语法、标准库和 ZendVM 方面进行重新设计,而不是仓促做出决定。

图片

@matyhtf 继续发表文章(关于 PHP8.1的 Fiber RFC)从技术细节详细地解释了自己反对 Fiber RFC 的原因。他认为用户真正需要的是一种完整的、系统性、成体系、简单易用、可靠的一整套技术方案,并根据自己的经验提出可从7个方面进行考虑:

  • EventLoop API

  • 协程(对应 ext-fiber)

  • IO 调度器(Socket/FileSystem/ChildProcess/Signal/Timer/Stdout/Stdin)

  • CPU 调度器

  • 现有同步阻塞 IO 扩展(redis、curl、php_stream、sockets、mysqli、pdo_mysql 等)和内置函数(sleep、shell_exec、sleep、gethostbyname 等)如何实现支持协程,变成异步非阻塞模式

  • 协程通信(channel)

  • 服务器:实现 PHP-FPM 协程版,或者提供一个新的协程 HttpServer

虽然@matyhtf 给出了充分的理由投反对票,但从目前看来,许多人并不认可他的做法。他们认为,即便实现 PHP 的协程化难度很大也不需要等到有成熟方案之后才合并,也不能因为 Fiber 不够完善,就猜测它不能满足大多数人的要求。反而因为 Fiber 是最小化实现,集成到 PHP 不会对使用者造成很大的维护负担,却又能满足很多人的项目需求,他们可以在此基础上进行更多实现,为用户开放了探索各种协程方案的可能。

因此,这一部分开发者认为没有理由反对将 Fiber RFC 添加到 PHP。双方思考角度不同,所以给出了截然相反的投票结果,而且他们都有各自的立场——虽然初衷都是希望 PHP 变得更好,但无论如何,最后还是以投票结果为准。

这篇文章对你有价值吗?

  • 相关推荐
  • 大家在看
  • 中国程序员开发的抢茅台脚本 频频冲上GitHub热榜第一

    由中国程序员推出的京东抢茅台、天猫抢茅台等开源项目霸榜 Github了,这些项目只有一个功能,那就是抢茅台:自动登录电商平台 -> 定时自动预约茅台 -> 定时开始自动抢购。

  • 微软或正在开发用于Excel的低代码开发语言「Power Fx」

    据ZDNet报道,微软计划将低代码(low-code)开发语言推向更多非技术用户。知名泄密者WalkingCat在推特上透露,微软正在为Power Platform开发一种「基于公式的低代码」语言,名为「Power Fx」。

  • 拿百万年薪,住宜居房子,长沙程序员的好工作来了!

    继“打工人”、“尾款人”之后,最近又一个网络词火了,那就是“原年人”。受疫情影响,2021年春节,全国超过1亿人为响应国家号召,放弃了与家人团聚的机会,选择就地过年,成为“原年人”。经历了去年疫情时期的求职艰难,“原年人”只能在大城市默默承受着生活压力,将那份思念与爱深埋心底,在一城相隔的远方,遥祝安好,回家乡、换工作那是轻易不敢想的。像我一个朋友,211毕业,在深圳从事软件开发工作近5年,月薪上万,除去日常开销,基本也所

  • 开课吧《Hello,World公开课》正式上线,助力程序员职场进阶

    ?3月6日,开课吧《Hello ,World公开课》正式上线!《Hello ,World公开课》是由开课吧推出的面向C++、Java、Web、AI、Python等IT技术人群的公开课专栏。此专栏聚焦垂直专业知识及实战技能,并邀约行业内不同领域的资深大咖,以在线公开课的形式与大家见面,一切只为提升程序员的技术水平和专业能力,以丰富的项目经验赋能程序员长期发展,让他们能更好地运用技术来改变世界,同时帮助大家更为精准高效地解决问题,从而快速完成职场

  • 卖鞋月入5万、玩抖音买“大奔”:有些程序员收入靠副业,上班只为自律

    副业一直都是个热门话题,几乎每个“打工人”都考虑过开展自己的副业。有些人是由于收入焦虑而主动探索,有些人则是在不知不觉间获得副业机会,比如有朋友介绍“私活”之类。一般来说,副业又可分为两种,一种能够发挥自身的专业知识或技能,另一种则与自己所处的行业和所具备的技能没有太大关系,可以算是跨行。

  • 程序员因违反《竞业协议》赔偿腾讯97.6万元

    中国裁判文书网通过公告发布了孙某与腾讯科技(上海)有限公司竞业限制纠纷二审案件二审民事判决书,判决书显示,孙某被判返还腾讯公司竞业限制补偿金157,985.52元;支付腾讯公司竞业限制违约金976,441.28元。

  • 钉钉发布低代码开发者画像:非IT人员占8成

    今日,钉钉发布低代码开发者画像,画像显示低代码开发者中一二线城市的80、90 后是低代码开发的主力军,不过值得注意的是20岁以下和50 岁以上开发者也占比近20%。

  • AI启蒙第一步: 12 岁小程序员就能接通的虹软人脸识别SDK,了解一下!

    格子衫、技术宅,这些可能是大家印象中最常见的程序员标签,但戴红领巾、穿校服的程序员你可以想象吗?“电子游戏你玩起来有什么意思,规则都是别人设计好的,要你往东就得往东。”“那我可以自己设计游戏吗?”“当然可以,学会编程你就可以控制整个世界。”这段对话发生在四川绵阳的小唐和老唐父子身上,这也是六年级的小唐开发人脸识别考勤应用最初的契机。在学校的科技节上,小唐的这款人脸识别AI应用得到了极大关注,他说:“

  • 程序员篡改数据,违规通过735个媒体网站加入“百度联盟”被抓

    百度程序员为了“挣外快”篡改数据,违规通过了735个媒体网站账号加入百度联盟的申请。使得公司374万元广告分成被蚕食,而这些网站部分内容甚至涉及到赌博、彩票等业务。

  • 程序员篡改数据违规通过735个媒体网站账号加入“百度联盟”被抓

    百度一名92年的程序员为了“挣外快”通过编写脚本、篡改数据等方式,在半年左右违规通过了735个媒体网站账号加入“百度联盟”的申请,使得公司374万元广告分成被蚕食,而这些网站部分内容甚至涉及到赌博、彩票等业务。

  • 库克苹果正在开发将比iPhone更重大的产品

    据外媒报道对于大多数人来说识别出苹果最成功的产品并不困难答案的范围从iPhoneiPad到MacAppleWatch等等事实上苹果是一家非常成功的硬件公司它在不断更新其受欢迎的消费科技产品阵容因此在距离iPhone13系列发布还有好几个月的时间之前就已经开始有传言了

  • 小米生态链企业华米科技股票代码变更为「ZEPP

    今天华米科技创始人、董事长兼CEO黄汪,在一封致用户、合伙伙伴以及全体员工的公开信中表示,相信这个新的名字,能够更好地反应公司对于「科技连接健康」这一使命更加深入的承诺。

  • HPE发布软件定义机会引擎,同时宣布收购CloudPhysics公司

    近日,HPE发布软件定义机会引擎(Software-Defined Opportunity Engine)并收购CloudPhysics,以实现跨本地和云的更智能的IT。2月23日,HPE全球高级副总裁兼存储事业部总经理Tom Black对此发表博客文章。我正式向大家介绍我们的软件定义机会引擎(简称SDOE)。这一新解决方案由HPE InfoSight支持,通过利用软件和数据驱动的分析,我们的合作伙伴和客户可以从现实世界的数据中受益,这些数据可以帮助他们以最透明,最有效和最具成本效益的方式?

  • 隐藏代码暗示Pixel 6 5G新机支持屏下指纹和面部识别功能

    XDA的MishaalRahman在早前发布的首个Android12开发者预览版本中发现了一段有趣的隐藏代码从功能描述来猜测传说中的Pixel65G新机有望同时支持屏下指纹识别面部解锁功能此前谷歌曾在Pixel4系列力推过人脸识别忽视了指纹解锁然后又在Pixel5上反其道而行之

  • 传LG Display正协助苹果开发可折叠iPhone的OLED显示面板

    援引DigiTimes报道苹果已经委托LGDisplay开发可用于折叠iPhone的显示面板业内人士表示LGDisplay正在协助苹果开发一款用于iPhone的可折叠OLED面板但是目前尚不清楚一旦该面板开发出来是否继续交由LGDisplay量产

  • 英灵神殿武器装备物品代码汇总 valheim装备道具作弊大全

    ​英灵神殿valheim中是可以使用作弊代码的,这些作弊码可以获得很多武器装备以及材料,下面就来为大家分享一下英灵神殿武器装备物品代码汇总。

  • 上新!ModelWhale 可以一键分享代码片段啦

    ModelWhale 终于上新了大家梦寐以求的新功能:一键分享代码片段! 对于这个功能,小W只能说,相见恨晚!!在小W刚入坑走上码农之路时,常常碰到照抄代码还报错的情况。正如几年前,我在学习用 Matplotlib 画极坐标图时,检查了很多遍的代码却一直报错,抓狂的我只能打开微信,点开了某大佬的头像,开启了一波求助:过了一会,大佬终于回复了:确实挺乱,看不下去实属正常。于是打算另存一个文件直接发给他,但他称自己手边只有手?

  • 消息称乐金显示将协助苹果开发用于可折叠iPhone的显示面板

    2月19日消息据国外媒体报道有消息称LG集团旗下的液晶面板制造商乐金显示(LG Display)将协助苹果公司开发一款可用于折叠iPhone的显示面板自2016年以来苹果一直在研发可折叠的iPhone最近几个月关于可折叠iPhone的传言明显增多近日有报道称苹果计划在2023年推出一款配备7英寸OLED显示屏支持Apple Pencil的可折叠iPhone据外媒报道乐金显示将帮助苹果公司开发一款可折叠的OLED面板以为新旗

  • ​星援App开发者获刑五年

    日前,中国裁判文书网公布了“星援”APP开发者蔡坤苗的判决书,其因提供侵入计算机信息系统程序罪一审获刑五年,并处罚金人民币十万元,追缴违法所得予以没收。

  • 彭博社: 苹果正在为 iPhone 12 开发 MagSafe 磁性无线电池组

    据MacRumors援引彭博社的报道,苹果公司正在为最新款iPhone开发一种磁性连接的电池组,它可以附着在iPhone的背面,为其无线充电。

  • 热门标签

热文

  • 3 天
  • 7天