The Silver Bullet Romantic

Here’s episode 244 of “Zef talking to himself,” in which I’m organizing my thinking by writing about it publicly — because why write something in private when you can publish it, and be killed for it in Reddit comments?

So here’s my secret:

I’m a hopeless silver bullet romantic.

I realize that from childhood on I was looking for my silver bullet: my one activity, skill, game, book, whatever that I would stick to for life and would fulfill me forever. My one thing. Even though, as it turns out, I’m the type that gets bored with things quite quickly, I never gave up, and it continues to this day.

In the context of technology this irrational seeking for a the silver bullet appears in many places: what is the ultimate programming language? What is the ultimate database? What is the ultimate infrastructure model? I constantly jump on the latest and greatest to figure out if this is it, and even though, rationally I know the answer is no, I cannot help myself from continuing the search.

Let’s consider it my one and only character flaw (I can hear my wife laughing already before hitting the Publish button on this one).

One recent example, to show you how my brain works: Kotlin. A few weeks ago, Kotlin started to bubble up my radar, if you will. I was aware of it, but never seriously looked into it. One of our teams will now be investing in it, so I thought I’d do some background reading. Here’s how I operate:

  1. I buy a book and think “hmm, interesting, some good ideas here.”
  2. Then I think: could this be it?
  3. I subscribe to podcasts to do more background listening (the reality of my life is I have more time listening to stuff than reading it).
  4. I get more excited: could this be it for realzies?
  5. I’m starting to think bigger: ok, Kotlin for Android is non-controversial, Kotlin for the back-end is cool too, so how about iOS, front-end and scripting?
  6. OMG there’s Kotlin native, OMG there’s a Kotlin REPL, OMG there’s a Kotlin compiler to JavaScript.
  7. Is this it?
  8. No.

This process usually lasts up to a week or two before reality kicks in. Nope, Kotlin isn’t the silver programming bullet either. Rationally, I knew it was going to end up this way, but hey — I can’t really control this, I’m a romantic.

The good thing is that I’m now able use this oddity of mine and hack it to something productive. As it turns out, it’s a great way to do insane deep dives into many technologies in a short amount of time. Some of my previous silver bullet programming language candidates: JavaScript (pretty close to silver bullet status), Clojure, Go, Rust. And not just programming languages, databases too: MySQL, Postgres, DynamoDB, Mongo, all in search of the ultimate database. Infrastructure: Nix, Puppet, Ansible, Terraform and now serverless (except of course, serverless actually is a silver bullet). Chances are that when you ask me about some random technology I can tell you a lot of in-depth stuff that seems random to you (including how the garbage collector works, because the memory model is on my list of stuff I decide to care about).

I consider myself a rational human being. Generally. Rationally, I know there will never be a silver bullet in any software development topic. In fact, the trend seems to be in the opposite direction: rather than converging on one language, one database, the trend, especially in database is to divergence: using a graph database for one aspect of your app, a key-value store for another, and so on. At some level this is driving me crazy, and deep inside I’m still in denial.

The whole micro services trend also significantly reduces the need for the “one language to rule them all.” This gets even more extreme with AWS Lambda and other FaaS solutions. You can now solve each aspect of your problem space with a different language if you want. This was impractical in the good-old monolith days. Somebody wrote a log shipper as a lambda function in Python even though the rest of our code is Go? Whatever, if it works it works!

Yes, there seem to be rough days ahead of me. But I’ll live.

Nevertheless there is, and always will be a glimmer of hope. A hope that if I keep digging, keep exploring, keep waiting, one day I’ll find it. My bullet, all shiny and polished.

And we’ll be happy ever after, my bullet and me.

You’ll see!