Hackernoon logoJavaScript, for better or worse by@ashkumar

JavaScript, for better or worse

Author profile picture

@ashkumarAsh Kumar

“It’s like, I’m cheating on JavaScript by fantasizing about the relationship I could have had, instead of being in the here, now.”

My girlfriend tilted her head slightly and, with pursed-lips, gave me a slow, firm nod. For quite some time, this was the hard-earned realization she was hoping I would come to.

Let’s backtrack a bit.

I don’t find myself comparing programming languages to relationships and ex-girlfriends that often.

I’m here to talk about a problem I have with JavaScript.

I should clarify. I’m not blaming JavaScript.

Yes, I do have a problem with JavaScript.

And it’s completely my own damn fault.

(I might have resolved my issue, but more on that later)

In real life, I’m a front-end developer.

Where I work, we create SPAs with React, Redux, and TypeScript along with other tools commonly associated in using these technologies.

This is something that is still kind of new for me.

This time last year, I was a few months in after having quit my last job, having decided to completely alter the trajectory of my career towards that of being a developer.

I was giddy with the excitement of having finished a few courses on C#, .NET and ASP.NET MVC from Pluralsight. I was certain that I wanted to be a back-end developer using Microsoft technologies.

My first rule for successfully changing careers was, ‘Always have fun’. And so it was that with .NET and C#, I was having a lot of fun.

So far, I had avoided learning JavaScript. Eventually, I begrudgingly accepted having to learn JavaScript as something I’d have to do to pad my résumé.

I was under the incorrect and biased assumption that I would eventually get a job doing ‘serious’ programming. Therefore, I didn’t believe I would enjoy doing whatever it was developers did with JavaScript.

I’d learn JavaScript but only because I needed it to getting a job doing something else.

That was before I discovered Eloquent JavaScript.

Marijn Haverbeke’s chef-d’œuvre completely changed my perspective. Functional programming in JavaScript was amazing. Learning about, and struggling to understand, prototypal inheritance gave me an intellectual high.

No longer were my ideas based on an irrational identity I had created in my mind about the sort of developer I would want to be.

Having given it a real shot, I started to really enjoy learning JavaScript!

Fast forward to the present day.

My girlfriend found herself once again listening patiently to my rants about JavaScript:

  • “No, I don’t really hate the language. It’s just that the ecosystem scares me. It’s too fractured. And it changes too often!”
  • “Yes, I have it good where I work. We only rely on the most stable packages from NPM. It’s true; I haven’t yet got terribly stuck having to maintain a defunct package.”
  • “And yes, even if I had to, I’d have help. I have a great team; a good mentor. But that could change one day…”
  • “No, you’re right. I don’t even actually code straight-up JavaScript. My team uses TypeScript. That’s the one I told you about — made by the same guy who made C#. Yeah, it’s great.”
  • What am I complaining about then? I don’t know! Like, seriously, I like my job. Our projects are interesting. I doubt I’d get something better in a .NET shop.”
  • “I just… I don’t know why I’m dissatisfied. Everything tells me I should be happy!”

Over and over again.

Every week.

Sometimes, twice a week. (P.S. I’m sorry, love.)

This time, though, our discussion took a turn in a different direction.

I don’t get it, Ash. You’re really patient with yourself when it comes to other things in your life. You’re way more accepting in your relationships, your hobbies…
Why can’t you be more accepting of your main programming language?

I don’t know… I guess it’s because I feel invested in my hobbies and my relationships. I don’t feel invested in something I might want to not do in the future.”

Then maybe that’s your problem. You don’t enjoy JavaScript, despite everything being great, because you refuse to invest in it.


And that’s when she layed the smackdown:

Imagine doing that to someone you were in a relationship with.

That’s when it hit me.

JavaScript. I’m sorry. I’ve been cheating on you.

I’m like that partner in a relationship who hasn’t gotten over his or her ex.

I lament the loss of being able to program in C# even though I’ve been programming more effectively, and for longer now, with JavaScript.

I fantasize and romanticize my relationship with .NET while at the same time criticising my fortunate reality with Node/NPM & JavaScript.

All those times:

  • I could be investing in myself by learning Node. Instead, reading article after article, I keep hoping from one technology to another.
  • I could be contributing to open-source today. Instead, I’ve demotivated myself by telling myself I’d should do so only in languages I aspire to program in.
  • I could be reading YDKJS. Instead, I am accomplishing nothing by reading posts on Reddit that rag on JavaScript.
  • Instead of snubbing and ignoring it, I could be actively participating in the fastest-growing developer ecosystem in the world.

No more.

JavaScript, I’m sorry. I cheated on you.

How about we start from the beginning?

You have my complete attention.


Join Hacker Noon

Create your free account to unlock your custom reading experience.