谷歌想实现自己的 curl,为什么?

h4cd
 h4cd
发布于 2019年06月25日
收藏 21

cURL 创始人 Daniel Stenberg 发文指出谷歌正在实现自己的 curl。

cURL 是一个网络数据传输项目,通常说 cURL 是指 curl 命令行工具,它支持 DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、Telnet 与 TFTP 等协议,而 curl 的底层使用的是 libcurl 库,libcurl 与 curl 组成了 cURL 项目。

Chromium bug 团队近日表示他们将基于 Chromium 网络栈 Cronet 实现一个名为 libcrurl 的库,用来提供部分 libcurl API。对于 Daniel 来说,谷歌很可能是要实现一个他们自己的 curl,所以后边可能出现一个基于 libcrurl 的“crurl”。

至于为什么要这么做,Chromium bug 团队表示,使用 Cronet 实现 libcurl 将允许开发人员使用 Chrome 网络栈的实用程序,而无需学习新的接口及其相应的工作流。理想情况下,这将增加 Cronet 的可用性,并通过第一方或第三方应用全面改进 Cronet 的采用。

Daniel 觉得谷歌这样的逻辑是有道理的:“理想情况下,Google 最终解决此问题的团队会发现并修复我们的代码和 API 中的问题,这可以改进 curl,同时也可以使更多用户了解 libcurl 与其 API。而如果工程师最终实现了一个比 libcurl 更好的库,并且使用相同的 API,那么开发者就可以直接选择他们认为更好的库。”

然而问题是,Daniel 认为这项工作并不简单,首先是 libcurl API 已经开发了近 20 年,它的许多功能、选项和微妙的行为可能无法轻易地直接模仿;另一方面,Cronet 与 libcurl 的工作方式完全不同,因此需要投入足够多的人力与时间来将 libcurl API 整合到 Cronet 上。

“我认为引入 API 不成熟的实现会给开发者带来困扰,因为他们很难理解它是个什么 API 以及与 libcurl 的区别”,像前边说的,Daniel 认为如果没有投入很大的工作量,那 libcrurl 不可能提供兼容 libcurl 的 API,而这种分裂将导致文档问题,甚至连基本的项目名都可能混淆,因为“libcrurl”/“crurl”与原本的“libcurl”/“curl”太像了,使用者可能误认为它们只是拼写错误。

虽然说理解谷歌的做法,并且也知道他们有权利这么去做,但是 Daniel 文章最后还是发出了疑问:curl 支持完整的 API,提供完全向后兼容性,同时在大量不同的平台和架构上可以相同的方式工作,并且免费,还经过多年实战考验,那么在这种情况下,开发者有什么理由要去使用另一个翻版的呢?

有意思的是,Daniel 的这篇博客评论中有人将谷歌的这一动作与微软备受诟病的“拥抱、扩展再毁灭”策略联系了起来。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:谷歌想实现自己的 curl,为什么?
加载中

精彩评论

久永
久永
他们当年怎么喷微软一样的行为的?估计这里很多人都还没出生吧!
东胜神洲
东胜神洲
当某一天,连 ls , dir 都是 Google 出品时。。我们就会发现,Google 在定义我们的行为。。
Fanxme
Fanxme
分裂”标准”,形同IE的模式
kidfruit
kidfruit
@吕秀才 google正在做当年的微软做的事情,所以你说他被微软洗脑的同时,意味着你也在被google洗脑
一码千里
造轮子是一种技术信仰

最新评论(26

d
dwcz
同行抢生意,有人不高兴了。自由竞争的后续阶段必然是垄断行为,问题是谁垄断--开创者?强势的介入者?所以,重复造轮子是必须的,为了保持一直在自由竞争阶段。不主张重复造轮子的人,不是垄断者,就是垄断行为受益者。
喵星人123
喵星人123
细思极恐
梅开源
梅开源
这正是我想要的!
我正在做一个类似中间人攻击的非透明代理,理想状况是控制浏览器,辅助我在互联网上做某些事,自动帮我搜集答案并提交。。。我用代理服务器和爬虫时,页面里有个去服务器求Session的操作让代理无效,因为浏览器又直接往服务器发请求然后带了个origin结果被服务器发现,掐断。如果谷歌可以提供这些curl类API,弄个浏览器插件,内容加工和过滤会非常方便。未来这也一定是半人半机器的工作模式必需的信息处理方式趋势。
-
-喜头鱼-
屠龙者最终变成了龙
悠米海
libcurl实在太古老
lcccd
lcccd
GOOGLE和爱迪生一样,自己其实并没有什么很强的能力,都是靠商业运作,所有知名产品都是靠收购别人家的。自己研发的东西,都是搞一搞就丢了,就像证明自己还活着一样!
刘祥超
刘祥超
Google搜索知名不,是收购别的吗?
mymbrooks
mymbrooks
黑 Google 成为了一种政治正确... Tensorflow、Kubernetes 等都是怎么出现并运营的?Speedy 直接促使了 http2 的快速进展,QUIC 将用于 http3,VP8 VP9 促进了 AV1 开源编码的发布,容器技术要归功于 Google 工程师提出的 cgroup.
作为有技术实力的大公司,重新开发做的不够好的技术是很正常的,说不定就成为了下一代的标准
st_lein
st_lein
为了方便留下几个0day吧
平原君
平原君
不知道这有啥好喷的,开源的一大特色不就是随便造轮子么
robortly
robortly
curl 真的有那么好用么? 我怎感觉 就会个简单curl <web address>。😄
hanf
hanf
这里的curl指的是底层的一整套网络文件传输协议实现,是互联网基础设施之一,远远不止下载工具curl....
冰镇阳的光
冰镇阳的光
这样造轮子真的好?
返回顶部
顶部