- cross-posted to:
- programmerhumor@lemmy.ml
- cross-posted to:
- programmerhumor@lemmy.ml
Also, do y’all call main() in the if block or do you just put the code you want to run in the if block?
Also, do y’all call main() in the if block or do you just put the code you want to run in the if block?
What’s the difference between a “scripting” language and a “real” one?
A scripting language controls an existing binary. A non-scripting language is used to create a new binary.
Scripting languages are real. Generally people consider dynamic languages scripting languages but it’s not that simple.
It’s a scripting language. What means that the computer runs it line by line, without needing to get the entire project first.
That is not how Python works. There are very few languages that work by executing line-by-line anymore. Unix shell scripts are one of the few holdouts. JavaScript also does it to a certain extent; the browser starts executing line-by-line while a compiler step works in the background. Once the compiler is done, it starts execution of the compiled form right where the line-by-line execution left off. It helps JavaScript be more responsive since it doesn’t have to wait for the compiler to finish.
I don’t know if this applies to other shells, but bash will not only execute your script line-by-line, it will also read it line-by-line. Which means that you can modify the behavior of a running script by editing lines that have not yet been executed*. It’s absolutely bonkers, and I’m sure that it has caused more than one system failure, during upgrades.
* For example, if you run the following script
echo "hello" sleep 5 echo "goodbye"
and then edit the third line before the 5 second sleep has elapsed, then the modified line will be executed.
I have run into the problem of modifying a bash script while it is running.
Python still has the
-i
option, and it still runs the same language as the files interface.The
-i
option is simply interactive mode. All commands still go through a compiler.I didn’t say it wasn’t real, it’s just a scripting structure and not object oriented, so it doesn’t make sense for it to start by looking for a “main” object
I don’t think we have a name for what you are trying to say here.
(And yeah, “object oriented” isn’t it.)
procedural programming is more akin to that, but python has far to many oop concepts to be considered procedural imo
Procedural and OOP aren’t mutually exclusive terms. Most OOP programs are ultimately procedural in nature. Often, the only difference is that the first argument to the function is to the left the function name and separated by a dot.
fair, I just think it’s misleading to call python procedural, but it lines up with what the commenter above was describing and searching for the term for
I’d say the term “procedural” itself is an issue. Pretty much any language can be done that way if you choose. IIRC, the creator of Clojure wanted Java to work more that way, and he did it by having a single class full of functions. It’s not a natural way to write Java, and that’s why he invented Clojure.
What would make it “object oriented”?
You know what, I take that back: https://docs.python.org/3.13/faq/general.html#what-is-python