Also the difference in quality between Firefox and plan9 is revealing in and of itself
@amiloradovsky @sir My background is ANSI C (~15 years), read a few books on Scheme and Common Lisp and Erlang and later Elixir as well as an intro in lambda-calculus (in ML). I had to learn Go last year but current project is in Rust. I'd say wait for Go to get to 2.0 (I jokingly say "wait for an ANSI standard") as it's not as awesome as it could be -- but a decent python replacement. Rust has ML influence and is a *very* fast moving target. Last awesome stable feature is NLL.
@amiloradovsky @sir One big difference that reviewers often leave out but is an important thing for system programmers: Go doesn't use libc (it essentially reimplements it) and calls syscalls directly, while Rust prefers dynamic linking.
Thread model is different as well: Go uses it's own scheduler which results in a M:N model, while Rust moved on to 1:1 (rust thread is created via pthread_create). Most UNIX kernels follow 1:1 model which makes Rust 1:1:1 if you will and Go's M:N:N.
@max @sir I'd say "generics" ((type-)parametric structures/modules) is an important feature, although somewhat complex.
Being small and simple is an advantage, but only among the systems with roughly equivalent functionality. And there are languages/systems even simpler and smaller than it, yet more powerful.
@veer66 @amiloradovsky @max my concern is that this doesn't feel like a Go feature to me. Go has this awsome habit of sitting quietly on contentious features like generics for a while so all of the smart people involved in Go can have a good think on it, then finally coming out with an industry-shaking elegant solution to the problem. Go modules are a great example: it was shit for a long time and then a solution was found which puts every other dependency management solution to shame. I want to see the same thing happen for generics, and I'm prepared to wait as long as necessary for the right design to be found
cmpwn.com is a private Mastodon instance for friends of SirCmpwn.