TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Software bloat makes me sad

101 点作者 vanschelven将近 10 年前

31 条评论

Kaali将近 10 年前
There is another side of extra resource use that I don&#x27;t really see addressed except in the mobile space: ecology.<p>Even though my computer can run all applications without a hitch, it is still very wasteful to constantly use CPU power because of technology choices or plain laziness. As an example, Spotify and Slack are two applications that seem to use most of my CPU after Chrome. Spotify and Slack combined seems to hover around 5-15% of total CPU (a two year old i7). When there is a lot of traffic in Slack I have seen it using 15-20% by itself, with multiple processes running and memory use going above 200 megs.<p>Both applications work smoothly, but should they really use that much resources? A chat application? A music player? With modern CPU&#x27;s I would expect them to be at the bottom of the process list when sorted by CPU usage. I used IRC on my Pentium 75Mhz and it ran fine. When simple applications are made so poorly that they use that much resources, what is the worldwide impact of that power use? And what about the users that don&#x27;t have powerful and expensive CPU&#x27;s?
评论 #9825882 未加载
评论 #9826375 未加载
评论 #9825874 未加载
评论 #9826195 未加载
mwcampbell将近 10 年前
I&#x27;ve previously decried bloat too, but I find that my rants against software bloat are based on emotion, not reason.<p>So, looking at this rationally, consider your favorite lightweight window manager or desktop environment for Linux. Is it fully internationalized, including support for CJK input methods? Is it fully accessible to users with disabilities, e.g. blind people and people with mobility impairments? Does it auto-mount USB thumb drives? Does it do all of the other things I&#x27;m not even aware of that are required for a fully usable desktop environment covering a wide variety of machines, users, and use cases? AFAIK, the only Linux desktop environments that come close are GNOME and Unity.<p>Basically, the world is complicated, so real-world software has to be complicated too.<p>It sounds like Atom could still use some optimization though.
评论 #9825867 未加载
评论 #9825768 未加载
评论 #9826097 未加载
评论 #9825770 未加载
评论 #9825849 未加载
prof_hobart将近 10 年前
&gt;The usual counter to this is that the actual (as opposed to imagined) bottlenecks will only become apparent after intense usage.<p>The usual counter is that &quot;optimising&quot; takes time. And all of the time that you&#x27;re spending trying to optimise before release is time that no one is able to use your software at all.<p>And the reality is that a lot of the bottlenecks <i>can&#x27;t</i> be predicted in advance - who knows how may files the average user might want to load into your system, or whether your website is going to attract 100 or a million users a month? And many expected bottlenecks become largely irrelevant as technology moves on.<p>Take his Ubuntu example - for what percentage of users does the fact that it doesn&#x27;t fit on an actual CD really matter any more? Is it worth spending weeks or months fine-tuning the distro to a point that it can be fitted onto a medium that most people probably aren&#x27;t even using anymore?
评论 #9825694 未加载
评论 #9826926 未加载
matthewmacleod将近 10 年前
I&#x27;m not really convinced. Leaving aside the argument about whether or not software is &#x27;bloated&#x27; at all, or what &#x27;bloat&#x27; actually means, this in particular stands out:<p><i>“wouldn’t it have been easier not to create the problem in the first place?” It would seem obvious that the answer to this is indeed “yes”. </i><p>It doesn&#x27;t seem obvious at all, especially considering the implicit assumptions about whether or not bloat is actually a problem. There are three classic examples highlighted in the article of writing about this tradeoff: &quot;Make it work, make it right, make it fast&quot;, &quot;Premature optimization is the root of all evil&quot;, and &quot;Bloatware and the 80&#x2F;20 Myth&quot; – but the argument about why these don&#x27;t apply is a bit weak: &quot;bloated software simply makes me sad&quot;.<p>To be honest, I don&#x27;t find we&#x27;ve got a problem, generally. My experience with my computer is that I can do many more things much faster than I could in the past. And I don&#x27;t think that counts as bloat.
评论 #9825821 未加载
评论 #9825819 未加载
placebo将近 10 年前
As someone who is also saddened by software bloat, I also wondered a bit about where it stems from. There are of course the usual suspects (some of them mentioned in the article), but I think it boils down to another symptom of the modern rat-race culture, and it is not limited to software. When the goal of creating beauty and enjoying (as well as taking pride in) the creation process is replaced by the god of money and getting it out the door as fast as possible, the quality of the thing you&#x27;re getting out the door has to deteriorate. I&#x27;d argue that a side effect of this is that the quality of life of both the creator and the receiver of the product decreases, but that is not immediately apparent when you&#x27;re too busy trying to win a rat race...<p>However, I&#x27;m optimistic. For one, I think that the tools we have today are superior in absolute terms (convenience, speed, ease of use etc.) than they ever were. Of course they are not exponentially better (like the hardware they run on), but they <i>are</i> better. Also, occasionally I see some gems here and there. There are still many developers who take pride in what they do and I enjoy finding that diamond once in a while when searching for an alternative technology to use in a new project.
fullwedgewhale将近 10 年前
One thing that strikes me is the explosion in dependencies in most software. I&#x27;m guilty of this, too. I&#x27;ve seen plenty of examples where an entire library or framework is added to a project just for a couple of features. Add a few libraries like that and suddenly you have a few megabytes of additional libraries, where maybe 90% or 95% of the features will never be used. A good article a while back looked at common unix utilities, comparing the size of commands like cp from the 1980&#x27;s to the present. Most of the bloat had to do with features that almost nobody ever uses. It wouldn&#x27;t be so bad if everyone used the same set of libraries. For example, almost all applications have a dependency on certain core libraries like libc.<p>But we often use different libraries that do essentially the same thing or different versions of the same library, so instead of 1 copy of libfoo.jar, I have 2 copies of libbar.jar and 4 copies of libfoo.jar that may all do essentially the same thing. Then I have essentially the same functionality in C++ (some libraries that wrap collections), Python (where maybe one of they python versions wraps one of the C++ libraries, but a different version). And of course I have a version installed in each ruby environment. Add to that their dependencies, and the dependency&#x27;s dependencies, and you have a perfect storm of craptastic. So libfoo.jar version 1.2.3 depends on libbaz.jar 2.3.4 which depends on libqux 1.5.7. Let&#x27;s say each one is 250k, and all I ever used was some list sorting utility in libfoo.<p>But I don&#x27;t know what we could really do about it. You can&#x27;t force everyone to program in C++ or limit them to a set of blessed libraries. I think maybe developers could be more judicious about when they could add a few lines of code and when they actually need to bring in a hard dependency an an external library. And it happens with commercial software as well. Maybe this is just the way the world will be.
评论 #9826136 未加载
评论 #9826299 未加载
评论 #9825958 未加载
评论 #9826376 未加载
deckiedan将近 10 年前
I agree in general, but the &#x27;vim in combination with a few small plugins may lead to your whole computer locking up&#x27; is extremely misleading.<p>It&#x27;s the <i>editor</i> which has frozen, not the whole computer. And the plugin in question is a fairly complex autocompletion &#x2F; analysis plugin for python. There&#x27;s a bug listed in that thread, to do with it scanning all the files millions of times, but the big problem actually isn&#x27;t bloat, in this instance, it&#x27;s the non-async nature of vim. neovim should, I hope, solve the &#x27;totally unresponsive&#x27; problem, and hopefully someone fixes the rope&#x2F;vim interaction re-scanning all the files bug.<p>But it&#x27;s not bloat, per se.<p>If your whole computer is locking up due to this, then that&#x27;s a scheduling issue, and you could try switching scheduler, or lowering the &#x27;nice&#x27; priority of that program.<p>Not that we should have to care about such things - that&#x27;s pretty terrible.
zimpenfish将近 10 年前
&quot;Convenient though it would be if it were true, Mozilla is not big because it&#x27;s full of useless crap. Mozilla is big because your needs are big. Your needs are big because the Internet is big. There are lots of small, lean web browsers out there that, incidentally, do almost nothing useful. If that&#x27;s what you need, you&#x27;ve got options...&quot;<p><a href="http:&#x2F;&#x2F;www.jwz.org&#x2F;doc&#x2F;easter-eggs.html" rel="nofollow">http:&#x2F;&#x2F;www.jwz.org&#x2F;doc&#x2F;easter-eggs.html</a>
评论 #9825746 未加载
kkapelon将近 10 年前
&quot;There are very little tools available to to help the user select unbloated software&quot;<p>Actually there is a whole community around this <a href="http:&#x2F;&#x2F;suckless.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;suckless.org&#x2F;</a>
评论 #9825880 未加载
评论 #9828110 未加载
kazinator将近 10 年前
Software bloat as such doesn&#x27;t make me sad.<p>Free open source software bloat makes me sad.<p>However, that bloat is winning on its own merits. For instance, GNU&#x2F;Linux distributions which are minimal are not popular. The popular ones tend to be the bloated ones.<p>Vim has gotten a lot bigger in 20 years, yet I&#x27;m not going to jump ship to a smaller vi implementation.<p>FOSS makes us confront the fact that we actually seem to like bloat. We inflict bloat upon ourselves --- there is no monopolistic software vendor there to blame.
评论 #9825811 未加载
maramono将近 10 年前
Related: great article on code inflation <a href="https:&#x2F;&#x2F;www.computer.org&#x2F;cms&#x2F;Computer.org&#x2F;ComputingNow&#x2F;issues&#x2F;2015&#x2F;04&#x2F;mso2015020010.pdf" rel="nofollow">https:&#x2F;&#x2F;www.computer.org&#x2F;cms&#x2F;Computer.org&#x2F;ComputingNow&#x2F;issue...</a>
a15971将近 10 年前
The bloat is simply a side effect of the evolution. Software is not as much designed as evolved.<p>You make a name for yourself in SW development by adding features that others deem useful. You get money (in commercial setting) or prestige (in freely distributed software) if you seem to be producing something useful. It&#x27;s trivially easy to recognize a contribution that adds code, but it&#x27;s hard to recognize a contribution that means absence of something (e.g. absence of bloat, absence of memory hogging, ...). You get inclusion in newer, larger or more important projects easier the more you make yourself recognized.<p>So any useful software gains more contributors that add things than those who remove things. Commercial code can and does gain developers if it earns money, open source software gains developers if it is deemed useful by programmers.<p>This is a force that shapes both the group of involved developers and the resulting software in a process akin to evolution. In both cases the selection is biased towards adders of code. There&#x27;s also always possible to add improvements that help some use cases and audiences. On the other hand, arguing for removing something or limiting might make you unpopular (you are seen as an obstacle to everlasting progress) and removed from the group of developers. Rare people have enough recognition and clout to prevent inclusion of something (Linus Torvalds is one of them - he can get away with rejecting patches to Linux kernel and he can play the role of the kernel guardian).<p>On the whole, software expands until it fills the resources available.
redcalx将近 10 年前
The notion of &#x27;premature optimisation is evil&#x27; is partly to blame; It&#x27;s not a terrible rule, but it&#x27;s much better with conditions applied. i.e. apply some intelligence&#x2F;judgement to where you use optimisation rather than just lazily following some rule.
评论 #9825750 未加载
评论 #9825591 未加载
评论 #9826399 未加载
tribaal将近 10 年前
That&#x27;s pretty much the only reason I cringe every time somebody writes a piece of client code in golang.<p>While I really like the language itself, statically linking everything is creating exactly what this article describes.<p>Burn karma, burn. I don&#x27;t care.
评论 #9825601 未加载
评论 #9825703 未加载
评论 #9826067 未加载
评论 #9825600 未加载
aikah将近 10 年前
point 2 about atom:<p>Well, writing a text editor is far more complicated than it seems at first place.In order to support big files (50mb logs for instance), you need to make all your code rely on complex memory management, streaming and caching. Maybe js is not the right tool for the job in order to implement these features. I always thought that atom should be build in Qt with an api that can interact with JS,a bit like Adobe products for instance. That way you still allow JS plugins, just like Photoshop while getting a max of perfs thanks to C++.
评论 #9825799 未加载
评论 #9825861 未加载
keedot将近 10 年前
Only experience with the same problem space can make you accurately predict where a bottleneck is going to be. Premature optimization will have you focusing on areas where optimization isn&#x27;t required. YAGNI applies to all levels of development.<p>I would rather see bloat and new ideas, than only experts working in a problem domain. My best ideas come from a marriage of understanding a single problem space, and a wonder what I can do in another. Bring on the bloat.
alkonaut将近 10 年前
Feature bloat is inevitable if you write an application in which thousands of users want different features. Most users want just a subset of the features, and think of the rest as &quot;bloat&quot; even though it might be a core feature for another user. The alternative is multiple lighter applications which would just reduce bloat at the cost of integration, a trade off almost no one seems to want.
评论 #9826227 未加载
rumcajz将近 10 年前
I guess devs don&#x27;t necessarily believe that the bloated software is good. However, they believe that the project should be developed forever, which yields the same result. I&#x27;ve written about it here: <a href="http:&#x2F;&#x2F;250bpm.com&#x2F;blog:50" rel="nofollow">http:&#x2F;&#x2F;250bpm.com&#x2F;blog:50</a>
vlad将近 10 年前
I don&#x27;t care if an app is 20% bigger in file size as long as the user interface makes sense and the product actually works, especially if the bloat is due to a programming language or architecture that makes it easier to add new features or fix bugs.
评论 #9827264 未加载
redcalx将近 10 年前
I&#x27;ve idly thought of writing a &#x27;manifesto for quality software&#x27;, and&#x2F;or trying to start some kind of political-esque movement to that effect.<p>I get annoyed by having to reboot my TV or radio when they freeze up, or by having delays to my channel changes, or having to navigate complex menus to do things that would have just been a physical button click before.<p>(this is all part of the same problem as bloat IMO).<p>This is where the likes of Apple or Dyson do well (or OK) I think. It&#x27;s not necessarily that they&#x27;re brilliant at what they do, it&#x27;s just that the competition is pretty awful.
Djonckheere将近 10 年前
this discussion reminds me of... <a href="http:&#x2F;&#x2F;s1.postimg.org&#x2F;6tm9yeue7&#x2F;invisible_software.jpg" rel="nofollow">http:&#x2F;&#x2F;s1.postimg.org&#x2F;6tm9yeue7&#x2F;invisible_software.jpg</a>
bryanlarsen将近 10 年前
Lotus 1-2-3 is the textbook example of the benefits and costs of the speed &#x2F; feature trade-off curve.<p>A major reason for 1-2-3 becoming dominant was its speed and memory efficiency; it was written in assembler. If you had a 640K machine, 1-2-3 let you write bigger spreadsheets than anybody else could.<p>But 1-2-3 was killed by Excel because it lost the feature race. It&#x27;s origins in assembly language gave it a significant disadvantage in this race.
评论 #9827011 未加载
yiyus将近 10 年前
You are not alone. See, for example, suckless.org.
emsy将近 10 年前
Atom and Vim (and imo even Ubuntu) aren&#x27;t good example of software bloat. While they might be slow and use a lot of memory, they&#x27;re usually shipped with basic functionality and more functions can be added and removed at any time. Good examples are iTunes, Office, iOS and Android (the latter two are usually shipped with non removable bloatware).
评论 #9825942 未加载
评论 #9825982 未加载
grandalf将近 10 年前
Atom is designed to harness community participation from a community that currently embraces some technology that can easily lead to bloat.<p>So ti&#x27;s a tradeoff. On the margin, many more people are likely to write a halfway decent Atom extension than learn elisp and write one for emacs.
istvan__将近 10 年前
There is a nice study in the subject:<p><a href="https:&#x2F;&#x2F;twitter.com&#x2F;lix&#x2F;status&#x2F;589171043010412544&#x2F;photo&#x2F;1" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;lix&#x2F;status&#x2F;589171043010412544&#x2F;photo&#x2F;1</a>
legulere将近 10 年前
I think lots of the bloat is actually cruft that piles up over the years. Why can&#x27;t we remove it? Because somebody will use the feature and complain about it getting removed.
al2o3cr将近 10 年前
&quot;In fact, in my experience the process of finding such bottlenecks on running systems is itself quite time-consuming - time which cannot be spent actually reducing bloat.&quot;<p>Wow. Talk about a self-refuting argument. If it&#x27;s hard to figure out where to optimize a RUNNING system, how is it supposed to be <i>easier</i> to do so when the system is being created?<p>Arguing &quot;bloat&quot; is &quot;bad for performance&quot;? No problem - graphs or GTFO. Otherwise all you&#x27;re left with is the emotional &quot;OMG NUMBERS ARE HIGHER NAOW THAN BEFORE&quot; drivel.
chrismcb将近 10 年前
A blog that has a full screen image, with no text and adds no value to the story asks why there is software bloat?
dpweb将近 10 年前
Over time, all software tends to get bigger and not necessarily better.<p>Windows went from 7MB required (95) to 6GB required (Vista), 1000x bigger, in just 10 years. It&#x27;s true in file formats as well and verbosity is one of the reasons XML was&#x2F;is so hated.<p>There is an irresitable urge to make things bigger bigger bigger, and huge cpu, mem, and disk resources are essentially free.
outworlder将近 10 年前
We can&#x27;t all agree on the definition of &#x27;software bloat&#x27;.<p>Is using more memory resources for caching &quot;bloat&quot;? It irks me when someone pulls a task manager screenshot, orders by memory usage, and picks one application out of it. &quot;See, program X is using XXXMBs of memory! Bloated!&quot; Well, perhaps it is, perhaps it isn&#x27;t. You are still using it, so it is probably doing its job well. Perhaps that &quot;wasted&quot; memory is being used for caching.<p>This is specially true when people compare OS memory consumption. If an OS is not using all your memory, you are wasting it. It should be using it for <i>something</i>, be it caching, eager loading, whatever. As long as you can quickly reclaim it when needed.<p>Same goes for CPU usage. &quot;It&#x27;s using 100% of my CPU!&quot;. Well, did you tell it do anything? If so, isn&#x27;t that what you want? You want the task to complete quickly so it can go back to idle. Now, if it is supposed to be idling, and using a lot of CPU, that&#x27;s a problem (Slack, I&#x27;m looking at you).<p>From the article:<p>&gt; The same CD that hasn’t been able to fit Ubuntu since 2011 still fits approximately 150,000 pages of unformatted English text without any compression.<p>Well, yeah. But one-dimensional metrics are useless. What about the number of packages? Did it increase? Is Ubuntu now packing high-resolution artwork, to be used with our 5k displays? What else has changed? I&#x27;m certain that the CD is not all source code, so the English text comparison is meaningless.<p>&gt;The burden of selecting software that is not bloated is entirely on the user. The default is bloated, if you want the unbloated version, you’ll have to work (search) for it yourself. And in many cases (e.g. anything that needs a web browser) such a search may not even be fruitful.<p>Sometimes, the opposite is true. Take Vim and Atom, which are mentioned in the article. You can <i>add</i> packages to them, so increasing the perceived &quot;bloat&quot; is entirely up to the user. Unless the user takes the easy way and installs a &quot;vim-full&quot; package. Which, if we have memory and cpu to spare, isn&#x27;t usually a problem. We are talking about VIM in the age of laptops with 16GB of RAM.<p>&gt; There are very little tools available to to help the user select unbloated software. Very few packages make any claims about their storage and runtime charactaristics at all<p>Now, here I agree. It is something difficult to measure.<p>&gt; Over time, the battle against bloat is always lost. Even Ubuntu, which has traditionally presented itself (besides other things) as a method to extract a few extra life-years out of old hardware, is mentioned in the list above. In other words: it’s only less bloated than the alternatives.<p>Yes. And yet it is inching closer and closer of being &quot;ready for the desktop&quot;. It has to cater to a lot of people, which means bundling lots of features. Still less &quot;bloated&quot; than other commercial operating systems. Considering the number of available packages, Ubuntu offers a very good deal.<p>&gt; or even simply the introduction of flash screens.<p>Oh, now we are in agreement. See, if you are waiting for a splash screen, you can&#x27;t do your job. The software is not doing its job. Therefore, the amount of time being spent at the splash screen should be reduced, so that we can eliminate the need for one. In the bargain, eliminating the code and artwork for the splash screen, thus reducing bloat.<p>Still, in some cases, this is unavoidable. Take games. They will often present splash screens when loading a level (if they have such a concept). Some of them will even go as far as present animated 3D geometry, using the GPU (and CPU). Which are mostly idle anyway, waiting for I&#x2F;O. Sometimes, one can devise a better way of packing the files, to reduce loading times. Even more so when the actual serialization mechanism is inefficient(hi, Kerbal Space Program). But what they are usually trading off is a lag-free game play, in exchange of a loading screen (think of it as warming a huge cache). Is that bloat? The assets are huge, because we want them to be.<p>Are you developing for an embedded platform? No, mobile doesn&#x27;t count, they are effectively shrinked PCs from a few years ago (with non-mechanical storage even). If so, then worry about every CPU cycle you are using, as well as storage. Build your own linux distribution if you have to, compile with the exact flags for your platform so you can generate optimal code.<p>Running in a battery powered device (no matter the size)? Then try not to use too much CPU, and certainly not constantly. Batch stuff, run in bursts, get it over quickly. Disable any non-essential tasks.<p>Is a background task? Try not to disturb the rest of the system, please.<p>A foreground, interactive desktop application? You are likely the focus of the user&#x27;s attention, do whatever it takes to minimize the latency! The only reason not to gobble all RAM is that the user may be running other stuff too. And the reason for minimizing CPU usage is heat and power. Other than that, I bet a user will rather have an application that is making use of all resources available, if it means getting work done quickly. And feeling... &quot;snappy&quot;!<p>If the user is not being impacted, then I don&#x27;t see the problem. My issue with Slack, for instance, is that it uses a lot of system resources <i>and</i> doesn&#x27;t feel fast in return.