Subscribe to Blog via Email
What are the fundamental principles of the Go programming language?
- The world has moved on since 1970 (C: Kernighan and Ritchie). But the world still needs a low level language.
- Pretty printing and statement termination are solved problems. The programmer does not need to be forced to deal with them.
- You can have a low level language and still have associative arrays, extensible arrays and garbage collection as primitives.
- The world needs strict typing. But we can hide that from the programer pretty well.
- Encapsulation is a good thing, but you can skip inheritance and most of the other object oriented stuff.
- It’s about time parallelism was enshrined as a programming primitive.
[Originally posted on http://quora.com/What-are-the-fundamental-principles-of-the-Go-programming-language/answer/Nick-Nicholas-5]
Nononono. Go has concurrency, not parallelism. Parallelism is when you throw two balls in the air from your two hands and they land back in your hands at the same time. Concurrency is when you juggle n+1 or more balls in n hands.
And after a week debugging my own code handling concurrency, I’m not as much a fan as I used to be…
Cold comfort, I know, but in almost any other language it would be worse. Shared-everything threads with locks …. ~~shudder~~