7 ms·
I'm starting to develop a theory that a person's stance on JavaScript reflects their ability to critique reasonably and therefore their maturity as a developer
by _hardwaregeek 6y ago
I'm starting to develop a theory that a person's stance on JavaScript reflects their ability to critique reasonably and therefore their maturity as a developer (to an extent).
JavaScript undeniably has some problems. It's also undeniably useful and eating the world. If you can hold both of these stances in your head and reconcile them into a nuanced opinion, then that's a great sign. If your viewpoint collapses into "JS sucks!!!" or "JS rules!!!" then you're not providing an opinion as much as a dogma, often one that is regurgitated from some other source.
I'm not saying that one should find JavaScript good or bad by the way. Someone who abjectly dislikes JavaScript but also understands its utility is quite useful. The creators of TypeScript, ReasonML, etc. all had to dislike JavaScript in some form. But they had to dislike it in a productive, nuanced manner.
- slimsag 6y agoReplace "JavaScript" with anything and the theory remains the same: those who can articulate and declare nuanced opinions about software they have had to interact with to a reasonable degree are able to critique reasonably. I dislike the idea that all opinions must be in the form of productive, nuanced statements about how exactly technology should be changed in the service of 'one true set of technology' I think it's OK for people to declare they enjoy or do not enjoy a particular technology without signaling how exactly they would change it. It's also OK to ignore or accept others opinions of personal taste. That's one of the things that enables us to have many different programming languages today, and enabled us to have JavaScript instead of FORTRANScript.
- _hardwaregeek 6y agoThat's true, but JavaScript is something especially controversial :D. I've yet to find a programmer who doesn't have some sort of stance on JS Also yeah it is fine to say "I don't care for JS" sans explanation. But if someone were to ask why, it'd be reasonable to expect a list of justifications that had some nuance.
- orange8 6y agoI'd say that controversy is in direct proportion to its ever growing widespread use. “There are only two kinds of languages: the ones people complain about and the ones nobody uses.” ― Bjarne Stroustrup, The C++ Programming Language
- namelosw 6y agoThe quote is almost true, unless he didn't quantify things. Let's say Java and PHP both have a lot of users, but I guess Java receives less percentage of complaints per 100 people. (Just a random example, if you don't agree you can substitute the two languages to suit your own experience) So to really understand the controversy, it probably makes more sense to compare $NumberOfComplaints / $NumberOfUsers.
- goto11 6y agoThe point is that the rate of complaints grows when a language becomes more popular. As long as only enthusiasts and hobbyists use a language, you get relatively few complaints, because these are people who actively chose to use the language. When a language become more popular, more people will be forced to use it, more mediocre people will use it, and its shortcomings will become more apparent on larger-scale projects.
- bryanrasmussen 6y agoAnd this is why I have yet to hear anyone complain about Brainf*ck.
- primroot 6y agoWhich reminds of this story from the Zhuangzi. I hope it is not too irrelevant. "Zhuangzi was walking on a mountain, when he saw a great tree with huge branches and luxuriant foliage. A wood-cutter was resting by its side, but he would not touch it, and, when asked the reason, said, that it was of no use for anything, Zhuangzi then said to his disciples, 'This tree, because its wood is good for nothing, will succeed in living out its natural term of years.' Having left the mountain, the Master lodged in the house of an old friend, who was glad to see him, and ordered his waiting-lad to kill a goose and boil it. The lad said, 'One of our geese can cackle, and the other cannot - which of them shall I kill?' The host said, 'Kill the one that cannot cackle.'" https://ctext.org/dictionary.pl?if=en&id=2853 https://ctext.org/dictionary.pl?if=en&id=2853
- throwanem 6y agoWhether or not someone can distinguish "I don't like thing" from "thing is bad" still serves as a useful indicator.
- baddox 6y agoCouldn’t it be that I realize that JS has some problems and is undeniably useful and is eating the world, and I therefore conclude “JS rules!!!” In my view, it lacks nuance to suggest that saying something is awesome must mean that it has no problems. :)
- _hardwaregeek 6y agoYeah maybe "JS is best language ever!!!" is a better example. Or "JS is perfect!!!"
- jmchuster 6y agoI would also state it as "hold strong opinions weakly or hold weak opinions strongly". Unfortunately, though it requires experience to become mature, not all experienced engineers are mature. When you see problems with the tools that you have, do you rail against them because it's not what you want, or do you seek out alternatives and then build them when they don't exist?
- willtim 6y ago> But they had to dislike it in a productive, nuanced manner. No, they fundamentally rejected JavaScript, enough to build a whole new language and set of tools. This was not a subtle dislike of a few aspects of it. Personally JavaScript absolutely terrifies me, it's a semantic mess, the equality table is one such example: https://dorey.github.io/JavaScript-Equality-Table/ https://dorey.github.io/JavaScript-Equality-Table/
- ComputerGuru 6y agoI’m not a fan of loosely-typed languages in general, but isn’t that chart pretty typical for dynamically typed interpreted languages? I know PHP’s is a mess and I’ve seen comparison/equality horror stories posted to HN regarding even the venerable Python.
- Athas 6y agoNo, many dynamically typed languages do not perform implicit conversions: Lisp and Python are languages that do it better. They still have some subtleties (Lisp has the EQ/EQL distinction, not to mention a huge number of other quality operators in Common Lisp), but I see implicit conversions as a singularly bad idea in a dynamically typed language.
- kazinator 6y agoLisp certainly performs some implicit conversions in numeric computing. > (+ 1 1/10 3.0) 4.1 In this example, since + is a function, it's part of its semantics. There would be a lot of verbiage if arguments had to be coerced to all be of the same type. In addition to numeric examples, there are situations where Lisp is forgiving/flexible. For instance in most cases, a symbol can be used in place of a function object. The symbol is resolved to a function through its function binding. That can be regarded as an implicit conversion, or alternatively as polymorphism. Yet another example is that Common Lisp allows some string operations on symbols. (string= 'abc "ABC") -> T No conversion ever takes place in the evaluation, as far as I know, or the passage of a value (e.g. from a function argument expression into the argument). All these kinds of things happen inside specific functions according to their respective rules.
- mattgreenrocks 6y agoThis is the “only say cheerful things” argument. If you want to impose that at the threat point of “maturity”, then be my guest. Don’t be surprised when any legitimate criticism just sort of dries up, however.