The idea of a language or development environment that somehow protects programming from programmers — and that’s what you’re saying — isn’t the Holy Grail — it’s the unicorn (just like me). A hammer …
That isn’t what I’m saying at all. You can’t protect programmers from doing stupid things. But why shouldn’t a language or tool assist you in doing your job safely and reliably? Otherwise, we might as well write all our software in assembly language. High-level languages provide useful abstractions that allow us to express our algorithms more easily without taxing our cognition.
Interestingly, you and I share a very similar background. I’ve used complex languages such as C++ and Java, and I’ve used small, simple languages like Smalltalk and Go, and the difference is like night and day. Programming in simpler languages feels light and comfortable, like having a great weight lifted off your chest. I can work faster, debug faster. I can read my code more easily. And (dare I say it?) I can have more fun doing my job!
It doesn’t surprise me, then, that Go has become a very popular language so quickly. I understand its appeal. It’s not just for superior developers, as you suggested. The very fact that it’s clean and simple is what makes it suitable for programmers of varying levels of experience…a critical HR problem in IT. Go is a pragmatic language that addresses real-world problems of software engineering at scale.