10.4.17

Reason to Go popularity: wisdom and experience in language design and implementation

Go is based on lifelong experience of some of the greatest minds in computer science and practice. The Bell Labs Computer Science Lab historical wisdom was brought to Google by Pike, Thompson. Richie, Cox et al. Griesemeier brought in some very influential work from ETH. Other members of the team are as clever.

A million small and big things flow from this.

The “implicit interface” concept and the “type embedding as inheritance” concept, and the goroutines/channels are the most important.

But there are a hundred other details done right. Explaining every one of them would be tedious. They form an orthogonal harmony without creating unnecessary complexity. I don’t claim to understand the beauty of all the details. I learn every day. A telling example is, that Rob said that it took a very long time to get the slice concept right, to fix the classical C confusion between array indexes and pointers. I suspect there are some instincts that resulted in designs that even the creators didn’t appreciate fully until later.

No feature was left out without a reason. These guys certainly know everything of language theory, operating systems and hardware. Everything that is in the language and everything that is missing has been carefully thought out and balanced with complexity, which costs as optimization difficulty, tool design difficulty, slow compilation, bugs and security vulnerabilities, learning curve and rigidity for future changes.