6 ms·
> Why rewrite in Go? It all started back in April of this year, when I was running "apt-get update" at home and noticed that downloads from dl.google.com were s
by MatthewPhillips 14y ago
> Why rewrite in Go? It all started back in April of this year, when I was running "apt-get update" at home and noticed that downloads from dl.google.com were stalling for no apparent reason. I asked about this on our internal Google+ and was put in touch with the right people. It turned out that the existing C++ dl.google.com service was no longer actively maintained (short of being kept alive) and that it relied on some assumptions about Google's internal architecture which were no longer true.
This doesn't instill confidence in Go. That it is a success story with abandoned projects is not what we need to hear; we need to hear that Google+ runs on Go. Or at least something the size of Google Reader. When a startup is evaluating what language to build their stack on, dl.google.com is not what they're aiming for.
- dpcx 14y agoWhile true, the amount of traffic that dl.google.com handles is non-trivial. If Go can handle that, it can probably handle your startup.
- MatthewPhillips 14y agoApparently an unmaintained C++ app using deprecated libraries and making false assumptions about Google's internal architecture was able to handle it too, albeit with poor performance. So I disagree that this move says anything about Go's capabilities, positive or negative.
- Millennium 14y agoI'm inclined to agree that by itself, this doesn't say much about Go at all. That said, I'm not sure how much a non-open-source program can really do in terms of marketing Go or any other language. This isn't so much politics as logistics: you need to be able to see the difference in code to get a sense of the advantages or disadvantages of one language over another, and if the program isn't open-source you can't do that. The author can say it's "more readable" (and does, in fact), but that's not something that can be quantified, and so there's really nothing but one guy's opinion to go on.
- Evbn 14y agoFind me 1% of people who have seen Go call it less readable than actual C++ code in the wild, and I would agree that readability is debatable. Go has an open source compiler, tool chain, and standard library, only this top-layer app is the non open source part of the stack.
- Millennium 14y agoYeah, but the top-layer app is where the author's statements would bear out: that's the code directly comparable to the old C++ code that it replaced. It's not really practical to give examples of that when you can't open-source the app; you could maybe do a few trivial snippets or put it all behind a big thick NDA, but neither method works very well.
- dscrd 14y agoAt least it says that Go works for replacing legacy apps that are using deprecated libraries and making false assumptions. There are tons upon tons of such programs in the world.
- emmelaich 14y agoAgreed. I wonder why dl was written in C++ in the first place. Web stuff is not a natural place for C++. (And I say this as a C++ fan -- relatively)
- thebluesky 14y agoIt doesn't necessarily hold. You can write a system which handles huge volumes of traffic simply by scaling horizontally with N servers. For some languages N is just a lot larger. Unless your startup has unlimited hardware resources like Google you can't make that assumption.
- Evbn 14y agoWait, so your opposition to Go was that it was cost effective and powerful enough to merit investing engineering time to replace a broken legacy system that couldn't justify the expense of C++ maintenance?
- MatthewPhillips 14y agoMy "opposition" (not the right word) to Go is that the company which created it doesn't use it on anything that is serious enough to cause a "shit hits the fan" moment were it to fail. Other than it works badly on Windows, I don't have any reason to think Go is inadequate, but if Google hasn't bought in yet, why should I.
- abraham 14y agoJust because Googlers can't publicly speak about using Go for serious shit doesn't mean they aren't. > Google uses Go for many internal projects, but for confidentiality reasons it's rare that we can point to a specific example
- MatthewPhillips 14y agoInternal projects aren't serious shit.
- jlgreco 14y agoHow can you possibly know that categorically? Internal in this case really only means "doesn't talk about it publicly".
- MatthewPhillips 14y agoBurden of proof is on Google to show that they are using it seriously which, to me, means an external user-facing application that has importance to Google the company's bottom line. If they aren't taking the same risks that a startup that decides to build with Go is going to be taking, it says a lot about Google the organization.