DEV Community

Cover image for My love-hate relationship with JavaScript

My love-hate relationship with JavaScript

Deepu K Sasidharan on November 21, 2019

Originally published at deepu.tech. There are three types of programmers, the ones who love JavaScript, the ones who hate JavaScript and the ones ...
Collapse
 
konstantinklima profile image
Konstantin Klima

I am strongly on the hate side, to be honest.
This doesn't mean I don't respect JS - I would be a fool not to, given that it literally powers the web. However, I like to keep as far away from it as I possibly can.

This is due to two things:

The first is this:

Yet another framework syndrome, new frameworks and libraries are invented
on a daily basis

This I think is one of the biggest problems in tech currently, and I think JS ecosystem is very much to blame for it. This ties in with a debate that's pretty common on DEV, about the differences between being self taught or going to a boot camp and actually going for a CS degree.

People get stuck in this loop of constantly learning frameworks rather than concepts, which in turn gives them a false sense of knowledge (the opposite of the imposter syndrome), which in turn leads them to ideas of grandeur.
I am not saying you shouldn't hack at anything, but I think that there is definitely a lack of awareness and focus in the JS community.

The second thing is the fact that the damn thing just doesn't act the way you would expect in a lot of cases. The most apparent example I can think off the top of my head is console.log() of objects printing only the last state (for instance in a loop) instead of printing the current state of the object when the method is called.

Of course, all languages have their quirks, but in my experience, out of around ten languages I wrote code in, only JS had me breaking my head over things that were just plain illogical.

Again, I'm not saying "abandon JS and burn it 'cus it's the worst language in history", I just think the industry as a whole needs to find a way to cope with the bad parts of JS legacy, especially as most applications are getting executed on client machines rather than servers.

Collapse
 
deepu105 profile image
Deepu K Sasidharan • Edited

Konstantin Klima, You might have a point there.

Collapse
 
metalmikester profile image
Michel Renaud

I had a similar discussion with a coworker a few weeks ago.

About this: Sometimes I wonder if JavaScript was designed by someone during an acid(LSD) + Ecstasy trip as there are quirks in the language that is mind-numbing.

(I laughed out loud). Apparently the first incarnation of the language was a 10-hour thing. The original designer obviously had no idea what it would become (I don't think anyone would have expected it to explode like that back in the day).

I think I'm also in the love and hate category. I find a lot of things are really cool, but some of its quirks drive me nuts.

Collapse
 
deepu105 profile image
Deepu K Sasidharan

Glad to know there are more people like me

Collapse
 
pengeszikra profile image
Peter Vivo

Really exciting post about JS same good as your Rust overview. I never use: Proxy, Reflect good to know abut that!. By the way compare Rust vs Javascript, in my view ( as rust beginner ) my worst experience with Rust is so complicated burrowing and hard too figure out difference between inline and declared closure.

Collapse
 
deepu105 profile image
Deepu K Sasidharan

Thank you. Yes, thats on my TODO but is gonna take some time as it needs a lot of research

Collapse
 
konstantinklima profile image
Konstantin Klima

Basically, Javascript is Lisp pretending it is Java.

This is the most beautiful oneliner about JS I have ever read. <3

Collapse
 
takashi1kun profile image
Aitor Rosell Torralba

I personally love the quirks of javascript as they are a part of what makes it so flexible, and i think typescript lets you avoid the more common pitfalls of javascript.

By the way, why in the world would you need to migrate a thing from angular to react? as far as i am aware, they are as modern as each other, angular being even more feature complete (although i could see some people seeing that as bloat).

I can understand using one over the other for some projects, but i do not see the point to migrate a project from one to the other for any sensible reason, even if react may be better for the project, it is not going to be a massive difference, enough to choose it at the start but not a reason to migrate from one to the other.

I know i am kind of necroposting but could you expand on what reasons may justify the migration of angular to react? I do not believe for you to have done it without reason as i see you are very knowledgeable but I, from my inexperienced perspective, cannot even start to imagine such a reason so it would be enlightening and i believe would widen my perspective to learn of a reason for something I see no reason, please.

Note: I am not trying to be sarcastic, condescending or insulting, i am truly curious and i really want to know the reason, I think what I wrote may be read as sarcastic but it is not, i just can not find a better way to express myself on English, i assure my intentions come purely from curiosity and a desire to learn something i do not understand the reason of.

Collapse
 
deepu105 profile image
Deepu K Sasidharan

No worries, it doesn't sound sarcastic at all. First let me say you are absolutely right, Angular, React and Vue are equally capable and there is absolutely no valid reason to migrate from one to another in a production application. I have worked with all 3 (I did the original Angular and React implementation for JHipster) and the migration I did was mostly for the purpose of adding React support on JHipster. I migrated a PoC app from Angular to React to see if there is any performance improvement (remember this was during initial days of Angular2 and indeed React was faster then) and later used to that to add React support in JHipster. And that app was maintained only by me so this was ok. So yes I don't see any valid reason to do such a thing now a days. The only other time I have seen someone doing that is when they wanted all the applications in the company to use same framework and share reusable components, again this is more of we have money so we can do whatever situation and not a valid one IMO

Collapse
 
deepu105 profile image
Deepu K Sasidharan

Yup, I'm aware of the Lisp legacy and may be I should rephrase what I said about starting as imperative, what I meant was it was used as an imperative language at first

Collapse
 
lepinekong profile image
lepinekong

Had known Javascript since ... Netscape 2 which wasn't even free. Glad java bastard applets are now gone ;)