also I just realized that Brazil did NOT make a programming language entirely in Spanish and call it “Si” and that my professor was making a joke about C… god damn it
this post is probably too nieche but I feel like Lemmy is nerdy enough that enough people will get it lol
I like many of your points, but your comment is facetious.
You said it yourself, “it’s good for someone trying to bang out scripts”… and that’s it, that’s the main point, that’s the purpose of python. I will argue over my dead body that python is a trillion times better than sh/bash/zsh/fish/bat/powershell/whatever for writing scripts in all aspects except availability and if that’s a concern, the only options are the old Unix shell and bat (even with powershell you never know if you are stuck ps 5 or can use ps 7).
I have a python script running 24/7 on a raspberry that listens on some mqtt topics and reacts accordingly asynchronously. It uses like 15kiB (literally less than 4 pages) of ram mostly for the interpreter, and it’s plenty responsive. It uses about two minutes of CPU time a day. I could have written it in rust or go, I know enough of both to do it, it would have been faster and more efficient, but it would have taken three times the time to write, and it would have been a bitch to modify, I could have done it in C and it would have been even worse. For that little extra efficiency it makes no sense.
You argue it has no place in mainstream software, but that’s not really a matter of python, more a matter of bad software engineers. Ok, cool that you recognise the issue, but I’d rather you went after the million people shipping a full browser in every GUI application, than to the guys wasting 10 kiB of your ram to run python. And even in that case, it’s not an issue of JavaScript, but an issue of bad practices.
P.S. “does one thing well” is a smokescreen to hide doing less stuff, you shouldn’t base your whole design philosophy on a quote from the 70s. That is the kind of shit SystemD hater shout, while running a display server that also manages input, opengl, a widget toolkit, remote desktop, and the entire printer stack. The more a high profile tool does, the less your janky glue code scripts need to do.
Python is okay for some things. It’s just that software in general has become terrible because there is so much wasted power being used because people have access to fast hardware. In the 90s your entire environment would use a few MBs of ram. I know with high res images some of this stuff would increase but people are so wasteful with how they write stuff these days. We are evolving backwards because we spend hundreds or thousands on amazing hardware only to have it run like trash in a world where everything is written in java and python and electron. No longer do developers optimize. They just get their webpage to run at a inconsistent 30 FPS on your $2000 computer, and collect their 150k salary, on a machine that has more computing power than every computer in the world put together in the 90s.
It’s not just bad for your time and sanity. It’s bad for the environment, it’s bad for the economy, this same rot is working it’s way into operating systems, into game engines. Every game written for UE5 seems to run at 50 FPS regardless of how good your PC hardware is because of these same low quality programmers and terrible tools. Idk Linux to me has been a breath of fresh air in recent times as bad as it can be. It’s mostly C code with tiny binaries that are like 1-3 MB usually. I guess there is a silver lining to it in that all of these evil corporations like Google and meta and apple are dying because of this. Maybe the internet will go back to being centered around user content in a distributed fashion and not just a couple of highly controlled websites that try to brainwash you into supporting your corporate backed government. It already seems like every triple A game studio sucks and all the best games that have come out in the past 15 years have been from small indie studios.
Have you heard of the term “Software crisis”?
We don’t really talk all that much about it any more, because it’s become so normal, but the software crisis was the point where computers became faster than human programmers. That problem came up in the 1960.
Up until then a computer was simple enough that a single human being could actually understand everything that happened under the hood and could write near-optimal code by hand.
Since then computers doubled in performance and memory every few years, while developers have largely stayed human with human performance. It’s impossible for a single human being to understand everything that happens inside a computer.
That’s why ever since we have tried optimizing for developer time over execution time.
We have been using higher-level languages, frameworks, middlewares and so on to cut the time it takes to develop stuff.
I mean, sure, we could develop like in the 90s, the tools are all still there, but neither management nor customers would accept that, for multiple reasons:
So there’s more and more to do with less and less time and money.
We can square that circle by either reducing software quality into nothingness, or by using higher-level developer tools, that allow for faster and less error-prone develoment while utilizing the performance that still grows exponentially.
What would you choose?
But ultimately, it’s still the customer’s choice. You don’t have to use VSCode (which runs on Electron). You can still use KATE. You don’t have to use Windows or Gnome or MacOS. You can use Linux and run something like IceWM on it. You don’t have to use the newest MS Office, you can use Office 2013 or Libre Office.
For pretty much any Electron app out there, there’s a native alternative.
But it’s likely you don’t use them. Why is that? Do you actually prefer the flashy, pretty, newer alternative, that looks and feels better?
And maybe question why it feels so hard to pay €5 for a mobile app, and why you choose the free option over the paid one.