Golang authors and promoters claim one of the biggest benefits of the language is being "simple"
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software
The missing features in the language rather than being a drawback, are considered its strength which makes Go simpler to learn and to use.
After learning and using the language for a short time, I came to wonder what makes a language or any tool simpler than other. Let's have some fun thinking about a few examples outside the world of programming.
Imagine your goal is to drive a nail. Which tool is simpler: a rock or a hammer? I believe the rock is simpler. Rocks has been in the nature for millions of years and they have been used by humans since we learned to stand and walk on two feet. You can even find one right there in your backyard. On the other side, a hammer is much more complex. It requires an industrial process to manufacture it. Behind it there are different materials like wood and steel, there is a factory with machines, a logistic system to move it from the factory to your nearby store and someone willing to sell it in exchange for money.
However, if we ask ourselves which tool makes the task simpler. Probably, you will agree that it is easier and much more pleasant to drive a nail with a hammer than with a rock. Don't you think so?
Let's have fun with one more example! Now your goal is to travel from New York to San Francisco. Which tool is simpler: to walk or to take a plane? Certainly, walking is a simpler tool. You have learned to do it since you are one year old! You just have to move one foot, then the other and repeat the sequence enough times until you arrive to your destination. On the other side, a plane is quite complex. Although, I know there are well-known laws of physics behind, I am surprised each time I see one of those big machines raise from the land and fly. Even buying a flight ticket is quite complex. There is a huge complex network of systems behind it just to get a booking number that allows you to jump in a plane and fly.
Similar to our first example, if we consider which tool makes the task simpler, unless your name is Forrest Gump, I imagine you will pick up the plane to go from New York to San Francisco.
These two examples helped me to arrive to the following conclusion:
In general, the more complex the tool is, the easier for us to achieve the task
Of course there are tons of complex tools that are quite hard to use. Yet, the intention of building complex tools should be to provide us with a much simpler user experience by hidding all the complexity underneath them.
So, I wonder if those who think Go is a simpler programming language, also think it makes the task of programming much simpler or rather the programming user experience would be better with tools that have some of its missing features.
Write a comment and let me know what you think!