5 ms·
Go is an iteration of C, not of Java. It's a really bad choice for situations where Java is a good choice as not only is the language limited, the ecosystem ar
by radicalbyte 2y ago
Go is an iteration of C, not of Java.
It's a really bad choice for situations where Java is a good choice as not only is the language limited, the ecosystem around it is also very limited when compared to say Java.
I'm maintaining Go, C# and TypeScript as my main languages as that gives me excellent coverage. I'll add Rust to the mix when I have 6 months where I can accept the productivity drop or have a project where the quality requirements are lower (it only takes a week or two to pick up a language, it's learning how to engineer within the ecosystem which takes the time).
- sterlind 2y agoHow is Go an iteration of C? You can't use Go to write a kernel, or program a microcontroller, or for high-frequency trading or a web browser or a tensor library or a language run-time. It's either a bad idea or simply impossible, depending. Someone please explain to me what's C-like about Go other than vaguely the syntax and that it compiles to machine code.
- SirGiggles 2y agoTo be pedantic for a moment... > You can't use Go to write a kernel ... Not a production kernel, but MIT did use Go to "study the performance trade-offs of using a high-level language with garbage collection to implement a kernel" [1] There is also gVisor [2] which implements, as best as I can describe, a kernel in user space. It's intent is to intercept syscalls made in containers and to redirect its execution in a sandbox. > ... program a microcontroller ... I'm not sure if one would classify this as a microcontroller, but USB Armory did write a, iirc, Go compliant runtime for bare metal ARM and RISC-V [3]. There is also TinyGo [4] with the following listed microcontroller support [5] [1] https://github.com/mit-pdos/biscuit https://github.com/mit-pdos/biscuit [2] https://gvisor.dev/ https://gvisor.dev/ [3] https://github.com/usbarmory/tamago https://github.com/usbarmory/tamago [4] https://tinygo.org/ https://tinygo.org/ [5] https://tinygo.org/docs/reference/microcontrollers/ https://tinygo.org/docs/reference/microcontrollers/
- zaptheimpaler 2y agoThe refusal to use anything language designers have learnt since 1970 is what makes it C. No sum types, poor error handling, no map/filter funcs, all the other stuff written in the post. Java has all of that, any language after the 90s has most of that, Go doesn't. Actually even C has sum types lol. The fact that it can't fill many of the usecases that C can and yet has ergonomics as bad as C makes it even worse.
- dfawcus 2y agoC -> Alef -> Limbo -> Go ? With influences from other languages along the way.