For something you’re getting paid for, sure. But if you’re contributing in your free time for fun or whatever, presumably you’d prefer to use a language you actually like.
Yes and no. “Real” programmers care about engineering choices ; and JS is the cardboard of programming languages.
Perfect for packaging (which in this metaphor is UI), horrible for building a bridge with. And vice-versa, I wouldn’t try and make amazon packaging out of reinforced concrete.
Real programmers will write in a way that user’s resources are not being wasted because you need a full browser, a JS runtime, and DOM juggling, to show even the simplest application.
It’s not rare for simple JS applications to consume over half a gigabyte of RAM on startup, and way more CPU than their native counterparts. That this was normalized and even defended is stupid.
I think you’re thinking of Electron apps, but that’s not really a criticism of JavaScript, that’s a criticism of Electron. There are plenty of JS platforms that don’t require a browser/DOM. React Native is the biggest example. Also, GJS if you want native Linux apps.
But why Node? Node cost five seconds just to start up back when I worked on my embedded ARM v7 platform, and on modern x86_64 computers, npx anything takes just as long. Why rely on another runtime? Why not native binaries instead?
Because you have to figure out how to build them. And with that I mean, how do you make sure that whatever you’re doing will work and work the same way not only on your “embebbed ARM v7” architecture and all the other CPU architectures, but also the operating system libraries included? How do you make it work the same way on Mac, Windows 7, Windows 11, Ubuntu, custom Arch installations, FreeBSD, etc etc?
If you build native binaries, you personally are the one who has to make sure it runs. This means (depending on how much you want to support) a lot of development or support time. (Or you make your users build it themselves and fix errors, which means a massively reduced userbase, good luck with adoption…)
If you use Node, (or other virtual machines) you literally don’t have to do anything, because it just works.
What you mentioned is compatibility across platforms. A program written in C is also guaranteed to run on all the systems you mentioned, given that the system has a C compiler and libc that stick to the standard. You, the programmer, does not have to anything to “make sure” your program works.
We’ve invented high-level programming languages like C 53 years ago, just to get away from assembly, and to avoid dealing with the “cross-platform” problem you mentioned, remember?
Real programmers are language agnostic. Anyways what’s the project?
We’re writing an online banking service entirely in brainfuck. Backend, frontend, even middleend if we have to
I enjoy the contradiction of middleend
The middlemiddle
E: My backend don’t middlemiddle, it forks
It took me a solid half-dozen tries not to pronounce it “mid-leend.” After that much effort, I decided to let my dumb brain win and go with it.
Would you take a Quake-like written in Pascal?
For something you’re getting paid for, sure. But if you’re contributing in your free time for fun or whatever, presumably you’d prefer to use a language you actually like.
Yes and no. “Real” programmers care about engineering choices ; and JS is the cardboard of programming languages.
Perfect for packaging (which in this metaphor is UI), horrible for building a bridge with. And vice-versa, I wouldn’t try and make amazon packaging out of reinforced concrete.
But for fun both bridge out of cardboard and packaging out of concrete might work, tastes differ ¯\_(ツ)_/¯
Real programmers will write in a way that user’s resources are not being wasted because you need a full browser, a JS runtime, and DOM juggling, to show even the simplest application.
It’s not rare for simple JS applications to consume over half a gigabyte of RAM on startup, and way more CPU than their native counterparts. That this was normalized and even defended is stupid.
I think you’re thinking of Electron apps, but that’s not really a criticism of JavaScript, that’s a criticism of Electron. There are plenty of JS platforms that don’t require a browser/DOM. React Native is the biggest example. Also, GJS if you want native Linux apps.
Node does not require an excessive amount of resources.
But why Node? Node cost five seconds just to start up back when I worked on my embedded ARM v7 platform, and on modern x86_64 computers,
npxanything takes just as long. Why rely on another runtime? Why not native binaries instead?Because you have to figure out how to build them. And with that I mean, how do you make sure that whatever you’re doing will work and work the same way not only on your “embebbed ARM v7” architecture and all the other CPU architectures, but also the operating system libraries included? How do you make it work the same way on Mac, Windows 7, Windows 11, Ubuntu, custom Arch installations, FreeBSD, etc etc?
If you build native binaries, you personally are the one who has to make sure it runs. This means (depending on how much you want to support) a lot of development or support time. (Or you make your users build it themselves and fix errors, which means a massively reduced userbase, good luck with adoption…)
If you use Node, (or other virtual machines) you literally don’t have to do anything, because it just works.
You really don’t see the value in that?
What you mentioned is compatibility across platforms. A program written in C is also guaranteed to run on all the systems you mentioned, given that the system has a C compiler and libc that stick to the standard. You, the programmer, does not have to anything to “make sure” your program works.
See this insane list of platforms GCC supports.
https://en.wikipedia.org/wiki/GNU_Compiler_Collection#Architectures
We’ve invented high-level programming languages like C 53 years ago, just to get away from assembly, and to avoid dealing with the “cross-platform” problem you mentioned, remember?
Thought terminating sentence.
More like, no true scotsman
Real carpenters don’t walk away from a job because the hammer is their least favorite brand.
their least favourite hammer brand:
Real carpenters bring their own hammer.
I once had a hammer head get loose and fly off the handle.
But if the screws are nails.
It can’t be a programming humor post without somehow even more mind-numbing stuff in the comments. Just part of the fun
Sorry, but Rust triggers me way too much.
the bash language server is in nodejs…
And it shouldn’t
I always knew I am not a real programmer
Also real programmers have impostor’s syndrome.