Peter Seliger
1 min readMay 6, 2024

--

Please explain what you think is inconsistent and/or not coherent when adding a string value and a number value always does result in another string value. Whom do you blame when passed types remain unchecked? Who is responsible for assuring that an expected argument actually is a function before one does invoke it?

Who is to blame that there are actually tons of crap code poured onto the npm dump? And whom's responsibility is it to check whether a package/module, library, framework (you name it) is worth it to work with?

It's the goddamn job of every single developer.

None of it can be blamed on how the language has been designed. JavaScript in its very core is far away from being a toy (in a negative sense) language, though it very easily allows everyone to toy around (both in a negative and a very positive meaning) with.

Its power comes from its expressiveness, rooted in loose typing (which is not at all a joke feature) and its delegation capabilities, implicit via the prototype chain and explicit via call/apply, together with functions that are treated as first class citizens, and which are capable of closure creation.

How, after more than 25 years, it seems that the majority of developers and an astonishing big number of self proclaimed experts still do not comprehend those few core features / core concepts? Does one really want to blame the language?

But maybe its the attitude of an entire industry which still does not seem to take JavaScript development seriously enough despite relying so heavily on it.

--

--

No responses yet