Tuesday, May 12, 2015


Dear Python,

We had some good times. When I broke up with the last language, you were just what I needed. You were there when I wanted you, but never overbearing. You and I were two peas in a pod.

But lately I've been getting restless. I've been getting a bit more concurrent, and a bit less "hey I need a web framework and a template language". I feel like you haven't been listening to me when I tell you that I really need massive concurrency. I know you hate types, but lately I've been begging for some type safety and the best you've given me are weird type annotations via doc strings. They work, I guess, but they're not all that I want. I'm just not getting what I really want and need from you anymore.

Look, to be completely honest, I met another language. This other language, it has concurrency off the charts. It has a rich type system that has expanded my understanding and resulted in new ways to ship libraries that can be used in any way imaginable without issue. Instead of installing various libraries and creating directories and making virtualenvs, I can copy a single file to a server and run it. And it even has a fully compliant http 1.1 and http 2.0 server in it - so completely compliant and secure that there's no reason to proxy behind nginx. In fact, it's had less security issues in the past year than nginx (due to openssl).

So really, my dear python, it's not you, it's me. I think you're grand, but I need something more. I'm sorry that it's come to this. We will still be friends since you are dating most of my coworkers now, but I've moved on.

Of course you're still welcome at certain gatherings. Everyone is happy to have a go-to for web handy. Scripting is best done with you riding shotgun. Various sysadmin tasks wouldn't be the same without you. But for what I do day-to-day, you just aren't meeting my needs. I'm so sorry.