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.
I don’t find myself comparing programming languages to relationships and ex-girlfriends that often.
I should clarify. I’m not blaming JavaScript.
Yes, I do have a problem with JavaScript.
(I might have resolved my issue, but more on that later)
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.
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!
My girlfriend found herself once again listening patiently to my rants about JavaScript:
Over and over again.
Every week.
Sometimes, twice a week. (P.S. I’m sorry, love.)
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.
“I…”
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.
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.
How about we start from the beginning?