During a keynote that was way to short for him to decently develop his ideas, Rob Pike puts the finger on some of the things that hurt us developers.
It can be summarized with the following bullet points:
- The languages mainly used today are verbous, noisy and complex.
- His personal analysis shows us how we got there. C became dominant in reasearch field on Unix. The need for higher level constructs lead to C++, a poor choice but with the advantage of compatibility with C.
- C++ became the language of choice in parts of industry and research. Java came as a clearer, simplified version of C++.
- In the late 1990’s, Java took its place as a standard language for teaching.
- Programming has become too complicated and hard to use. Like in a bureaucracy, every step must be justified. Replication became a placeholder for safety.
- A confusion arose. The world has split into a false dichotomy: nice, interpreted, dynamic versus ugly, compiled, static.
- Go tends to combine the safety and the performance of statically typed languages with the expressiveness and comodity of dynamically typed and interpreted languages. It also aims at being suitable for modern systems.
You may of course disagree with Rob Pike’s views but I can certainly relate to them. There are so many good tools out there. Don’t accept the status-quo only because it is more comfortable. Don’t dwell on the same tech stack only because it works although it hurts your productivity. Join the rebellion, free yourself from the past and break the vicious circle.