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
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
medium.com/@mautinoa_technologies
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.
@greenroommate
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.
Great shout!
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.
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.
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.
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?
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.
Ads.
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 :)
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
XCode -- Why do you ever need 10-15 GB+?
That's why
Linux > macOS
for 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
Neat!
Slack
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.
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'...
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...
Most Java-based applications. Personally, my top of the list is the language IDEs like Eclipse and Netbeans
Uber/Lyft and other Transportation Network Companies (TNCs). Not for the app or infrastructure itself, but the product. They have "disrupted" an industry of taxis and transportation networks by undercutting existing systems and outsourcing the cost of their business to "independent contractors" who are not professionals in that industry.
TNCs have put a lot of money into getting users to buy subsidized rides instead of taking public transit. This has resulted in drops in transit rides, and therefore less funding is allocated for transit. The environmental and societal costs for this massive increase in traffic is much larger than expanding public transit would be. TNCs promise the idea of "ridesharing", where existing drivers can give riders a seat, decreasing traffic, but studies have shown this simply is false, as drivers deadhead (drive without passengers) more than they provide rides, and whole sub-industries have popped up trying to sell or rent cars to people who don't have one but want to start driving for a TNC.
Beyond the environmental impact of all these cars, and the increased traffic from more cars (including time spent in traffic for other drivers), the societal impact has been huge. Increased traffic means an increase in traffic injuries and deaths, as well as the less documented increases in asthma and other conditions caused or worsened by automobile pollution. Decreased transit availability (and buses stuck in traffic) mean that more people take cars when they could have seen health benefits from walking or biking because they feel unsafe on or near roads. More parents drive their children to school because… you guessed it, there's too many cars.
Imagine if we had contributed the shear amount of money VCs have put into just Uber (which still loses BILLIONS of dollars a year) into good quality urban transit, regional rail, and high speed rail across just the US. Imagine serious sidewalks and bike lanes in all cities that made walking, biking, skateboarding, scootering, and even using a wheelchair safer. Imagine if we redesigned cities and towns so that most things can be walked to from a train station instead of multi-lane roads through the heart of downtown.
GNOME3 with GTK3 definitely.
It caused so much unrest in the FOSS desktop computing world that spawned at least 5 new desktop environments (MATE, Cinnamon, Unity, Budgie, Elementary, Deepin...) and caused a rewrite of LXDE to LXQt. And I'm not even mentioning the amount of crossplatform applications which moved from GTK to Qt (like WireShark).
Even years later, GNOME3 is still requires dozens of third party extensions to be functional and customizable. And it's still not that fast as GNOME2 or XFCE.
Imaging the amounts of FTE put into all this makes me shiver.
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.
Besides blockchain what Jean-Michel mentioned I would say upcoming AI stuff. Way too much GPU servers used to have data estimated and predicted for businesses needs which could end up wasting even milions $ in what could eventualy become incorrect estimation and fail.
A lot of alternative Crypto-Miner software, even if BitCoin kinda makes sense,
theres a whole graveyard of alternatives to it that may end up dead.
AntiVirus uses file hash comparisons, is a bad system in general.
Bitcoin miners. They use enormous amounts of processing power to generate, which requires a lot of energy. Depending on the price of coins at any given moment, they can sometimes cost almost as much as they're generating.
Windows, bloated with candy crush
This is gonna be fun, Vim.
I love it and now is much better, but before version 7, I think, Vim had so much old code, you could take your Vim installer and install it in a commodore, it supported platforms dead and buried centuries ago, I'm not sure if it was because of it but years ago, some folks tried to send patches to the Vim god, yes is pretty vertical that hierarchy, and when they kept being rejected, they decided to fork and build NeoVim, not longer after a bunch of advances came to Vim and version 7 was born. Don't take this to the letter, this is what I recall. The moral is that time comes to everything even awesome tools like Vim, so we have to keep them maintained and give the code some love even tho we take it as finished. Even the Linux Kernel has made big cleanups in the past years.
Electron. It makes creating desktop apps easier and has single - handedly improved linux app ecosystem by a lot. Cannot deny that. But it can bring even the beastliest of computer rigs out there to grind. There are apps like VSCode that do it right but vast majority (slack, discord) are just memory hog.
It's unfortunate that popular or productive languages/frameworks/whatever succeed beyond their designer's intents and muffin-top with additional abstractions, libraries, and feature creep into elements of undesirability. "Victims of their own success" is certainly applicable.
Maybe not the most wasteful, but the software of my soundbar does much more than it needs to, especially the 12x amount of outbound network traffic compared to the second most active device on my network (my phone).
Yamaha YAS-109 Soundbar has Excessive Network Traffic
Henrik Sommerfeld ・ Jan 21 ・ 2 min read
Actually, you can develop for Linux and Windows on any platform using Docker / WINE, but not for macOS and iOS.
And, it is more common to develop for deployment on a Linux server, than to develop for macOS, isn't it?
CSS. padding, margin, etc. I am so amazed by SwiftUI
Other languages are going towards that goal too! elm-ui is amazing for example
Although for what I gather elm-ui is incompatible with Elm 0.19
cryptographic systems in general. with the computational power we use to protect traffic to adult websites we could accelerate the search for SETI extraterrestrials for example.
Develop one version for Windows, another for Linux and another for Mac is a waste of money, time and resources.
Use Electron ;)
NodeJS modules.
When I get a new VPS, I need to install a Node (and PyPI) mirror on it so my CI/CD pipelines don't download half the internet on every push.
Ryver messaging system. Like slack but never went out of the MVP stage.
Teams from microsoft, every message reaction creates a notification that I have to manually mark as read
CI Toolchains? :D
Heh, came here to say Jira - bloatware monster that does not encourage clear process thinking but instead empowers thousands of cargo cults to waste precious human time through enforced dogma. Use. Sticky. Notes. :)
[Not software] GIF as a format is overused. We don't need 1-minute long videos in GIF format; we have other file formats more suitable for this sort of content.
AWS DOCs :D :D
Bitcoin is easily the most wasteful software, considering the absurd amount of energy it is using.
Apart from Electron apps, ELK. Very memory hungry. But it is also one of a kind so...
Office 365, time sink and specifically the calendar, only works when you change your mental model of calendars...
Slack, I mean what are you doing with all that memory anyways? It's just chat messages
By far, Bitcoin and all those similar cryptocurrencies.
Windows Vista/8/10, KDE 1-4, browsers, electron, flash, java applets, ad block plus, adobe software, anti virus and visual studio.
Probably whatever firmware strikes the right balance between being widely used and least efficient at the most frequently performed operations 🤔
slack