5 ms·
It's always neat to read reasoned replies to comments like these. > > The primary reason for this is because the people writing JavaScript do not know what the
by HeWhoLurksLate 6y ago
It's always neat to read reasoned replies to comments like these.
> > The primary reason for this is because the people writing JavaScript do not know what they are doing.
I think GP has a point here, though- it feels (to _me_, someone with only a small amount of programming experience) that there are all too many beginner tutorials that jump straight into framework-of-the-week.js and that leave huge knowledge gaps- if people start with node.js and angular and and and and, they might not know that they can do xyz in a vanilla install of JS, thus making their core knowledge of the language dependent on a particular framework.
- _bxg1 6y agoI think there's some truth to this, but the same is true in, say, the Java world where you're almost not even writing things in Java-the-language, you're writing things in Spring. That said, it's probably more true in the JS world because it is so feasible to teach someone to make something in a JS framework before they know the fundamentals. Which is, honestly, an enormous compliment to the language, not an indictment! But it does come with some interesting side-effects. I do feel the need to make one small correction (the OP actually made the same mistake): Node.js is not a framework, it is a runtime. If you want to run JavaScript the way you run Python, you use Node (or, very recently, an alternative called Deno). You also don't have to do anything special with your code to run it in Node, like you would with a framework, unless you want to use its system APIs which of course do not exist in the browser. But even those are really more like libraries. But yes, your overall point is valid
- Cthulhu_ 6y agoI personally (anecdotal) feel that the Java world is a lot more formal; there are some Strong Opinions held in what "good" Java code is, which is missing in Javascript. This is in part due to great books like Effective Java, and in part due to editor / IDE support that will warn you and help you write great code - keep in mind that good IDE support has been missing in Javascript for years because of its lack of support for e.g. modules or namespaces, and its lack of Opinions. Java's community has been Opinionated, whereas the JS community has been a lot more freeform. JQuery and NodeJS have been very influential in adding an opinion to the language; jquery by adding a kind of namespacing and scoping (also thanks to its predecessors / peers like YUI), NodeJS by adopting a module system (CommonJS) and centralized dependency management (NPM). I came into JS via Java and while the lack of standards and rules / expectations was liberating, I was also missing it. It took a while before the best practices of Java made it into Javascript; in my experience, AngularJS was a big push for that, in that it was a much more opinionated way to structure your components and application - with a strong emphasis on (unit) testability.
- quickthrower2 6y agoVanilla JS for UI work is like using Windows Forms (the Microsoft tech from 2002 for building windows UI in .NET). Unless you want something pretty basic, you are going to be writing your own frameworks. Maybe not a bad thing from a learning perspective, but I'd prefer a battle tested framework in general.
- bobthepanda 6y agoThis is mostly because there is not really a formal way of learning webdev, which is both a strength and a curse. JS's closest thing to a prescriptive and authoritative guide to do things is the MDN, which isn't very prescriptive at all; there's certainly nothing like the C programming book, or even contenders equivalent to something like a Headfirst Java book. If you want strong direction and strong opinions JS does not have an overly dominant one unless you pick something that starts off with its own ecosystem like React. Asking for something on vanilla JS is like asking for an "original" English copy of the Bible, whatever that means.
- bena 6y agoI think the inclusiveness of the statement is the issue. He didn't say "the majority of the people writing JavaScript", he implied all of them. I'm sure there's a lot of people who are writing decent JavaScript. But running JavaScript is easy. Every single computer comes with a JavaScript development environment. Because all you need is a text editor and a web browser. The barrier to entry is so low it might as well be non-existent. So a lot of people with no clue of what they're doing will get in there and write some atrocious code.