Last year, the new years resolution in my peer group was to learn a new programming language, as every year. I considered that for a while and while searching for languages, I decided otherwise: my new years resolution for 2014 was strictly not to learn a new language except if my job dictates (I learned Python because of that)1. I consider that a success and will continue in 2015.
My reason was and is as follows: I do know and have used in practice enough languages to implement almost all parts of a current (internet) software stack competently. Language-wise, I am a full-stack engineer (I don’t give much for the term). I do list “programming languages” as one of my hobbies. However, I’m growing tired of the language craze: while new things like Idris and others have lots of appeal to me, they also mean spending lots of time working with things I’ll probably never use. Also, if I ever wanted to learn them for practical usage, I’d have to learn them deep, which is an issue with no practical project at hand. This takes a lot of the mental bandwidth and efforts away from other things I could learn about: the building blocks I build systems with. Operating systems, databases, queues, methodologies, people, all the design stuff. A distributed data problem remains one, no matter in which language I write the programs handling it.
So, this year again, I’m not going to learn a new programming language, but I’m going to play around with those I know. And concentrate on everything that relates to programming but the languages.
For those that follow me closely: I started learning Rust in 2013, so I don’t even break that rule :). ↩