Your Life in Programming Languages

Your life in terms of programming languages:

Python is the boy you kissed in the woods at Bible camp. You liked it but you’re not sure who to tell about it. Best keep it a secret and use that knowledge a little later on.

PHP is your first serious relationship. You’re pretty insecure about what you want, but it comes along at just the right time and convince yourself it’s what you want. You spend all your time trying to figure out how to make it work and realize there isn’t a lot of depth there and eventually break it off and never look back.

JavaScript is the one you marry. You fall head over heels in love with JavaScript. You can’t stop thinking about it, you want to rebuild all your projects in JavaScript and only see a future with JavaScript. JavaScript pushes you and causes you to grow and reminds you who you are and has real personality. You have so much fun together and you never run out of libraries to work with and there is nothing but endless adventures and ideas waiting for you.

Then things start going off kilter a little bit and you wind up with prototypal inheritance to the point where you don’t know where you are anymore and you only had pure intentions to begin with; you still love the language but feel stuck all the time.

Ruby is the one you see on Facebook every once and a while and go ‘what would life be like if I had given them a chance in college instead of having my head up my ass’. You have a lot of unresolved feelings about Ruby. Even if you wanted things to work out with Ruby, you’re not sure how to get started, ultimately you just leave it alone.

Elixir is the one you consider leaving JavaScript for but don’t. Elixir seems cool, it’s all the things you’re missing from Ruby, but you’ve made your life with JavaScript; so you’re conflicted. You work up the nerve to finally get alone with Elixir on your project and you realize there’s all this baggage with Erlang and you remember why you loved JavaScript to begin with.

Swift is the one you spend time with after you and Javascript mutually decide to take a break. Swift reminds you of JavaScript, except it’s very focused on what it wants and how you should use it. You think things are going great until the App Store audits your project and then you realize, JavaScript may have had its faults but it NEVER DID THIS SHIT TO YOU. So you open your browser, open your devtools and console.log('I still love you') and all those feelings come running back.

Haskell & oCaml are like relationship counselors. They’re not as dysfunctional as your current project and spending time with them gives you perspective and clarity you bring back to your relationship with JavaScript. With their help, you learn to love JavaScript more and give you the tools you need to not things get so bad with JavaScript ever again.

Flow isn’t so much as a language as it is the thing you use alongside JavaScript forever. Flow helps you understand JavaScript better and gives your relationship parameters to function better within.

C# is the one you drunk call. You’re buds with C#, just friends, nothing more. But then you have a few, rethink the potential that exists and annoyingly drunk call C#. C# doesn’t care because they don’t take you seriously either, asshole.