4 ms·
They might be trying to do another C, that is so simple that it will be ubiquitous? They're failing to understand that C would never take off it invented today.
by lionkor 2y ago
They might be trying to do another C, that is so simple that it will be ubiquitous? They're failing to understand that C would never take off it invented today. Go is nowhere on my list of languages I would use - there is simply nothing it's great at. Serialization/deserialization? Rust. Multithreading? Rust. Low level high performance stuff? C, Zig. Quick scripts? Bash, python, JavaScript, Rust. Really fast concurrency? C++ or Rust. Web servers and services? Either nodejs, something static on an existing webserver, or rust for backends.
I completely fail to see where Go excels. Large, statically linked binaries that aren't even concurrency safe...? Really? No enums? Odd syntax (I like Rust, C++ and Haskell, I find Go's syntax odd still).
Like so many Google products, it solves a problem that nobody I know has. And I guess they can afford concurrency bugs, who cares, its only a language primarily for concurrency.
- tacitusarc 2y agoHave you used Go? Most of your criticisms are, in my experience, incorrect. But ultimately there are tradeoffs, and Go seems to be a divisive language. In my experience, Go excels at pushing you towards solving the problem rather than yak shaving. And in my opinion that is worth it’s relatively minor frustrations.
- pjmlp 2y agoMany of us that critise Go, no only have been around the ecosystem since the pre-1.0 days, we also happen to have a broad experience in programming languages since the days writing complete applications in Assembly was pretty much daily business.
- ironmagma 2y agoCompilation time is fast, and it’s debuggable. Typescript would be the main competitor in my mind, but compilation with TS is slow and you have no parallelism without native extensions.
- sambeau 2y agoGo is a tiny language. I can easily hold it all in my head. I don't think I can say that about any other language I've used. Not even C.
- homebrewer 2y agoIt is a passable replacement for CLI utilities (so basically Python or bash) thanks to the rich ecosystem, easy cross-compilation, and static linking, which makes deploying the result easy while also avoiding the horrible mess and pain of handling Python dependencies, or remembering dozens of tiny incompatibilities between various flavors of UNIX utilities. Unlike Rust, one is not required to have three digit IQ to use the language, so that's why I've been using it where previously I would have resorted to Python (and then either copy venvs around, or write packages for my packages to ship dependencies of my dependencies). I too fail to see why would anybody use it for anything else, especially compilers or more complicated server stuff where you really benefit from having a proper type system, but people do, so I must be missing something...
- za3faran 2y agoIt's a better Python, that's where I see most of the real world use cases. After dealing with Python for a while now, I would take golang any day of the week lol. But for backend systems, there are far superior alternatives.
- pjmlp 2y agoThe only thing it does better than Python is being a compiled language.
- flkenosad 2y agoIt's great for large software projects that need tons of random contributers. For example, Gitea.
- pjmlp 2y agoC is only simple in theory.
- Yasuraka 2y ago> Web servers and services? That's it, mostly. CRUD is also a huge part of the industry, unlike "Serialization/deserialization", which are a means to an end. > Either nodejs, something static on an existing webserver, or rust for backends. Horrendous choices, I daresay. Why do people use Java and C# ?
- zarldev 2y ago>That's it mostly... Whole kubernetes, docker, traefik and many other cloud native tools are written in go.
- Yasuraka 2y agoThey are my daily bread and I sloppily lumped them in with "web [...] services", but in hindsight they ought to be a separate category - fundamentally about a different layer,infrastructure, and might not even be networked.
- pjmlp 2y agoMany tools on DevOps ecosystem are now going through the RIIR phenomenon, and I bet, had Rust 1.0 been available when Kubernetes decided to migrate away from Java, after Go heads joined the team (see FOSDEM talk on the matter), or Docker moving away from Python, most of those tools would have been written in Rust instead.
- Yasuraka 2y ago> most of those tools would have been written in Rust I seriously doubt it for the same reason that Google, with all of its expertise and tooling for it, didn't choose C++, twice.
- pjmlp 2y agoYou may doubt it, I keep my certainty, given how much Go is being used at Google, versus Java, Kotlin, C++ and Rust.
- pjmlp 2y agoEven back in its heyday what helped C take off was AT&T not being allowed to profit from their Bell Labs research. Do you think UNIX was sold at VMS, MVS, System/360 prices, even with university discounts, every university on the planet would have been rushing to adopt it on their timesharing systems? The lawsuits done by AT&T years later, the prohibition of Lion's book, and Sun introducing the concept UNIX developer license, shows how it would have gone.
- alpaca128 2y agoC has tagged unions, though. That's the wild thing about Go, it doesn't even cover all basic C features.