Here’s my story so far.
My Love Life: Java Started It All
I loved Java first. It was through her that I first learned the joy, and frustration of programming. She wasn’t always easy to work with. You had to know the magic words to make her happy, and she was very strict about their usage. Looking back, I think I never really understood everything she was doing, and never appreciated how much of her time and resources she spent cleaning up after me.
Java was the one who took me by the hand, and taught me the basics of how to be careful, precise, and end every sentence with the proper punctuation; I still fondly remember the algorithms we implemented together. Self-balancing Red-Black Trees, breadth-first graph searches… we made them all work.
I thought we’d be together forever. But after I graduated, we just never had a chance to hang out. And, over the years, we just… grew apart.
std::relationship::itscomplicated - C++
Instead, I came to know C++. Our relationship mirrored her nature: complex. C++ absolutely, positively, refused to put up with any of my garbage. She wouldn’t hold my hand in any way. “Just get it right the first time”, she would say. “Why should I have to check for you?”
If I were to ask her for indices outside the list boundaries, Java would have gently reminded me of my mistake. C++, on the other hand, would simply carry out my request, her face showing no reaction at all. Only if the offending operation angered the operating system itself would a fault segment her emotionless demeanor. I never heard her cackle, but I always felt her sniggering under her breath. And I swear that if she obfuscated the error notices any more, they’d be studying her methods for encryption algorithms. And don’t get me started on her arcane requirements for compiling and linking, or how verbose and forma our conversations always were…
And yet, I loved her too, in a way. C++ was always high maintenance, but once you got to know her, you could get a lot done. She wasn’t friendly, but she was efficient, and she made me a better man. It was under her tutelage that I developed care and skill far greater than I’d had with Java. I began to notice the small things, like the difference “<” and “<=”. I became comfortable with command-lines, and debuggers. I took more care in my work. And I bought a rubber duck to talk to.
We had a good relationship, C++ and I. But, without real passion, I suppose.
Python, on the other hand came crashing into my life like a manic pixie dream girl from
I want to try a new algorithm or technique? I can get it running (note: not necessarily working properly) in minutes.
I want to solve problem x? It feels like with Python, the solution is usually just
import useful_library useful_library.solve_that_exact_problem_x()
# fizzbuzz to 1000 in Python from algorithms.strings import fizzbuzz as fb print(fb.fizzbuzz(1000))
“Can you get me the, the thing”, you say. And she hands you the thing you couldn’t find the words for. “And here’s the other thing”, she says, before you can even ask. We just… get each other in a way I’ve never had with a programming language before.
It may not last forever. Next year, I might be raving about R, or Ruby, or some other language (I’m hearing some people talk about Kotlin…).
And I still have a place in my heart for Java, and even for C++.
But for me, for now, with Python… I’m in love.
I can be reached at firstname.lastname@example.org
This blog was inspired in large part by AI Weirdness. Have a look, it’s delightful.