11 ms·
Google to Reimplement Curl in Libcrurl
- carlsborg 7y agoDear Google Chrome Folks, Please rename your library. Thanks
- EwanToo 7y agolibcrurl vs libcurl, I know naming things is hard but this just seems hostile against the Curl developer.
- jsty 7y agoAdmittedly they're a little hard to differentiate at first glance, but is 'hostile' not pushing things a little too far? There's a long history of derivatives of open source tools having similar-ish names, often differing by a single letter - just look at all the 'make' derivatives: pmake, bmake, fmake, gmake, rmake, nmake, ... to name but a few that Wikipedia mentions [0]. [0] https://en.wikipedia.org/wiki/Make_(software)#Derivatives https://en.wikipedia.org/wiki/Make_(software)#Derivatives
- zapzupnz 7y agoAt least those all have the decency to be prefixes. Those are much easier to parse.
- EwanToo 7y agoIf you launched an alternative search engine called Gooogle, I don't think Google would consider it a friendly move :)
- jsty 7y agoVery true. I probably should've caveated that I don't actually think it's a good name choice, just that I doubt it was chosen to mislead / as an attack on (lib)curl. Given my own uselessness with naming things sometimes, I tend to be forgiving!
- Spivak 7y agoLike we're talking about software developers here. I think it's funny that when a Google engineer does it there's some shadowy motivation to usurp a FOSS downloader library -- like they aren't like the rest of us picking silly names for things. "Hey, curl is a super useful tool, it would be nice if it used our new fancy network protocol" "Yeah, what should we name it?" "Uhh -- wait, I got it. crurl and the library could be libcrurl" "Hilarious! It's perfect!"
- eesmith 7y agoCase in point from 2006 - https://www.chemistryworld.com/news/google-chmoogle/3001845.article https://www.chemistryworld.com/news/google-chmoogle/3001845.... : > A new chemistry search engine has been forced to change its name from ’Chmoogle’ to ’eMolecules’ following pressure from the search engine Google.
- Spivak 7y agoWe're talking about two categories of people. The software developers would have no problem with stuff like this. Go ahead and create a UX toolkit called Fluttershy. But if you mess with someone's actual products that make them money you'd probably hear from their legal team.
- huffmsa 7y agoIf not for Google's recent spate of scraping people's stuff and publishing it verbatim with zero attribution, they'd get the benefit of the doubt regarding maliciousness. See genius.com's recent accusations The smell like some "developer's developer" who thinks he can do a better job of libcurl and is so cocksure that he's going with the name libcrurl. Perhaps he'll put his name on it. Unlikely, as that would require skin in the game.
- pritambaral 7y agoNeither of those make derivatives has a likelihood of being readably confused with the original similar to the libcurl/libcrurl comparison.
- rlue 7y agoPrefixing a word with another letter is perceptually different from slipping one in the middle, especially when the new letter is one of the four letters already in the name. What Google has done here would be more comparable to releasing a new utility called 'mkake'. As the author of curl points out, it just looks like a typo. When it's this egregious, your only choices are to assume either incompetence or bad faith.
- Spivak 7y agoI mean don't think for a second that mcake couldn't be the name of a build utility that uses baking terms. mcake knead && mcake bake
- huffmsa 7y agoThen Google should follow that pattern and call it glibcurl Which clearly reads as "the g(oogle) implementation of libcurl"
- simion314 7y agoIn your examples the first letter is different, the names do not suffer of the confusion issue, me and other people read the name wrong(our eyes or brain tricked us)
- laumars 7y agocrurl and libcrurl look almost visually identical to curl and libcurl - to the point that many on HN genuinely misread Google's names to be their original counterparts. Whereas your make examples are much easier to visually differentiate. If curl was trademarked then they would have a strong case here.
- maccard 7y agoSlightly different in that case that they're introducing a new different letter at the start. What if I called my tool mmake, or mkake?
- smittywerben 7y agoChrome and curl seem like competing products. But I agree. I don't see this as that bad relative to the other things they're doing at the moment (i.e. breaking uBlock, user agent blocking). In any case I admire curl has a binary size of ~1MB, which is 1/5 the size of my filter list for Chrome.
- TheCycoONE 7y agoCould be worse - like when MS added curl as a powershell alias. https://github.com/PowerShell/PowerShell/pull/1901 https://github.com/PowerShell/PowerShell/pull/1901
- signal11 7y agoWindows 10 builds have included a 'real' curl for about a year now (build 1803 onwards IIRC)[1] [1] https://daniel.haxx.se/blog/2018/01/13/microsoft-curls-too/ https://daniel.haxx.se/blog/2018/01/13/microsoft-curls-too/
- smittywerben 7y agoJust to reiterate- in Windows 8/Server 2012 (PS ~3-5), writing "curl" would just alias to "Invoke-WebRequest". Prior discussion from 2016 on hn[0]. But since December 2017, Windows 10 build 1803 includes curl.exe (along with ssh!) These deprecated my use of chocolatey, and hopefully moves people away from Putty. [0] https://news.ycombinator.com/item?id=12319670 https://news.ycombinator.com/item?id=12319670
- Spivak 7y agoI really don't see what all the drama was over. Those aliases are incredibly valuable to me. I can never remember the PS equivalents of unix-y commands and those aliases let me use my current muscle memory. Sure the options are different but it's really not all that different than switching between GNU/Linux, MacOS, and BSD and having to deal with differences. PS> cd C:\Users\ PS> ls PS> wget https://example.com And it makes discovery super easy when you can Get-Help just about every unix command and it will show you more-or-less the appropriate equivalent. The thread just looks like a bunch of people with a bone to pick against MS trying to take some moral high-ground with a change that was added to genuinely help users.
- TheRealPomax 7y agodon't assume malice when "we suck at names and the first dumb name seems to stick without a marketing department overriding the naming choice" is also an option.
- huffmsa 7y agoMarketing is busy branding the next 5 years worth of annual messaging applications.
- TheRealPomax 7y agoA company I once worked for spent $40,000 to find a good product name. It ended up being the same name people had already pitched for free internally.
- captainbland 7y agoThey missed a trick by not naming it libgurl.
- vkaku 7y agoHow about libcruel - Chrome reimplementing usable external libraries
- grosswait 7y agoOr libcrocurl and crocurl. Lots of better options.
- ademarre 7y agolibchrurl It's visually more distinct than libcrurl while retaining an appropriate resemblance to libcurl. One could argue that some resemblance in name is a good thing for curl. But libcrurl is too close and likely to cause confusion.
- AlbertoGP 7y agoIs it too late for them to name it “Goorl”?
- josteink 7y agoLibGurgurl
- rauhl 7y agolibcruller is available, is close enough to be clearly related and far enough away not to look like a typo. Also … mmm, tasty crullers.
- avip 7y agoPropose LibTrurl Pros: main class c'tor could be called TrurlTheConstructor Cons: everything else
- wiggler00m 7y agoHow about "gurl" or "gurgle"?
- unethical_ban 7y agoIt's doubly egregious given they work for a search engine that will immediately try to autocorrect that.
- 0xFluegel 7y agoIt'll be even worse when the search engine later magically ranks their's higher even when searching for the original.
- dalf 7y agoThe irony is when I've searched for "libcrurl" using Google, I got the result for "libcurl".
- lifthrasiir 7y agoOf course it should be renamed to libdivergence. But joking aside, is "crurl" even a word after all?
- ben0x539 7y agoand lets not be clever, if its a libcurl api for this cronet thing, call it cronet-libcurl or libcurl-cronet or something
- willnorris 7y agoon it: https://news.ycombinator.com/item?id=20228237 https://news.ycombinator.com/item?id=20228237
- glenndebacker 7y agoI’ve read the title as “Google to reimplement curl in libcurl”. I only noticed the libcrul after reading the article so they certainly have a point that’s it’s very confusing.
- huffmsa 7y agoThat's what I read too and felt my brain break momentarily.
- PopeDotNinja 7y agoI misread it, too. Ir's actually L-i-b-c-r-u-r-l.
- porker 7y agoI misread the new name as "libcruel".
- agumonkey 7y agowhile libgurl would have been so fit
- mxscho 7y agoI only read the title, not the article, and I had to scroll back to the top after reading your comment. Got fooled as well.
- kalleboo 7y agoGoogling for "libcrurl" currently gives you a "results for libcurl" as an autocorrect. If Google succeeds you'll get the opposite. I'd say the name is definitely too close for comfort.
- deleted 7y ago[deleted]
- Phemist 7y agoIt would be interesting to keep track of what the results will be in several search engines across time when you type: 'libcrul'. Will the suggestion be a) you switched the 'r' and 'u' and get libcurl, or b) you missed an 'r' and get 'libcrurl'.
- Daemon404 7y agoTheir motivation isn't really made clear in the bug (easier for developers to switch to is a little too vague), but if I had to guess, I'd bet the actual reason is that they want the debug/insight/whatever features from cronet available to all the third party dependencies in their monorepo, and a shim was the easiest way. Doesn't make it a good look, though. As an aside: Given history with Google's other OSS libs, I have absolutely no faith in them having a concept of a stable ABI, or even API. This is anecdotal of course.
- dfeojm-zlib 7y agoAlphabet's Chrom(ium|e) engineers are accomplishing job security by creating bullshit busywork.
- falsedan 7y agoAlso, projects which can successfully hit milestones & have a wide audience, to use for performance reviews/promotion
- shereadsthenews 7y agoIt sound to me more like they want an easy way to exercise QUIC.
- Daemon404 7y agoPossibly, yes. Although, having a usable QUIC library and/or adding it to libcurl would have been less controversial.
- tyingq 7y agoSomewhat related, the reason curl is called curl: https://ec.haxx.se/curl-name.html https://ec.haxx.se/curl-name.html
- mxuribe 7y agoThanks; i always love reading little nuggets like this!
- jordigh 7y agoBoy do I have the page for you... https://wiki.debian.org/WhyTheName https://wiki.debian.org/WhyTheName
- QuercusMax 7y agoLink appears to be dead?
- skybrian 7y agoSome context here: cronet is a high-performance HTTP/QUIC library. It seems to be promoted as an alternative to HttpUrlConnection and OkHttp for Android developers, with a Java API and implementation in C++. I'd guess this bug is more about making it easier to use from C. https://developer.android.com/guide/topics/connectivity/cronet https://developer.android.com/guide/topics/connectivity/cron... https://medium.com/@cchiappini/discover-cronet-4c7b4812407 https://medium.com/@cchiappini/discover-cronet-4c7b4812407
- klagermkii 7y agoDoes this mean that QUIC and other protocols implemented by Chrome will be available through this Google library? That would be a benefit over existing cURL.
- skybrian 7y agoYes, I'm guessing Google would want to get all their HTTP-using apps switched over to QUIC (and adopting any other HTTP-level network improvements they come up with), so they'd want to encourage at least their own developers to switch from libcurl to something built on cronet and picking up performance tweaks as soon as they add them to cronet. Seems like they should also be helping libcurl itself to keep up with HTTP-level networking changes though, given all the software built on it.
- jkaplowitz 7y agoThe curl author writes in the linked article that Google has a right to do this both morally and legally. He should check with a trademark lawyer immediately since they don't have a right to pick such a confusing name and the curl trademark is probably strong enough to be enforceable even in unregistered form. (I'm not a lawyer and this is not legal advice, but I have been involved in administering and enforcing other open source trademarks.)
- nerdponx 7y agoGiven that it's his trademark, it seems like he has no interest in enforcing such rights.
- codeaken 7y agoI thought it was more or less required to defend your trademark, else you could loose it.
- jkaplowitz 7y agoThat's true. But he's allowed to choose to lose it, or to discuss with Google and grant a trademark license.
- jordigh 7y agoHe also needs to have registered it in the first place. Trademarks are not automatic like copyright is. I didn't try very hard, but I couldn't find a "curl" trademark here for software: http://tmsearch.uspto.gov/bin/gate.exe?f=tess&state=4808:iz1rln.1.1 http://tmsearch.uspto.gov/bin/gate.exe?f=tess&state=4808:iz1...
- nerdponx 7y agoSort of. The USA you can claim trademark rights without a registered trademark; that's the difference between ™ and ®. But the law follows "use it or lose it" rules. If you don't defend your trademark, then in the eyes of the court it is no longer a trademark.
- deleted 7y ago[deleted]
- deleted 7y ago[deleted]
- pdkl95 7y ago> pretty strong indication that their API will not be fully compatible If the compatibility problems are from an incomplete implementation of the API, it will simply be an inferior inferior implementation, perhaps optimized for different uses or environments. However,if the incompatibility is from an extension of the API introduced after initially embracing the de facto standard set by te widely-used original implementation that is outside their control, it will be a clear example of the Embrace, Extend, Extinguish[2] method. The canonical example of EEE is when Microsoft introduced an incompatible "security feature" in their implementation of Kerberos. Hopefully, Google won't do the same thing to HTTP with a new and supposedly-important "security feature" in their re-implementation of libcurl. [1] https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguis... [2] https://web.archive.org/web/20140222133423/http://www.networkworld.com/news/2000/0511kerberos.html https://web.archive.org/web/20140222133423/http://www.networ...
- kerkeslager 7y agoThe stated reasoning behind this seems pretty vague to me, and this follows an increasingly common business pattern in the software industry: clone or fork an existing free software solution, and then fund it massively so that it pulls ahead of the original free software. In the most extreme cases, i.e. FreeBSD->MacOSX, the free software is replaced by software under a non-free license. If there is mention of how libcrurl will be licensed, I missed it, but there's actually a subtler attack on free software which has happened with i.e. GCC->Clang or Konqueror->Safari/Chrome. What makes this attack subtle is that it allows companies to release under a free license, while not actually making any commitment to a free ecosystem. By providing massive amounts of funding and manpower to these projects, large companies can ensure that their version of the software remains dominant, and they get to choose what to include and exclude. This has predictable results: breaks in support for related free software[1] and pressuring the introduction of non-free components even in otherwise free browsers[2] after people have committed to the new, corporately-controlled platform. As noted, I don't know what license this will be released under, or how this power will be used if they supersede the original curl tool. I'm just saying that projects like this should be seen as attacks on free software and viewed with suspicion. [1] https://bugs.kde.org/show_bug.cgi?id=365327 https://bugs.kde.org/show_bug.cgi?id=365327 [2] https://blog.mozilla.org/blog/2013/10/30/video-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec/ https://blog.mozilla.org/blog/2013/10/30/video-interoperabil... (note: OpenH264 is free as in beer not free as in freedom, a.k.a. gratis not libre).
- 693471 7y agoI don't think you understand the relationship between FreeBSD and MacOS
- codezero 7y agoJust to save the GP a google search: https://en.m.wikipedia.org/wiki/Darwin_(operating_system)#/media/File%3AUnix_timeline.en.svg https://en.m.wikipedia.org/wiki/Darwin_(operating_system)#/m...
- kerkeslager 7y ago
- Sir_Cmpwn 7y agoIf Google is just hoping to get their new protocols implemented in something curl-like, they ought to implement them in curl and send it upstream. However, it's totally fine to provide several implementations of the same API. If it applies to Oracle's Java then it applies to Daniel's curl, even if we like one more than the other. HOWEVER, that name has got to change. If an unambiguous pronunciation is not evident then it comes off as a deliberate attempt to muddy the waters and capture mindshare of an open source project.
- peterwwillis 7y agoBack when I forked and redesigned an embedded network analysis and packet dumping tool, I did not change one letter in the name. I gave it a completely different name, and credited the original author, even after 95% of the original code was changed. The purpose was twofold: 1) respect to the original author whose ideas and work made it easy for me to attempt this project, and 2) I didn't want my bastardized horrible code to reflect on the original project or cause confusion. Curl is the most widely used HTTP request tool outside of a browser. Calling your fork of it "crurl" is like forking "Linux" and calling it "Linox". This is a dick move.
- tempodox 7y agoA Google-copyrighted network library will make sure that Google users will only see Google-authorized parts of the Internet.
- AdmiralAsshat 7y ago"libcrurl" seems tailor-made to cause confusion. If they wanted to follow usual fork/clean-room-implementation alternative norms, they could use some kind of synonym for "curl" such that the intent is clear without being infringing. Suggestions: - libcoil - libtwist - libcrimp - libswirl
- namsk 7y agoWhat a stupid name. Why don't they call it libmwfup (lib-make-work-for-unimaginative-plagiarists).
- bla3 7y agohttps://groups.google.com/a/chromium.org/forum/m/#!topic/chromium-dev/0TmXyy_G9_o https://groups.google.com/a/chromium.org/forum/m/#!topic/chr... suggests this is an intern project. My guess is that some proof of concept will be committed, then the internship will end, then nobody is going to use this for anything, and in a few years it's going to be deleted again. This seems more like a project that's happening because it's technically possible, not like one that's actually all that useful.
- CydeWeys 7y agoOuch, that's a rough start to an internship, being called out on the front page of HN like this.
- lallysingh 7y agoIt'll make for great fodder in their YC application
- shereadsthenews 7y agoOnly hacker news can impute so much malice into the plans of an intern. If she can really disrupt free software in only 12 weeks then good for her I guess.
- jonathanyc 7y agoInterns at Google (and other large companies) almost never come up with their own projects. Rather they choose from a list created by their manager and their manager's manager, typically from a grab bag of smallish projects that were already on the roadmap. Whether or not there is malice (or just impoliteness) in this, dismissing people's concerns about Google because libcrurl is just "the plans of an intern" is a non sequitur.
- lallysingh 7y agoWoah, I feel like this is all blown out of proportion. AFAICT, nobody's actually trying to replace the curl that people will have installed on their workstations or laptops. The cronet http/quic library (cronut url: crurl) could use some command-line tools to test it and make the underlying protocols (e.g., quic) useful outside of a browser. I think this is a test tool/utility to ship with that library. I don't think it's going to be installed by default anywhere. Maybe I'm wrong? I think the name was chosen only to indicate how it should be used ("like regular curl"), not to indicate that it's a competitor. curl does all kinds of useful things that I don't think this one is intended to do. I don't think the authors are trying to replace curl, as much as imitate it for a development utility. But, I can imagine that it sucks to spend a ton of time on developing proper curl and suddenly hearing that Google's going to replace it with one developed by a big team of big-company engineers. I don't think that's what's going to happen, but I can imagine that Daniel Stenberg had a nasty pang in his heart when he heard about libcrurl's curl implementation. [disclaimer: I'm an ex googler that did some work on chrome while never being part of the chrome team, I don't think I know any of the involved people]
- consp 7y ago> I think the name was chosen only to indicate how it should be used ("like regular curl") Or, like my colleague just suggested: to improve typesquating in search results. Considering it is both a Google thing and as mentioned before an internship both are likely.
- willnorris 7y agoHey, Will from Google's Open Source Office here. I apologize for the confusion this caused; that was certainly not the intent. Mea culpa! The name "libcrurl" was just an internal working name for this effort that wasn't expected to gain much attention. This project is still very experimental in nature (as discussed at https://bugs.chromium.org/p/chromium/issues/detail?id=973603#c4 https://bugs.chromium.org/p/chromium/issues/detail?id=973603...), and there are no plans here to try and replace or compete with libcurl. We have huge respect for the tireless work Daniel does to maintain curl, and didn't mean to cause any confusion or extra work for him. To make things clearer, the team is renaming the project, and adding some more docs outlining the goals and intent of the project: https://chromium-review.googlesource.com/c/chromium/src/+/1652540 https://chromium-review.googlesource.com/c/chromium/src/+/16...
- ptah 7y agoEmbrace, Extend and Extinguish