DEV Community

Ben Halpern
Ben Halpern

Posted on

What's the most wasteful software?

Which software, based on how it is used and what impact it has on the world is most wasteful?

Wasteful meaning perhaps energy consumption, or data requirements, or any other form of "waste".

Top comments (108)

Collapse
 
tobiassn profile image
Tobias SN

Electron. I mean, I don’t mind it all that much if a full fledged app that I use a lot uses it, but the moment you use it for an app that flashes disc/disk images, you loose all hope from me.

Collapse
 
hackergaucho profile image
Hacker Gaucho

I don't agree with that. if electron is a waste then vscode, atom and skype for example are also since they are built on electron.

Collapse
 
ghost profile image
Ghost

As I see it wasteful doesn't mean useless, could those apps consume less without Electron, of course, are they useless because they use Electron? absolutely no. I haven't use any of them but I've heard a lot of people liking them. Is a Ferrari wasteful? of course, is a bad car? I don't think so.

Thread Thread
 
davidrock profile image
David Rock

I can't agree with you. If something is useful it is not a waste anymore. As soon you declare something useful you can't declare it as waste, that's a pretty simple logic. I can't recall last time I had a problem (related to resources consumption) with Electron based applications.

Thread Thread
 
fronkan profile image
Fredrik Sjöstrand

I have to disagree. It is a large difference between waste and wasteful, like @robertojasr. It can be wasteful by using much more system resources than strictly necessary, however, it can still be a great tool. There is a reason I am using Python, which you could argue is wasteful. You could write the same code in C++ and it would most likely be faster and use less memory. I would, of course, argue you are wasting developer time if there aren't constraints on those resources.

To summarize my thoughts are something like this. If something is waste you should just bin it, however, if it is wasteful you need to look into which resources are wasted. Then you can make a desition on whether or not those resources are constrained in your use-case.

Thread Thread
 
ghost profile image
Ghost

Efficacy/Efficiency, the first is about achieving a given result, the second also take into account the resources required. I could use an helicopter to buy bread two blocks away, the goal is achieved, so is effective, but is arguable very wasteful on inefficient.

Wasteful refers to the useless consumption or expenditure, so everything that doesn't directly contributes to the main goal is waste, something can be wasteful without being a complete waste, which only occurs if the goal is not achieved as you mentioned, but "wasteful" doesn't mean is a complete waste, just that have a considerable amount of resources not directed to the main goal. A Ferrari is wasteful but is far from waste. Even this is arguable tho, because depends on what the goal is, if is to impress people a Ferrari may not be wasteful and in fact be very efficient.

About Electron consuming too much is also debatable, to me it is, I tried for about 10min Atom with my usual 10+ files open and consumed much more than Vim doing the same thing, you can argue that Atom does things that Vim can't, I don't know, to my use case is wasteful because I don't care about those potential extra features. As I said, what is or not wasteful depends on everyone goals and criteria.

But the fact is that not because something achieve the goal is not wasteful and that something is wasteful doesn't mean is waste. Just like that something is dusty doesn't mean is dust. That's pretty simple logic.

Thread Thread
 
ghost profile image
Ghost

@Fredrik Bengtsson, you beat me by seconds, I saw the notification bell just before y pressed the button tu submit.

Collapse
 
sergix profile image
Peyton McGinnis

Electron is useful if the application itself has a reason for using web technologies (e.g. simple extensibility using TypeScript), which should be obvious but too many applications are using it when C# would actually be easier/more performant.

Thread Thread
 
hackergaucho profile image
Hacker Gaucho • Edited

nowadays performance is no longer so important, most new modern machines already have at least 2GB which is more than enough to run a chromium with nodejs.

what I realize is a great prejudice against electron coming from those who use macOS and are accustomed to high performance native solutions. linux users or even windows users doesn't care much about it.

whereas macOS users represent less than 15% of the desktop segment I see no reason for the rest of users to act with the same prejudice.

