3 ms·
About what percentage of JavaScript developers don't use NodeJS? You are right that JavaScript !== NodeJS, but the majority of people would understand what the
by shepherdjerred 3y ago
About what percentage of JavaScript developers don't use NodeJS?
You are right that JavaScript !== NodeJS, but the majority of people would understand what the author meant.
It wouldn't hurt the author to be a bit more precise, but they aren't really wrong either.
- lelanthran 3y ago> About what percentage of JavaScript developers don't use NodeJS? I'm always surprised by developers who prefer to use Node on the backend. I used Node for a small project. Never again. No typing, requiring a couple of dependencies just to get poor, half-assed typing that doesn't really work anyway. Poor dependency management, although this is probably not the fault of the tool, it's the fault of a poor ecosystem dominated by junk. A primitive execution model, requiring hacks around hacks to get around the fact that the execution model is based on single-thread async execution. Speaking of execution, slow execution too. Limited IDE help (due to lack of typing). Difficult debugging tooling. No standardisation of anything. The people using Node know that there's alternatives like Go, and yet they still patch on band-aid after band-aid and engage in drama. Using Node for the backend is a special kind of hell. I don't even like Go all that much, but it's a world of difference having strong static typing, nice dependency management, good tooling, simple debugging, no setup costs. Someone upthread made the point about how they might burn a day just setting up a new Node project. A new Go project might take a few minutes from inception to "hello world".
- mcluck 3y agoPoor typing isn't a Node issue, it's a JavaScript issue. Use TypeScript, install @types/node, and you're ready to go. The rest of what you say is true. Although I actually do enjoy using Node for quick one-off scripts and small dev tools
- lelanthran 3y agoMy complaumtnis that typing shouldn't be optional. With Node, not only is it optional, it's a third party dependency.
- golergka 3y agoThat's like complaining that Linux kernel doesn't have a GUI because GUI shouldn't be optional for an operating system.
- lelanthran 3y ago> That's like complaining that Linux kernel doesn't have a GUI because GUI shouldn't be optional for an operating system. Really? That's your defense of both not having type-checking AND not having optional type-checking builtin? All common languages implementations, other than Node with JS, either have type-checking or have optional type-checking builtin. Node and JS stand alone by having no type-checking, nor having optional type-checking builtin. Node is uniquely low-quality in this respect.
- golergka 3y agoAll other operating systems implementations have GUI, and Linux doesn't. Seriously though: modern JS ecosystem is not a "language" or a "framework". It's a kernel. You can choose your own language, whether it's Typescript, Coffescript, Purescript, Clojurescript, Reason or one of it's sublings, Elm, or pure JS. Of course, like with Linux, this can be a good or a bad thing for different users and circumstances: personally, I like Linux, but I don't want to handle all of this complexity on my own desktop. And just like with Linux, you have to choose your own implementations for everything: testing library, strings, dates, templating library, state management, web server, etc. If you're comparing the barebones Node and vanilla JS to other languages and frameworks, you're not making a valid comparison. You can't pretend that something is inferior just because it's modular.
- lelanthran 3y ago> All other operating systems implementations have GUI, and Linux doesn't. You "two other", right? I've used many that didn't have a GUI. > Seriously though: modern JS ecosystem is not a "language" or a "framework". It's a kernel. That's not how it's pitched.
- golergka 3y agoThat's ironic, because as a fullstack developer, I don't want to touch Go exactly because of it's lacking type system and how it manages dependencies. Typescript has the best type system among modern mainstream languages, and although you're right that Node is not well suited for CPU intensive applications, the most part of backend work is IO bound, where async/await works perfectly — waiting for reply from the bd looks and works much more natural than with Go's primitives.
- mijamo 3y agoTypescript type system is both powerful and lacking, and with a syntax that is horrendous to do anything complex. It gets even worse than regex in the "write-only" direction. And you can do black magic but at the same time very basic things are still not possible. I would argue that the Python type system is actually better because you can build on it with regular Python instead of typescript weirdness and because you can use it at runtime. The fact that typescript does not support any kind of reflection makes it very limited for a script language. Rust type system on the other hand is also limited in refection but it is not a scripting language so it's more acceptable, and at least it integrates very nicely with features such as pattern matching and control float which you don't have in TS. TS also has a way too complex option list which is becoming nearly as annoying as ESLint to configure, with basic safety disabled by default and rules that are just annoying and add no safety whatsoever in the "strictest" config.
- golergka 3y agoCan you please provide examples of what do you consider "write-only" types? Because so far what you've described is the exact opposite of my experience as a Typescript developer. As far as reflection goes, I see how it could be useful with other languages with less powerful type systems, for example, to build a deserialiser. But with Typescript's type inference I just never felt the need to reach for a crutch when I can use a proper solution.
- lelanthran 3y ago> Typescript has the best type system among modern mainstream languages, I wouldn't call something the best when it's disabled by default, even after considering the fact that it's neither part of the language nor the platform, and needs multiple dependencies in order to run, at which point it has worse type-checking than every other language.
- shepherdjerred 3y ago> No typing, requiring a couple of dependencies just to get poor, half-assed typing that doesn't really work anyway. I'm not sure when this experience was. I've used TypeScript for years. About 5 years back it was okay, but it was very hit-or-miss for a given library to have types. Today, I haven't had that problem. Every library I use has _great_ types, and many libraries are even written in TypeScript. Anyway, all I'm saying is that you might want to give it a second change. TypeScript and the ecosystem has greatly improved. I hate working without static typing (Python, JS, and Ruby are pain), but TypeScript is really quite great.
- Tade0 3y agoHello there - that's what I've been doing lately. Applications by and large do, but when you're writing a library you want to at least start without the usual bs. JSDoc for type information works great as a crutch in this initial period. EDIT: ok, now I recalled that I use Node's built-in test runner for tests. But I still don't have a package.json as well as any dependencies.
- deleted 3y ago[deleted]