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".
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".
For further actions, you may consider blocking this person and/or reporting abuse
Satin Wuker -
Amy Liu -
Mark Steadman -
Once suspended, ben will not be able to comment or publish posts until their suspension is removed.
Once unsuspended, ben will be able to comment and publish posts again.
Once unpublished, all posts by ben will become hidden and only accessible to themselves.
If ben is not suspended, they can still re-publish their posts from their dashboard.
Once unpublished, this post will become invisible to the public and only accessible to Ben Halpern.
They can still re-publish the post if they are not suspended.
Thanks for keeping DEV Community safe. Here is what you can do to flag ben:
Unflagging ben will restore default visibility to their posts.
Top comments (116)
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.
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.
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.
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.
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.
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.
@Fredrik Bengtsson, you beat me by seconds, I saw the notification bell just before y pressed the button tu submit.
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.
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.
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.
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.
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.
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.
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.
Your argument holds no water considering Slack certainly was not developed "for free".
just because the application was made in closed source does not mean that your platform and the libraries used are also closed source.
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.
if this were the case there would be hundreds of apps running over Electron and being used by thousands of users.
as I have already answered for the @sergix above:
did you understand?
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:
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.
Oh yeah Electron definitely qualifies.
Has anyone tried github.com/ImVexed/muon
From your perspective, what makes it qualify?
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).
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.
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.
I find many people don't consider using firefox for their base. Curious why not? Not even talking electron, just saying.
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.
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.
is the same thing, NW.js uses Chrome as platform too.
Yeah but it do not bootstrap the whole chorine and v8 only one library it's much faster and much less memory needed.
This, there are few programs I get use out of the way I do VSCode, but good lord.....
Bitcoin and the blockchain
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
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.
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,
@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.
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
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.
focus on delivering value to your users
they won't care about which technologies you use, as long as it does the job
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.
100% agree with this: cryptocurrency mining in particular is really resource intensive. Many CI/CD providers struggle with preventing mining abuse on their platforms.
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.
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.
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.
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.
See details at The memory usage of the oldest site in Chromium and Firefox
There is Falkon nowdays you can try it especially if you use linux.
Thanks, I'll check it out and of course I use Linux, I'm cool like that :D (not Arch tho)
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.
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.
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.
The Facebook app wastes a lot of my time, does that count? 😂
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...
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).
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.
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.
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
Internet Explorer. Developing websites to render property sucks, their dev tools sucks. Thank gosh Edge came out
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 :)
XCode -- Why do you ever need 10-15 GB+?
Linux > macOSfor dev.
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.
Web Assembly to the rescue!?
Interesting you mentioned it because Figma already uses WebAssembly for some of its functionality
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.
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.
This. Plus any and all other software that fuels consumerism through feature bloat and marketing, instead of 'do one thing well'...
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.
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).
For the back end Microsoft has plans blogs.microsoft.com/blog/2020/01/1...
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.
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.