in short: if 63% of machines are able to run chrome/chromium with v8 it is capable of running electron very well.

Thread Thread
 
roh_mish profile image
Rohan Mishra

most new modern machines already have at least 2GB which is more than enough to run a chromium with nodejs.

True, but that's enough for maybe one app. I am a linux user myself and am thankful for electron since it brought many apps to platform that otherwise wouldn't run on linux. It makes creating desktop apps easier.

Its easy to say using a high end modern desktop that electron is fine but using a cheap laptop like HP Stream or a really old laptop, those apps are a pain to use. VSCode plus a few tabs in firefox makes my laptop unresponsive frequently.

electron is great for apps from smaller companies in that it allows you to deploy apps to desktop using single codebase but apps that can use 1/4 resources and are run by so many people is a waste when companies can easily invest in making better apps.

Thread Thread
 
hackergaucho profile image
Hacker Gaucho • Edited

VSCode plus a few tabs in firefox makes my laptop unresponsive frequently.

i recommend that on more modest machines use firefox as a browser and install a tab limiter. I also recommend that you exchange vscode by atom with zentabs and try to keep at least the amount of installed plugins.

is a waste when companies can easily invest in making better apps.

It is not enough to have money, you need to have a huge human capital qualified to create an open source project such as electron, atom or vscode in closed code.

if a large company like Github or Microsoft does not have or is unwilling to invest in human capital it needs to invest in languages and platforms that are more popular and accessible to the open source community.

Collapse
 
tobiassn profile image
Tobias SN

Electron. I mean, I don’t mind it all that much if a full fledged app that I use a lot uses it,

Collapse
 
dexygen profile image
George Jempty

Um, Slack is built on Electron and when sitting idle can consumer over 0.25 GB of RAM. If that's not wasteful, I don't know what is.

Thread Thread
 
hackergaucho profile image
Hacker Gaucho

try to find someone willing to develop compiled cross platform desktop software for free and you will understand what the real purpose of electron is: not to be more performative but to be easier to develop and maintain.

Thread Thread
 
dexygen profile image
George Jempty

Your argument holds no water considering Slack certainly was not developed "for free".

Thread Thread
 
hackergaucho profile image
Hacker Gaucho • Edited

just because the application was made in closed source does not mean that your platform and the libraries used are also closed source.

Thread Thread
 
dexygen profile image
George Jempty • Edited

You're actually just making my argument for me. I seriously think you need to take the blinders off. Sure Electron can be useful, but it often leads to bloat-ware. It's probably appropriate for small/medium teams consisting primarily of web developers who need to develop something for internal use or for a small user base.

For software being developed by large enterprises who could easily find the talent with the necessary experience in technologies that are orders of magnitude more performant, than there is just no reason for it. Go ahead and feel free to have the last word if you must, but a) I think you are wrong and b) I won't be responding any further. Have a nice day.

Thread Thread
 
hackergaucho profile image
Hacker Gaucho • Edited

It's probably appropriate for small/medium teams consisting primarily of web developers who need to develop something for internal use or for a small user base.

if this were the case there would be hundreds of apps running over Electron and being used by thousands of users.

For software being developed by large enterprises who could easily find the talent with the necessary experience in technologies that are orders of magnitude more performant, than there is just no reason for it

as I have already answered for the @sergix above:

It is not enough to have money, you need to have a huge human capital qualified to create an open source project such as electron, atom or vscode in closed code.

if a large company like Github or Microsoft does not have or is unwilling to invest in human capital it needs to invest in languages and platforms that are more popular and accessible to the open source community.

did you understand?

Go ahead and feel free to have the last word if you must, but a) I think you are wrong and b) I won't be responding any further. Have a nice day.

dear friend, if you want to get out discussion all right, but don't need to try using a pigeon chess.

please be polite and at least reserve my right of reply, after all, this is a discussion and not a competition of those who give the last word, as the @fronkan wrote above:

I think this question as stated is good for discussion though but it will, in the end, be subjective

