this post was submitted on 21 Apr 2024
719 points (97.0% liked)
Programmer Humor
32718 readers
353 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
It’s not a scripting language?
Depends on how you define "scripting language".
Older techs remember when it was only browser-based and they thought of, and perhaps still think of, "scripting languages" as something that would run from some command-line or another. Starting a GUI browser to run a mere script was a ridiculous concept. (There was also that JavaScript had no filesystem access. At least initially. And then it became a gaping security hole, but I digress.)
Today, there exist command-line accessible versions of JavaScript but even there (I figure) most people wince and choose anything else instead. Maybe even Perl.
But another definition of "scripting language" is "(any) interpreted programming language" and where it runs is unimportant.
From that perspective, sure, JavaScript qualifies. And so does QBASIC.
A script is just a file that can execute a series of commands without the need to compile
They compile in some point of time because CPU don't know shit about Javascript. But that is for some other discussion.
Edit: typo
Are you referring to AOT compilation specifically? JavaScript in V8 is JIT compiled if it's "hot" (executed enough that the cost of JIT compilation is less than the cost of continuing to run it in interpreted mode).
Hot take: A scripting language is a programming language whose execution starts from the beginning of the file | stream.
bash would be a scripting language, though to be fair, i also consider bash to be pseudo code as well.
If JS is a scripting language, than any other language is a scripting language. And technically, every language can be used to script, so therefore, is a scripting language. i'm referring to the aspect of a scripting language being generally constricted.
Pseudo code is literally fake code. Scripting is an actual type of code. Scripted languages while not strictly defined, usually refers to languages you don't compile before running them. Bash is considered a scripting language because you don't ship a binary compiled executable, but rather ship a file that is human readable and converted into machine code when it is run. Scripting languages are compared to compiled languages, like C or Rust. Where the file you run is already compiled, and executed directly.
What do you mean by this?
Any Turing complete system, or this case language, can do anything any other one can, depending on the level of suffering you are willing to endure to make it happen. Anything JS can do, Rust can do. Anything Rust can do, Bash can do. The differences between languages is the assumptions they make, and performance characteristics as a result of those assumptions. Functionality is not practically different from one another, though some absolutely make it easier for humans to do.
hence why i specified why i consider it to be as such. I just think pseudo code shouldn't exist. Plain and simple. Bash scripting is close to a language in the same way that pseudo code is also technically code.
i just mean the simple fact that you could technically probably run bash on windows, but really wouldn't want to. I don't consider bash to be a programming language, though it is technically a scripting language, because it's primary existence is in the shell environment of a system. I.E. constricted, but that's just my view of it.
Bash being on the same level as actually fake code is a pretty hot take to me. What are your opinions on Python, or Ruby, or any other interpreted language? You could very well use them as your login shell, just like Bash if you wanted. In your eyes, if Bash *isn't * a programming language at all, how do you describe a programming language? Languages that express code are just the same as languages that write stories, and whether you do it in German or Vietnamese makes no difference on what story you can write.
When you describe a language as constricted what do you mean? Bash can do anything Python or Rust can do, each of them is just specialized to being better at specific aspects for human convenience in writing code. There is no inherit limitation on what can be done by the language you use to express it.
it's definitely a hot take, you could theoretically use any other language as a shell, and i know you sort of can with stuff like node as well.
But those aren't shell languages, and bash isn't a true language, in the sense that it was explicitly designed to be used in the shell environment, i also consider it to be "pseudocode" because it's not actually bash doing things a pretty significant amount of time you'll stuff something into sed or awk, which are actually different interpreters all together.
bash is almost a sort of wrapper, between a bunch of different programs that all handle things differently, allowing you to glue them back together to make something usable. It's close enough to being it's own language, that you could make it one, but it's not, because it's not supposed to be one.
i suppose that's pretty much what i mean when i say constricted.