6 ms·
> I still hold that Go's success is attributed to the fact that you could build a web application out of the box, minus database drivers. I attribute Go's succ
by lawn 5y ago
> I still hold that Go's success is attributed to the fact that you could build a web application out of the box, minus database drivers.
I attribute Go's success purely by it being pushed by Google.
If we use Rust as an example, it's super easy to include high quality libraries (just add s line in Cargo.toml and you're good to go).
Another example is Ruby and how it was made popular thanks to Rails, or how Elixir is making a splash in web dev thanks to Phoenix.
- geodel 5y ago> If we use Rust as an example, it's super easy to include high quality libraries (just add s line in Cargo.toml and you're good to go). Is this a joke? How the hell would I know which out dozens of library is complete, safe, well documented without significant research?
- indymike 5y ago> I attribute Go's success purely by it being pushed by Google. At the beginning Google's support really made a difference, but the continued traction of Go is really the result of it being a great tool to build network servers where you want a high level of performance.
- lifthrasiir 5y ago> [...] being a great tool to build network servers where you want a high level of performance. This was the case from the Day 1. Google strongly shaped the language's direction and that has a continuing effect on Go's success. Put it differently, if somehow we end up with the future without servers Go will have a very hard time.
- 411111111111111 5y agoIf you actually needed performance you couldn't use a garbage collected language. Golang isn't really faster then any other on the same playing field (compiled and with GC).
- Cthulhu_ 5y ago> If you actually needed performance you couldn't use a garbage collected language. This is incorrect; HFT platforms have been written in Java for example (https://news.ycombinator.com/item?id=24895395 https://news.ycombinator.com/item?id=24895395). But it's about either tweaking GC settings or mode, or avoiding using the heap entirely if you can. Go is still slow if you (over)use the heap, but at least it gives you the choice and plenty of tooling to analyze it.
- likeabbas 5y agoHFT’s have the luxury of a 9am-4:30pm ET trading window and memory being relatively cheap. But things like self driving cars don’t have that luxury. I really like the arena libraries you can use in Rust where you can have logic to free untouchable memory at a specific time.
- pjmlp 5y agoWhich is why real time GCs aren't free beer. https://www.ptc.com/en/products/developer-tools/perc https://www.ptc.com/en/products/developer-tools/perc https://www.aicas.com/wp/products-services/jamaicavm/ https://www.aicas.com/wp/products-services/jamaicavm/
- staticassertion 5y agoIsn't it like... literally just that one HFT company that did this? I've seen it pointed at for years, but afaik the vast majority use C++.
- kmarc 5y agoMany companies did this in the past. Nowadays Java, Go, etc GCed languages are still used but not for the hot path anymore. They are a couple million times slower than what we need.
- dabraham1248 5y agoNo. There's one that made noise about it, but I personally know more than one other from working on their code. Not going to name anyone because I'm not sure they want their tech decisions publicized. Also some performance-sensitive chunks of wall street itself (depending on how you define "wall street itself". And "performance sensitive" (what I worked on was more "high throughput" than "no pauses".).) run on java. TBF, I write a lot of java, so my perspective is probably biased, but I can assure you, it's out there.
- pjmlp 5y agoHad the Kubernetes team not rewritten it from Java into Go, it would had surely been a different outcome, specially taken into account the Mesos ecosystem originally.
- yulaow 5y agoIt probably helped, but it is not at all the reason why it got that traction For comparison see Dart which was pushed even more by Google (I still remember when we were being inundated by "dart is soon gonna replace javascript everywhere" posts/videos) and now has not even remotely the userbase of Go and it's just a niche language for its specific framework Flutter
- zozbot234 5y agoTypeScript managed to be more successful than Dart in the whole "compile-to-JS" space.
- pjmlp 5y agoPolitics, the team behind Dart dropped it on the floor, and most of the original team left Google. It was only rescued by AdWords team , and then Flutter team picked it up. The Android team is also not in love with it, and Jetpac Compose is surely an reaction to it.
- arooaroo 5y agoDart is also a Google conceived language but it’s not exactly what I’d call popular despite only hearing positive things about the language itself. Unlike Swift or Kotlin that are heavily entwined with the main mobile platforms, nobody needs to use Golang for any particular reason. As far as I can tell its developer experience is pretty good so people have opted for it because it fits their needs.
- giancarlostoro 5y agoThis is a good example of why a big name doesn't guarantee adoption. Look at failed Microsoft development stacks too, and hell JavaFX had potential but I have seen zero effort from Oracle in terms of UI libraries. It's a shame, if Java could produce a serious UI solution I would of crawled back long ago. I can only hope Maui runs on Linux eventually.
- deleted 5y ago[deleted]
- ericbarrett 5y ago> If we use Rust as an example, it's super easy to include high quality libraries (just add s line in Cargo.toml and you're good to go). Assuming a web server—Which library? Which version? How many commits does it have? When was the last one? How long will it be supported? Is it async? How many deps will it pull in? Will it be superseded by a fork? Does that fork have a different API? Will I have to bump the Rust version to match it in the future? Ok, I've gone to another team and their app uses a completely different library, what's the answer to all those questions again? Etc. With Go, the answer is and always has been: include "net/http" I love Rust, but its DIY libraries can be quite a barrier to overcome when starting a project.
- nicoburns 5y agoI'm not quite ready to announce it yet, but I'm working on a site that will provide a curated guide to the Rust ecosystem. There are packages that are well supported and de facto standards, you just need to know which ones they are (in this case the answer is "axum"). In the future the answer may be go to <SITE-URL>, look up the HTTP server category and either read through a few one-line descriptions or just use the recommended package.
- bad416f1f5a2 5y agoThat is great, and as someone just starting to dabble with Rust I'd love a resource like that. But: no matter how well-curated your site is, and no matter how quality those libraries are, and how well maintained, "batteries-included, in the stdlib, backed by a compatibility promise that the dev team is willing to uphold" carries some serious weight.
- nicoburns 5y agoIt does, but it's not without its downsides either. stdlib modules might end up being abandoned or deprecated because the design can't be changed and it doesn't work well anymore or there are unfixable security issues. Python's stdlib has plenty of such modules for example. Considering that the Rust dev team is mostly volunteers, and many of the most important non-std-lib libraries in the Rust ecosystem are maintained by those same people I feel like there's less of a distinction than there is made out to be.
- wewxjfq 5y ago> it's super easy to include high quality libraries Which add +100 dependencies, many of them 0.x and constantly changing. I remember updates where I clicked through the docs of three different crates to decipher cryptic compiler errors. And don't get me started on getting started with Rust - Go is much easier to learn.
- randomdata 5y ago> I attribute Go's success purely by it being pushed by Google. I would say that having Ken Thompson and Rob Pike's names attached was far more significant than Google. More than that, though, it was successful because it solved problems people had at the time. The solution space is much larger today, but at the time Go was quite unique in filling its niche.
- deleted 5y ago[deleted]
- Tozen 5y agoAgree about Go and Google. With Google at your back, the question changes to how could you possibly fail? Not to say it's impossible, but is to say it's quite hard to do.
- geodel 5y agoTrue. That's why I have never ever seen any failed product that is launched by Google.
- randomdata 5y agoI don't agree. Go being created by the Bell Labs legends, the same people who fathered C, Unix, UTF-8, Plan 9, etc., was what caught attention. Google's involvement was downplayed, and, in fact, at the time Google people were all like "We don't use Go or even like it."
- Tozen 5y agoI don't totally disagree with your point. Ken Thompson is a legend, by himself. However, neither he nor the other creators made their own language, without backing. We will likely never know if by themselves, the Go creators would of had a hit. Even when it comes to talking about a legend like Ken Thompson, he still was working at Bell Labs (AT&T), and had that huge company behind his work. Go was created at Google, and prominent among the language's goals, is that it serves their purposes.
- Tozen 5y agoConnected to that, it's easier for Google (in tandem with YouTube) to destroy or inhibit competing programming languages as well. Quite easy for them to depress views, spread or emphasize misinformation, etc... The power of Google to influence how people see things, is not something to be underestimated, even for what might seem minor or beneath them to do.