don't get me wrong, case I'm wrong I'd be happy to ❤️ your opinion.

sorry if i was too incisive, have a good day too.

Collapse
 
ben profile image
Ben Halpern

Oh yeah Electron definitely qualifies.

Collapse
 
rafi993 profile image
Rafi

Has anyone tried github.com/ImVexed/muon

Collapse
 
bnb profile image
Tierney Cyren

From your perspective, what makes it qualify?

Collapse
 
jheld profile image
Jason Held

Based on the feedback from here, sounds like a potential takeway is that electron (like many other powerful foundational tech) can be a poor choice for the runtime of some apps. Perhaps electron can be further optimized (I don't follow it in the slightest).

Collapse
 
roh_mish profile image
Rohan Mishra

The main issue with electron apps is that the UI is rendered using a full web browser, and chromium at that. Running nodejs while still heavy isnt even a significant part of the electron app runtime. Switching out to something that is more optimized for this use is an option but then it looses its key attraction of using HTML/CSS to develop your app.

Collapse
 
hackergaucho profile image
Hacker Gaucho

difficult is to find an alternative to Chromium. even tried to put Electron in different engines like Chrome that uses WebKit on iOS instead of Blink.

however, with Microsoft adopting Blink as edge engine this year it's hard to imagine a better option than Chromium to use on Windows, MacOS, and Linux that doesn't even have a standard on all its multiple distros.

Thread Thread
 
jheld profile image
Jason Held

I find many people don't consider using firefox for their base. Curious why not? Not even talking electron, just saying.

Thread Thread
 
rhymes profile image
rhymes • Edited

Because, and I say it as a Firefox user who loves it, embedding Firefox sucks 😂

Seriously speaking, Mozilla documentation is largely obsolete on integration and AFAIK the new engine has no embeddable library.

I'd imagine over the years, with more limited resources than Google and Apple, Mozilla had to decide what to focus on.

Collapse
 
markoshiva profile image
Marko Shiva

I agree about electron. Its a full bootstrapped bloated chrome with electron. I don't know what is problem with frontend devs? Probably lack of knowledge and lack of knowledge of computer architecture. I mean not understanding how bad and wasteful that platform is.

As a viable alternate librarby for creating desktop web based apps I can recommend NW.js Gitter use it and its pretty stable. And far less resources wasted.

Collapse
 
hackergaucho profile image
Hacker Gaucho • Edited

is the same thing, NW.js uses Chrome as platform too.

Thread Thread
 
markoshiva profile image
Marko Shiva

Yeah but it do not bootstrap the whole chorine and v8 only one library it's much faster and much less memory needed.

Collapse
 
dylanesque profile image
Michael Caveney

This, there are few programs I get use out of the way I do VSCode, but good lord.....

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

Bitcoin and the blockchain

Collapse
 
_hs_ profile image
HS

I would be specific about blockchain and say cryptocurrency. Blockchain can be used to calculate some important stuff, but as log as it uses only existing device. Not to build farms to calculate chemical thigs whcih might not even help humanity. Best to my knowledge non other implementation than crypto had GPU farms built by average Joes

Collapse
 
giorgosk profile image
Giorgos Kontopoulos 👀

I agree Bitcoin uses a lot of energy because it uses proof of work (POW) consensus algorithm. Some cryptos gaining in popularity steadily use proof of stake (POS) algorithms and one can participate with old cpu and minimal ram and computer stays mostly idle. So not all cryptocurency is wasteful.

Thread Thread
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard • Edited

proof of work should be understood as meaning proof of waste

cryptography itself is super useful, for sure.

you don't need to convince me. my colleagues and I at Mautinoa Technologies have built one year ago an offline payment system for countries with poor banking infrastructure. I was asked all the time why we didn't use the Blockchain, and had to reply every time: look,

  • on a theoretical level this consensus algorithm thing is not actually needed, building trust is better than assuming it is not there and finding a complex software workaround
  • on a practical level, how would my users in Timor Leste buy their vegetables on the market with a Bitcoin transaction, given that they often have no internet reception?
Thread Thread
 
giorgosk profile image
Giorgos Kontopoulos 👀 • Edited

@jmfayard thanks for the follow up. Seems contradicting to know the difference between POW and POS and actually say "blockchain is wasteful" in your original post.

"Some blockchain projects are wasteful" might be a more appropriate thing to say. Blockchain is not inherently wasterful you need to speak about the consensus algorithm that puts the next block in chain and if that is a wasteful process.

Is that mobile payment system you describe open sourced ? I am genuinely interested to read about seems interesting though.

Thread Thread
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard • Edited

My initial comment was a hot take in 3 words, not a completly accurate description. Blockchain has valid usages, just no as many as the enthousiasts claim. We were thinking ourselves about building a blockchain between the central bank of Timor Leste and the banks in the country.

I don't work at Mautinoa anymore but you can read about it here
medium.com/@mautinoa_technologies

Thread Thread
 
_hs_ profile image
HS

Glad I commented. A lot of information just went in. Didn't know someone would build cryptocurrency without blockchain, purely because "it's not cool". I'm stuck with the idea that if you don't use hype words you loose client's and reputation so you need either to be in a stable long living company or freelance for such big guys. Reason is that I've been frowned upon and not invited to next rounds of application processes as I don't want to learn Kotlin or use Nodejs or read books about TDD, Clean etc. I'm currently in a company where they put hype words in a presentation because it's a must, but they let me do what I want so I'm confused how long will it last.

Thread Thread
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

@greenroommate
focus on delivering value to your users
they won't care about which technologies you use, as long as it does the job

Thread Thread
 
_hs_ profile image
HS • Edited

Well yeah currently it's like that as my client is not software company and I'm sitting there with a small team building their first software solution so it's fine. But before I only worked for software companies where they only care about technology and how your code looks. Values were set by clients, CEO and team leads etc were giving tasks and handling what needs to be done. You were the how it needs to be done and code review from them was a must. Each day they only review code and it was always "something" but no one tells you what, why, and how. You are expected to know as non junior developer. It's like they give you a task, expect you to fail and then tell you "this should be done better" or "this library should be used you shouldn't code it yourself". Basically if it was simple, it was wrong. And they use same technology always because "if you want to be senior you can only do one tech stack" or else your playing around and don't know anything good enough.

Collapse
 
joshpuetz profile image
Josh Puetz

100% agree with this: cryptocurrency mining in particular is really resource intensive. Many CI/CD providers struggle with preventing mining abuse on their platforms.

Collapse
 
murrayvarey profile image
MurrayVarey

Great shout!

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Web browsers. They're doing something so very simple: viewing remote content. Yet they consume as much memory as a high resolution video game, a code compiler, a video renderer...it's absurd!

Most of that waste of resources doesn't even come from doing anything useful. Much of modern software gratuitously abuses dynamic allocation where more careful allocation strategies (either static or dynamic) are called for. Browsers just seem to be one of the biggest offenders.

Collapse
 
ghost profile image
Ghost

How much is the browser itself and how much just huge websites/apps? I was about to post bloated JS.

I've tried lightweight browsers but most sites don't work properly on them.

I noted that after I put a Pi-hole pi-hole.net in my network memory got considerably lower, that's just removing useless JS: spyware, ads, etc.

I understand the need of revenue (I really do 8'| ) but when a website is trying to steal private data, that's where I put the line.

And if you have a 20MB website that only works with JS enabled and eat 20% of my CPU that's is just bad design. And showing off your visual prowess, you just show your lack of engineering and common sense.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

You're probably right; Javascript no doubt contributes. It's probably a little of both.

So, let's test!

Firefox, with all add-ons disabled, and with ten tabs open to the oldest website on earth is reporting a memory usage of 318 MiB...which is actually pretty high, all things considered!

Chromium, identical scenario, consumes a whopping 1205 MiB (1.18 GiB!) of memory, across 14 processes. And that's a fresh-installation of the browser, no extensions. In my book, that's inexcusable.

Thread Thread
 
ghost profile image
Ghost

OMG, really, Chromium eats that much!, wow, that's one of the reasons I don't use it for other than testing. 318MB is no small footprint either. That's why I really appreciate websites that can be viewed without JS. I used Dillo as long as I could but nowadays almost all sites are unusable with it.

Thread Thread
 
hackergaucho profile image
 
markoshiva profile image
Marko Shiva

There is Falkon nowdays you can try it especially if you use linux.

Thread Thread
 
ghost profile image
Ghost

Thanks, I'll check it out and of course I use Linux, I'm cool like that :D (not Arch tho)

Thread Thread
 
napoleon039 profile image
Nihar Raote

Chrome just uses so much RAM, I refrain from using it for anything other than the dev tools. If Firefox improves their dev tools to that level, or even better, I'd immediately remove Chrome from my system.

Collapse
 
mpuckett profile image
Michael Puckett

If you stripped out many older/deprecated requirements, i.e, pre-HTML5 doctypes, could a browser be a lot faster? For example, React Native’s layout engine was 100% Flexbox last time I looked. Or is it the massive JavaScript engine that’s causing all the bloat?

Collapse
 
hackergaucho profile image
Hacker Gaucho

the firefox executable itself has about 200mb of executable files, it would be impossible to run it with less than that.

what should be taken into account is the individual memory consumption of the page and not the page and browser as a whole.

Collapse
 
hackergaucho profile image
Hacker Gaucho • Edited

try to run a single page application on lynx and you will notice that the right word is not wasteful question but a benefit costs analysis question.

Collapse
 
dansilcox profile image
Dan Silcox

The Facebook app wastes a lot of my time, does that count? 😂

Collapse
 
hopsoft profile image
Hopsoft

Anything that encourages people to waste time certainly counts IMO. The difficult part is accurately measuring such waste against the good that these systems might provide. This balance (or lack thereof) should be considered with other things people are discussing here like Electron, Blockchain, etc...

Collapse
 
dansilcox profile image
Dan Silcox

So true; even in a tooling context if it takes you 2 days to get some fancy tool working and you only ever use it once to save you 1/2 an hour of work it’s probably not worth it (albeit there is intrinsic value in learning the tooling etc).

Collapse
 
khrome83 profile image
Zane Milakovic • Edited

Hands down, images.

Every website loads images that are way too big for the viewport, the connection, the dpi of the device, etc.

Or we don’t add width/height making it harder for the device to render correctly.

In both ways it uses more joules of power, as it tries to deal with the fallout. Either scaling a image up or down, grabbing a larger than needed file, or forcing a rerender once it knows the images size.

And how much extra time do we wait to see images download. Or have a image heavy ad pop in late and mess up reading content.

I love the visual nature of the web, but we have never collectively done it in a responsible way. The “few” of us that have, know it adds a lot more responsibility to our plates and eats more of the developers time.

All around, it’s just not as automated and easy as it could be.

Collapse
 
garrett profile image
Garrett / G66

Ads.

 
fronkan profile image
Fredrik Sjöstrand

Yeah, Marcelo that is kind of my take as well. I think this question as stated is good for discussion though but it will, in the end, be subjective. It is a good way to spark a discussion on what is wasteful and also what resources do we in general value higher than others. The discussion about electron I think comes from how some people prioritize system resources higher than others.

Thread Thread
 
ghost profile image
Ghost

That's, in part, we have jobs, to evaluate the trade off and make a informed desition. As you mentioned about Python/C++, is the one in charge of the design who should take both costs and constrains and choose, in this case between Python and C++, if so many are using Electron apps there must be preferable for their use case, maybe RAM is no concern, is not that expensive after all. And some people even buy Ferrari :D

Collapse
 
devpato profile image
Pato

Internet Explorer. Developing websites to render property sucks, their dev tools sucks. Thank gosh Edge came out

Collapse
 
ghost profile image
Ghost

to me the greatest thing about Edge is that is based in Chrome, not my favorite, but at least have some respect for the standards, MS not doing much with browsers, I like that :)

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

XCode -- Why do you ever need 10-15 GB+?

That's why Linux > macOS for dev.

Collapse
 
steveblue profile image
Stephen Belovarich

Everytime I have Figma running in a tab in Safari for awhile the warning pops up saying the web app is using excessive energy. The teams making browser based design tools should consider making the experience super performant when engineers also have to run Chrome, multiple servers locally.

Collapse
 
mpuckett profile image
Michael Puckett

Web Assembly to the rescue!?

Collapse
 
rhymes profile image
rhymes

Interesting you mentioned it because Figma already uses WebAssembly for some of its functionality

Thread Thread
 
ben profile image
Ben Halpern

Neat!

Collapse
 
rhymes profile image
rhymes

Video games, I think nobody mentioned them.

Being practically one of the benchmarks news GPUs are created for/with, video games help the OEM market sell new hardware (be it parts or entire computers) which eventually leads waste, as computers are really hard to recycle.

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

This cut me to the core. I spent a good chunk of the weekend playing Raft. My GPU was spooled up running the game at max settings 90fps 1440p. All tolled I think it was probably single digit extra dollars (compared to non-gaming) of electricity for the whole weekend. My last gaming computer I had for 6 or 7 years and it was far less energy efficient.

It feels weird to be in a world now where hobbies are scrutinized for environmental impact. Example: we should definitely call off sporting events for the amount of electricity wasted plus transportation emissions and garbage generated by attendees. I don't follow sports, so I wouldn't mind.

Collapse
 
phlash profile image
Phil Ashby

This. Plus any and all other software that fuels consumerism through feature bloat and marketing, instead of 'do one thing well'...

Collapse
 
richardeschloss profile image
Richard Schloss • Edited

Microsoft Windows. It doesn't respect the "disable updates" setting, so much so that it's "Windows Update Medic Service" feels the need to revive it. So yeah, unplanned updates without warning of any kind can be kind of wasteful. The actual update process is time-consuming, uses tons of data, requires users to face downtime, etc. I imagine the impact can be huge throughout the entire corporate world.

Collapse
 
damcosset profile image
Damien Cosset

Slack

Collapse
 
leob profile image
leob • Edited

Interesting question! Maybe we could (should) add environmental awareness (energy consumption) as a topic to the standard web/app checklist which already contains things like performance, security, SEO, accessibility and so on.

Complicated to calculate though.

There's of course the difference between backend and frontend energy consumption.

Backend carbon footprint could be mitigated by using renewable energy to power data centers. And maybe a shift from interpreted/scripted languages like JS, PHP, Python, Ruby to languages like Go, Rust and so on would be helpful.

Frontend carbon footprint might benefit from the shift to static site generators like Gatsby (you can safely assume that an app built using static site generation will have a smaller footprint than the same app built with for instance SSR).

Collapse
 
johnkazer profile image
John Kazer

For the back end Microsoft has plans blogs.microsoft.com/blog/2020/01/1...

Collapse
 
xowap profile image
Rémy 🤖

Everything Google except Google.

They are just throwing balls in all directions to confuse people and make them run in circles.

Especially all the "performance" bullshit on the web, it's just tricks to make the life impossible for other browser makers. Most Google products have a terrible performance. A YouTube embed just adds 2.4s to the speed index of a page.

Collapse
 
patryktech profile image
Patryk

Also, they just wait for people to rely on it to either change the terms (e.g. they broke Google Maps on a ton of sites by changing the licensing terms, and you have to provide payment details nowadays, IIRC), or discontinue it altogether (I built a C# app with the Google Earth plugin a long time ago to present cellular network data... that was deprecated in 2014).

There's even a Google Graveyard for all their discontinued apps and services.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.