5 ms·
Apart from this being of questionable usability, why do people feel the need to solve every problem with (Node)JS? I can think about a ton of languages better s
by faaef 11y ago
Apart from this being of questionable usability, why do people feel the need to solve every problem with (Node)JS? I can think about a ton of languages better suited for systems programming at the top of the hat.
- callumlocke 11y agoBecause JavaScript is the most widely used language in the world. As a web developer, I know JavaScript very well. I have already encountered thousands of its idiosyncrasies and I am very good at making it work for me. Therefore any tool written in JavaScript is automatically easy for me to understand and modify. If that tool could have been more elegantly written in another language, that's awesome for people who know that other language, but it's irrelevant to me. Even if I kind of know my way around the other language, I'm never going to be as effective with it as the language I use every day. And a lot of people use JavaScript every day. This is the reason why people feel the need to solve problems in JavaScript.
- striking 11y agoBut JS can't solve every problem, nor can it solve certain problems well. I understand people feel the need to solve problems in JS because they're scared or inconvenienced by learning a new programming language. But why not learn a new language? Having a working knowledge of C won't kill you. edit: could you explain how JS is the most widely used language in the world?
- callumlocke 11y ago> Having a working knowledge of C won't kill you. I do have some knowledge of C, and I could learn more. But unless I change career, I'll always be faster and more effective in JavaScript because I think in it all day, so I'll almost always choose JS over C. I'm not disparaging anyone who uses C, just answering @faaef's question about why people "feel the need" to make everything in JavaScript – because they can, they happen to know JS very well, and because there's automatically a huge potential contributor base. > could you explain how JS is the most widely used language in the world? I don't know, but I assumed it's the most widely used because websites :) Also it's the most popular language on GitHub
- striking 11y agoJS is definitely the wrong language for a number of programming projects. JS lacks a number of features that other languages have... on its own, that doesn't make it a bad language, but it means it's less useful for certain projects. Like this one. Like the POSIX API that is actually compatible with other applications. And by that definition of used, C and Java are pretty strong competitors, seeing as every SIM card and Bluray player and so many more run Java... and then there's Linux and its embedded RTOS cousins, etc., etc., that are written in C or C++. I think embedded devices beat out JS pretty well.
- faaef 11y agoI'm not talking necessarily about elegance, but performance, safety, the ability to run on embedded devices, a widely-available toolchain and so on. Apart from that, it's great to have a favorite language, but choosing a hammer for every task does not seem like the mark of a great craftsman for me.
- oblio 11y agoI believe most people in every profession are not/do not aspire to be great craftsmen. And in the end, if their tools work, nobody cares outside of their immediate colleagues.
- mobiuscog 11y ago...and herein lies the problem.
- callumlocke 11y agoWhat problem? I think we need a mixture of specialists and generalists
- boomlinde 11y agoFor fun and education? I am not a fan of the idea from a practical point of view, but it seems like implementing these things could be a nice learning experience.
- l1ambda 11y agoHere is my language-choosing thought process... Perl/Python/PHP/Ruby: Generally 10x or more slower than V8 Node.js, plus global interpreter lock = automatic no. C/C++/etc? Fast, but too complex to work with build system / platform compat / 3rd party modules = generally no. Java? Way too slow startup time; JVM install for users painful = automatic no Scala/Clojure/etc: Fine languages but same practical problems as JVM languages = automatic no. Go? Probably nice, but I just don't know it = maybe Node.js: Fairly fast, easy to debug, fast startup time, easy to use 3rd party code = yes Rust: safe, C perf, and easy to build and use 3rd party modules via Cargo = yes
- Fritsdehacker 11y agoWhy would threading with GIL be worse than no threading at all? As long as IO is your bottleneck the GIL shouldn't be much of a problem. And Python (and I'm sure Ruby, too) has excellent async support. Not saying Node.js isn't useful, but I wouldn't automatically say no to Python or Ruby.
- l1ambda 11y agoFair point. I would probably use a multiprocessing approach in node.js or use https://www.npmjs.com/package/webworker-threads https://www.npmjs.com/package/webworker-threads. If perf were very critical I would use Rust.