In working with the January cohorts, I’m finding myself waxing nostalgic. Today, I saw how some of my apprentices were working on a problem involving a vending machine, and just seeing vending machines implemented in Java made me feel all warm and fuzzy inside.
Those of you who’ve been around me a long time know that I’ve hated Java for how slow it ran back in the day. But one of my most fun times programming involved learning Java.
I knew Jason and Emilie from ACM. I knew of both of them through talking with friends, and I knew they both were super smart. So I was terrified of slowing the team down at OOPSLA, being the inexperienced one on the team. However, I did have two semesters of C++ under my belt, which made it that much easier for me to pick up Java, syntactically.
Jason and Emilie were both very patient and also great at explaining things. While I felt unnerved writing in a language totally new to me, I eventually got the Swing of it. (What?!? I couldn’t resist!)
There were 2 things that stand out about that experience that still hold true today…
- Programming languages are tools in my problem-solving tool belt. I like having a bunch of them in my tool belt, ready to wield for the appropriate problem.
- Crash-learning a language can be a lot of fun! “Crash-learn” is my term for learning a language as you’re solving a problem that is demanding that language. With OOPSLA 99, that was my second time crashing on a language like that in 1999; for my Y2K Programmer position that summer, I had to crash-learn FoxPro. I have since crash-learned C# as well.
I used to hate Java for running slowly. Nowadays, though, it isn’t so bad. I’m glad that I had a positive introduction to it to reflect back on. I’m also glad that I get to work with the Java cohort at the Software Craftsmanship Guild, as it’s what has convinced me that Java has matured a bit since I had last seen it.