Scripting languages being languages that are traditionally source distributed.
Source distributed means you can read the source if it hasn’t been obfuscated. OTOH, it is trivial to decompile Java and C# so this isn’t a real difference for those languages (which happen to be compiled languages). So it’s only relevant for languages specifically compiled to machine code.
Source distributed means the recipient needs to install something. OTOH, Java and C#, again.
So the only ways that the distribution mechanism matter are really a difference between
How does the distribution mechanism matter beyond that? And even those points are
They tend to be much easier to write
I’m assuming you are not saying “real” languages should be hard to write…
run slower
Objective-C and Go run slower than C and they’re all compiled languages. Sure, an interpreter will be slower than a compiled language but modern languages aren’t simply interpreted (i.e. JIT, etc).
often but not always dynamically typed, and operate at a higher level
There are dynamically typed compiled languages, and high level compiled languages.
It’s not a demeaning separation, just a useful categorization IMO.
Calling one class of languages “real” and another class something else is inherently demeaning. I wouldn’t have cared enough to type this if you used “compiled vs scripting” instead of “real vs scripting”. Though I disagree with using “scripting” at all to describe a language since that’s an assertion of how you use the language, not of the language itself. “Interpreted” on the other hand is a descriptor of the language itself.
As someone who loves C there are lots of languages that seem too limiting and high level, doesn’t mean they aren’t useful tho.
I personally can’t stand Java because the language designers decided to remove ‘dangerous’ features like pointers and unsigned integers because apparently programmers are children who are incapable of handling the risk. On the other hand I love Go. It’s high level enough to be enjoyable and easy to write, but if you want to get into the weeds you can.
So the only ways that the distribution mechanism matter are really a difference between How does the distribution mechanism matter beyond that? And even those points are
I’m assuming you are not saying “real” languages should be hard to write…
Objective-C and Go run slower than C and they’re all compiled languages. Sure, an interpreter will be slower than a compiled language but modern languages aren’t simply interpreted (i.e. JIT, etc).
There are dynamically typed compiled languages, and high level compiled languages.
Calling one class of languages “real” and another class something else is inherently demeaning. I wouldn’t have cared enough to type this if you used “compiled vs scripting” instead of “real vs scripting”. Though I disagree with using “scripting” at all to describe a language since that’s an assertion of how you use the language, not of the language itself. “Interpreted” on the other hand is a descriptor of the language itself.
I personally can’t stand Java because the language designers decided to remove ‘dangerous’ features like pointers and unsigned integers because apparently programmers are children who are incapable of handling the risk. On the other hand I love Go. It’s high level enough to be enjoyable and easy to write, but if you want to get into the weeds you can.