4 ms·
"Fragility" is an interesting concept, but I don't agree with the criteria used here. There are also some severe misunderstandings of how the evaluated language
by ivraatiems 6y ago
"Fragility" is an interesting concept, but I don't agree with the criteria used here. There are also some severe misunderstandings of how the evaluated languages work.
For portability, they ask: "If you write some software in a particular language, can you copy the compiled program to another computer and expect it to work?"
This is the wrong question, but it also is answered incorrectly. You can certainly write JavaScript, Java, C#, on most modern platforms and have little trouble porting them. Java, as others have mentioned, is fully portable with JAR files. Node.js is literally JavaScript, which can run anywhere there's a JavaScript engine for the most part (with some asterisks for Node.js's particular flavor). C# compiles to an IL that can be used anywhere, so the parts of the code we're talking about as "not portable" are the binaries wrapped around that.
For compilers, they ask: "If the internet stopped functioning, would you be left helpless?"
By these criteria, their assessment of compilers is mostly accurate. But I'm not sure what they mean by "acquiring or setting up" the compiler? Presumably that means "copy the compiler manually to another computer" because this is a world with no Internet?
In that case, the better question is "can I get an offline installer for these development environments", which is a fairly commonly available thing. Package restore is a bigger question, for those that use packages - but if you have the original binaries, you implicitly have the binaries for all the packages, so not overcomable.
I think what this person really means by "fragility" is "survivability" or "disaster preparedness." That's an area of software work that's often undervalued, and I agree that if you are evaluating software on that basis, many of the languages listed with the tools listed are poor choices. But that's such a distinct area of software that its general applicability is limited, in my view.