Hacker News new | past | comments | ask | show | jobs | submit login

I'm c/c++ over 20 years, go 1 year, Python 5+ years. I work at a company with a guy on the c++ standards committee with the internal sdlc and engineering training for large scale, commercial systems to boot.

This article is a rant. Not an engineering take down of go. There's just not much of substance here. Were I to care about windows (I don't) for serious cross platform os interaction, go isn't your hammer of choice.

I've turned to go recently for some I/O heavy apps of a micro-service type which it is fine for. I also turned to go because of God awful c++ build times and bad build systems in the sense that they assume all code is in a single branch. By switching to go I also prevent less experienced programmers from linking in legacy c++ libraries and the evil that comes with them.

Go has delivered. My needs are such that protobuf/flatbuffer are good enough for types and go's lack of generics is irrelevant. I'm pushing bytes across a network pipe in which each message admits simple transforms/operations.

Now I am keeping my eye on three things that I think go could burn me on:

- garbage collection

- channels ... cool but slow

- something unixy/multicore/close to the bare metal ... Like kv store

Those things I'd be reticent about doing in go.

Folks, we need 2-4 languages with their connections to libraries and tool chains in our toolbox.

While we remain dominated by c++ (a complex beast of a language) I am looking to add a functional language to my kit (ocaml/Haskell). Btw good engineers need a formal language too. I recommend tla+ and there's a guy in hacker news here that's got good books on it. Recommended! Highly concurrent code ought to modeled in tla+ first before leaving your app language gun and taking the canolli.

Cheers




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: