* Make software that works on older devices, the older the better.
* Make software that will keep on working for a very long time.
* Make software that uses the least amount of total energy to achieve its results.
* Make software that also uses the least amount of network data transfer, memory and storage.
* Make software that encourages the user to use it in a frugal way.

#FrugalComputing

Frugal computing: developer perspective

On the need for low-carbon and sustainable computing and what developers can do about it.

Wim Vanderbauwhede
@wim_v12e
Frugal software will cost more to write. Writing software is very expensive.
Most developers are barely able to make software that runs more or less correctly (don't try something unexpected).
Most have no idea about performance and work with tiny test data. Hilarious effects can result when dev's tested with 10 addresses and real data set is 100,000. You mention the problem with data growth. I see that regularly at work - database wuery performance.
Much backward incompatibility is from library upgrades from vendors. M$ like to force "upgrades". New features in libraries force it for the software too keep up with current best appearance. They also helps drive the subscription revenue model which businesses adore - really helps planning & stability.
@DavidPenington It costs more as long as companies don't have to pay for externalities, and consumers don't ask for green software. We have to start somewhere, and raising awareness amongst developers is as good a place as any.
@DavidPenington @wim_v12e The software we have has untenable costs.
@melanie
Indeed. Current software engineering practices are not sustainable, even if we would ignore the environmental costs.
@DavidPenington
@DavidPenington Which is why a lot of the work we do to make #FrugalComputing a reality is on the software engineering practices side.

@wim_v12e

Thanks, it reminded me of this article:

https://www.joelonsoftware.com/2008/05/01/architecture-astronauts-take-over/

Not exactly the same, but it is based on the same principles.

Architecture astronauts take over

It was seven years ago today when everybody was getting excited about Microsoft’s bombastic announcement of Hailstorm, promising that “Hailstorm makes the technology in your life work t…

Joel on Software
@wim_v12e these are great ideas and their fruits would be a welcome addition to #tscc (if it ever happens 🤣).
@dbb @wim_v12e Please could you define #tscc? Couldn't easily find it.
@dbb @wim_v12e Jason I’d like to help organize “small computing congress” : in Amsterdam or https://wiki.techinc.nl/index.php/User:Becha/Lika/Lodge
User:Becha/Lika/Lodge - Technologia Incognita

@becha both those places sound like a great place to start!

@wim_v12e

@wim_v12e Come on! Many companies have not yet managed to make software that works.

@wim_v12e An example:

In a chat, don’t default to storing messages forever.

We don’t tap our own phones to record our calls. A lot of content has a useful expiration date!

My #Mastodon posts self-destruct after a year if they get no likes or boosts. Perhaps I should be more aggressive. Hosting an ever-growing amount of content is not sustainable.

@markstos
I guess I'm a data horder because before I could export my texts I used to handwrite them out before deleting them...
@wim_v12e
@wim_v12e Make software that has a 'buy it once' option and stop with the required subscription fees.
@GreenDragonAuthorArtist @wim_v12e Do that for everything except newspapers, cable, streaming services and magazines.
@wim_v12e Linux on ARM meets most of those requirements. Though my ARM64 laptop has software that won't run on lower bit number versions.
@wim_v12e I used to laugh at websites that had "opening hours" but now I'm thinking some of them were onto something. Do my digital services need to be available 24/7/365? Yet all my cloud resources proudly claim Five Nines uptime etc. Email even has "come back later" built into the protocols. #SwitchOffWhenNotUsing not as catchy as #FrugalComputing ;)
@wim_v12e What do you have in mind re. hardware, OS, and programming languages?

@wim_v12e +9001%

If I can't run it on a @Raspberry_Pi #Pi0 v.13 or #Pi0W then I'll not consider it useable.

@wim_v12e "My computer has the power of a super computer, and is so efficient, it draws less than 100watts!"

"uhuh, and it does the same jobs as a typewriter, a VCR, a telephone, and a deck of cards. Computers have been able to do all that since the 90s"

@wim_v12e you know what, let me plug good old fashioned AI* here.

Well-understood, high performance for its intended uses, runs on a single laptop, and is still closer to AGI than LLMs: soar.eecs.umich.edu

It's runs local, and it has been updated over decades.

Rough around the edges, but none of this "become dependent on us and require huge compute" garbage.

*It's not quite as brittle as GOFAI has been known for.

@Unampho @wim_v12e I'd argue that even some of the stuff OpenAPI did before LLMs is closer to AGI than LLMs are.

@wim_v12e But how can you do all that AND make it a subscription service with forced updates and check-ins, and microtransactions, and with at least three other corporations sponsoring parts of the result?

(For real, though, yep.)

@wim_v12e agreed. reminds me to maybe add these values to my personal craft handbook

@wim_v12e @nasser These are great principles that are sadly quite hard to live by these days. I try to do it myself, but not everyone is confortable with C/C++ and the likes. Where are all performant and easy-to-use languages? The minimal UI libraries? We need lo-fi versions of SwiftUI and React.

What I'm saying is that its harder today than it used to be and experienced developers should try to make it easier for newcomers to do the right thing.

@nasser @wim_v12e The web could be a good target I guess, despite the enormous software stacks that modern browsers are. One could maybe be careful of what apis one use and make sure the app runs in e.g. SerenityOS's browser.
@wim_v12e most software isn’t like this because the devs value human effort over computational power, it’s not some capitalist opulence it’s just a resource tradeoff

@angeleyes04
You're correct that it's a resource tradeoff, but it's one made without full consideration of all factors. If the cost of externalities had an equivalent monetary cost attached the tradeoffs devs make would be very different.

@wim_v12e

@wim_v12e YES! SPEAK UP LOUDER FOR PEOPLE IN THE BACK.
@wim_v12e I remember reading about audits of the android and iOS code for to find optimizations. They found so many, but no one was able to do those optimizations because the priority from up top has always been to add new features as quickly as possible.
When I think about how much wasted power and e-waste created from this, aggregated across the entirety of smart phone owners, I get pretty angry at the ones dictating those priorities.
@TakeV @wim_v12e Moloch. It's Moloch who dictates these priorities... That's the problem 😞

@wim_v12e keep on working? Hahahaha

Those guys dont know th saying: if it aint broke, don't fix it! ALWAYS BREAKING

@wim_v12e I think often about how so much of our computing could be so much more power efficient if even just the most popular websites weren't horrifically inefficient and slow. 95% of people could get by on a Raspberry Pi running a stripped down DE if not for websites being hungrier than most actual applications.
@riley @wim_v12e: JavaScript seems to have been a particular mistake here, although I suppose that's a case of what it's being used for as much as anything else. But yes, web browsers are obscenely processor-/memory-hungry and it doesn't help that Electron is a thing either.

@riley @wim_v12e

☝️ So much this!

Aging hardware can run many GNU/Linux distributions perfectly fine UNTIL you open the browser. Without extensions to disable JavaScript, block ads, etc. websites are sluggish and unusable. However, with JavaScript disabled many websites become completely useless ... and this sometimes for static information.

Sustainable web design could do so much to keep less-powerful hardware in use!

@wim_v12e Every personal project. Zero employer projects.

It would seem that those with resources to waste will waste resources.

@wim_v12e Strong agree: I've added the tag #frugalComputing and your super summary to my page on low-power software! Thank you!

https://www.earth.org.uk/low-power-software.html#Frugal

BTW, I replaced an entire rack of Sun servers with an RPi that serves that site and runs off-grid!

Low-Power Software to Save Cash and Carbon

Find out how to get a job run, minimise energy in and CO2 out, and even allow a move off-grid... #frugalComputing #greenSoftware #GSE

@DamonHD @wim_v12e I did once try to make a solar powered Solaris cluster. I liked the sound of it. Didn't have enough roof space.
@wim_v12e so I guess I should learn Rust. 😅

@wim_v12e @jam Note that in some cases we need to invent new ways to be frugal, as the heroic designs of yesterday, while worthy of study, tended to be tightly coupled and other constraints that resulted in poor composability and meant few people could contribute.

We must invent new architectures that are frugal while open to diverse contributions; I think Rust and async/await in general are good steps in that direction. #FrugalComputing

@wim_v12e Couldn't agree more!
The world would work quite better if these common sense principles were followed.

@wim_v12e Hi, I'd really appreciate if you had the time give your opinion on a blog post I published this weekend about the low hanging fruits in #LowCarbonComputing: https://blog.ltgt.net/climate-friendly-software/

And in the event you like it, feel free to boost: https://piaille.fr/@tbroyer/110290605276298999

Climate-friendly software: don't fight the wrong battle

What if I told you that most promoted actions about climate-friendly software are misguided? Here's backing data for that claim and my opinion on the low-hanging fruits.

Thomas Broyer
@tbroyer @wim_v12e Thomas, I love your blog post! Would you repost it on labs.ripe.net ?? #GreenTech #sustainability

@becha Hi Vesna, why not. Does labs.ripe.net supports rel=canonical? Browsing a bit I couldn't find an article with that meta tag.

See https://dev.to/nfrankel/the-importance-of-relcanonical-for-content-writers-4o8f for why it's important.

The importance of rel=canonical for content writers

The subject of canonical reference has been touched thousand times. But since some content writers...

DEV Community
@tbroyer I’ll check & get back to you
@wim_v12e
Make software consistently designed and maintainable

@annamal @wim_v12e

I use my word processor a lot.

On Linux I have Libre Office, which is great , but... I would like a basic word processor with just (i.e. no more than that) standard, italic and bold monospaced fonts and left, center, right and full justification with just basic page formatting.

Both cli and GUI; no footnotes, no nothing else.

I have tried many word processors but one of these feature has always been missing.

@wim_v12e
Freelance software tester peeve with general mobile app development, consumer deployment space in 2020s:
Wishing more app developers used (or knew how to use?) better tools, practices to prevent null pointer exceptions, memory leaks, freezes, crashes, other software badness☹️
@wim_v12e also, as much as possible, make development of said software also follow these principles as much as possible. Make it so that people with old computers can contribute.

@wim_v12e related: recent episode on the IEEE Software Engineering Radio podcast on software obsolescence:

<https://www.se-radio.net/2023/04/se-radio-559-ross-anderson-on-software-obsolescence/>

@wim_v12e 🎯
For that matter I’m a fan of some software companies providing products on Apple ecosystem.

Apps like Tower and Kaleidoscope and Tweetbot that work even after a decade.
They have an upgrade path and incentives (%off new license) but that’s not necessary.

Notoriously the bigger the company the shittier their licensing. Adobe Lightroom Classic has a hard limit on number of times you can activate the license. For someone who changes computers a lot you hit that limit pretty fast