this post was submitted on 31 Oct 2023
416 points (94.4% liked)

Programmer Humor

19471 readers
1423 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 7 points 1 year ago

Python is a scripting language, but it's generally called a programming language, because there are no key differences in their features or workings. Just as C# and Java, Python is first compiled to .pyc files and then executed with a special program, eg. Mono for C#, OpenJRE for the second and just python for the latter, except for Python it's more hidden. C# supports Classes, Python does, but C does not (officially) ... so wouldn't C be less of a programming language then?
In the end, scripting languages are just defined as one by being easier and faster to run by all/most implementations as the "gcc main.c" and "./a.out" method of "real" programming languages, by just using "python main.py" or "node main.js" for your program. Therefore, they can be changed on the fly and added to another script.
What IS generally called a scripting language is eg. Bash, as it's not compiled, supports few features and is not that cross compatible (except maybe with eg. WSL).

I'm a huge C/C++ fan, but some tasks just aren't suitable for them. Parsing HTML/XML in C++? It's possible, but a pain in the ass. I know it, I did it. Having parsed plans, tables and xml responses in C++, I can tell you Python is more suited for this job. The extra few milliseconds you save aren't worth the hassle of verbose exception handling, non standard libraries which need different systems to stay up to date (some don't support your make system of choice) and harder integrated extension support (you can't just throw in a .py script for support of other providers, but need to explicitly integrate eg. lua support), especially if the bottleneck is not your code, with ~10 ms runtime, but some random ass server with ~100 ms ping.