Mailing List Archive

Programmed energy use
Benjamin,

The topic is being changed by me because I get amused by statistics.

We can all agree that any form of energy use uses energy, duh! But that does not make it good or bad in isolation.

If I had a job that had me wake up every day in the dark, drive for an hour to an airport, hop across the country (perhaps in a private plane) and drive a rental from there to work for another hour, find a few hours to do some work, then repeat and head home, that would indeed be wasteful as it happened several hundred times a year. If I opted to use a PC with ZOOM and a few other tools instead, including using resources in the cloud and especially programs running as PYTHON, would it be a net good thing for the environment?

The reality is the success of Python as an environment that is used in many servers, often alongside others, simply means it is used MORE. If no other language was ever used, it would get all the blame. If it was rarely used, it might hardly matter if it was efficient or not.

As it happens, I doubt it is anywhere as inefficient as some suggest. Some of the other alternatives arguably are much worse. Think how fast programs run that are written as humungous shell scripts that start a new full-process for each minor task, for example.

One potential set of solutions is fairly clear. Some programs, in ANY language, perform differently depending on which algorithms are used and many other such factors. So sure, a substantial number of programs of any type that are run frequently probably could be evaluated to make them more efficient. A dumb example is languages that allow you to keep adding entries to something like a vector or list or data.frame and do so by making a new data structure each time of one length longer and COPYING all the items over and then allowing the previous one to be garbage collected. Boy can that become expensive for longer input or calculations. But if you KNOW how many items you may need, you can reserve enough space in advance and fill it as you go along, or other such variants.

In my reality, many languages are now hybrids with some parts implemented using libraries already written carefully for efficiency and often in languages like C or C++ or FORTRAN or perhaps even lower-level languages that are machine-specific. Proper use of these routines gives a nice boost.

And, sure, if you run some programs that never use many language features on a server, I suspect you could make a customized version of something like Python built that does not incorporate much of what will never be used so the core loaded is smaller and perhaps in many ways faster. I know that has been done for example for some smaller processors.

Having said all that, if someone really made a truly compliant improvement on python that ran everything and was compatible with future additions, great. Would it be public domain and open-code? Would it be handed over to the groups currently responsible for python so parts or the whole could be used if people were interested? Would it be maintained? Free? ...

My impression from the past is that what is being offered will NOT be a python interpreter at all but rather a file or files that define the language and an engine that takes programs in any language that has been defined that way and combining the two to compile some kind of executable. Some of that has sort of been done, albeit just for one language at a time. Adding features to the language though, or even fixing any errors, might become a bit weirder.

But none of this really has to do with the environment really. The goal for many people is to make our computing CHEAPER and more reliable and so on. Obviously faster processors or peripherals may deliver more bang for the buck and reducing the heat generated or energy used (somewhat related) are other such facets. But if we improved our computers (including software like python) and simply found lots more uses for them so we kept adding more farms of servers such as to mine new bitcoin or whatever, we would not have progress.

Heck, we can cut back on wasting energy by not allowing children to play video games or look at social media for more than an hour a day and limit people from getting their email more than once a day like in the old days! For adults, we could remove most pornography which apparently is one of the biggest uses for the internet.

Does anyone have even a guess on what globally is contributing most to such energy usage even within the computer realm? I mean can we blame Apple and Microsoft and Google and such for their operating systems which run all the time and often consume all available CPU when nothing else is happening and it just keeps looking for something to do? How much time is spent by SQL queries whether called from python or any other languages, or google searches that may trigger a parallel search in thousands or more places then telling us the first 10, plus some ads, and saying there are umpteen million more if we are interested!

Should we strive for more efficiency? Sure. Should I spend 3 years developing something to perfection that I could otherwise produce and debug and make available in weeks or months?

Well, some do, and it is not unheard of to prototype in a language like python and later rewrite it in part or whole. Various languages have a role to play and niches they fit better than others. Python is no different and as noted if someone likes C++, great. Parenthetically, I have not had any reason to use C++ since the nineties and just ordered a few recent books to see how it has evolved since, perhaps in reaction to all the other languages spun off it or off C.

My programmed energy use for today is just about exhausted. Luckily, my Day starts at midnight, in about half an hour ????

Avi

-----Original Message-----
From: Python-list <python-list-bounces+avigross=verizon.net@python.org> On Behalf Of Benjamin Schollnick
Sent: Wednesday, May 5, 2021 2:17 PM
To: Mr Flibble <flibble@i42.invalidwibblegrok.co.uk>
Cc: python-list@python.org
Subject: Re: neoPython : Fastest Python Implementation: Coming Soon

> Why? The currently extant Python implementations contribute to climate change as they are so inefficient;

That same argument can be made for every triple-AAA video game, game console, etc.

Python is more efficient for some problem sets, and Python is less efficient for other problem sets.

Please feel free to come out with NeoPython. When you are done, and it is backward compatible with existing Python code, I’ll be happy to benchmark it against Native python. But don’t blame Python for global climate change. There are plenty of bigger “causations” to Global climate change, then a freakin’ computer programming language.

- Benjamin


--
https://mail.python.org/mailman/listinfo/python-list

--
https://mail.python.org/mailman/listinfo/python-list