Languages over time

First Language: BASIC, or Pascal depending on how you count.

Basic came with some Commodore business machine that definitely wasn't the 64, 65, or 128. It was the BASIC that came with MS-DOS. It was where I learned that programming needs a big book with all the commands, a paradigm I carried with me until the dawn of Google. The first language I programmed in using mostly online documentation was Perl.

Pascal came with my first computer-class in high-school. Didn't do much with it other than learn basic programming things like functions, types, and datastructures.

Had Difficulties: Coffeescript/Javascript

This is a recent one. We have a Hubot-based chatbot at work, which is written in Coffeescript because we built the chatbot in the 9 or so months when Coffeescript was seen as a useful abstraction for Javascript. Javascript works differently enough from every other language I use that I had real trouble reasoning it. Kind of like someone who learned English, French, Spanish and German suddenly trying to pick up Mandarin; your assumptions are wrong in ways you can't predict.

Before Coffeescript took the crown, it was C++. Object-Orientedness blew my brains for years. It actually was Powershell that got me thinking about OOP in ways that made sense.

Most Used: Puppet, Bash, Python

Puppet is how I code my infrastructure these days (Terraform is in there too, but is less used since it changes less often). I'm pretty advanced in this, having gone so far as to write both custom types and facts in order to solve problems. The Docker-based future we're all heading towards has me sighing about having yet another foundational piece of my understanding rotting out from under me due to legacy. I'm very good at managing fleets of VMs. Container-ships will be the next platform, and puppet doesn't really play there.

Python and Bash are how I do complex things on my infrastructure. In spite of our Docker future, I expect this part to continue. Utility scripting is all about automating the Docker bits (if not custom monitoring scripts here and there inside ye olde container).

Ruby used to be there, but default-system-support for python is more complete, so it won out.

Totally Hate: C

My CompSci degree was in it, but I haven't written any C in over two decades at this point, and that's OK. I can barely read it anymore, but I keep at it since digging through some open-source utility's code is sometimes the only documentation offered.

Most Loved: Ruby, Powershell

The advanced bits of Puppet are still written in Ruby (the JRuby variant). My first startup was a Ruby startup which is where I learned it. And golly, that community is nifty. I just like it.

Powershell is on this list because it was the first sign of the new Microsoft I ever saw. A Microsoft that seemed to be getting it regarding how modern systems administration was done. It was the language that got me thinking about how everything-is-an-object actually works in modern languages, which set me up for learning Ruby later.

DayJob doesn't have me using Windows in anything, so I haven't touched PS in years. But it still holds a special place in my heard.