I’m a hater, especially when it comes to programming languages. I approach most of them with pessimism, I rarely look at new language and think it’s great right away.
I started programming in high-school with QBasic. I made a small choose-your-own-adventure style game in text-mode, then moved on to C. I didn’t like C much: it didn’t feel expressive enough, and was too hard to use for the noob I was. I started programming seriously after high-school and discovered C++ during my 2nd year studying computer science. I became instantly a fan, C++ had so many features, the language felt more expressive, more powerful. I though I could master it within a few years. It took me a good 5 years to realize that C++ was too big: It seemed baroque and overly complex after all this time. After 5 years I still didn’t master most of the language; like everybody I just used a subset. I went back to C and saw what I wasn’t able to see then: C was expressive and simple. I took me years of struggle with the seemingly cool features of C++ to realize C was the best part of C++.
Python looked a bit ridiculous when I first used it. I didn’t like the indentation to define blocks, or that the language was interpreted, I didn’t get that a dynamic language opens up a realm of new possibilities. At the beginning Python felt like slow, and dumbed down C++. It took time writing Python everyday to fall in love with it, but after a year it was my favorite language. I’ve been writing Python personally and professionally for 10 years now.
Then I heard about goroutines, channels, & Go’s select statement, after that it all made sense. Go has an elegant solution to a fundamental problem of modern computing: concurrency.
The semi-colon insertion turned out to be a convenient quirk.
Go became my new toy a month ago, it’s now on track to replace Python as my favorite programming language.