8 ms·
Bloatware and the 80/20 Myth (2001)
- sliverstorm 13y agoJoel writes this like bloat doesn't exist, and discusses how programs are large because of all the features they have. Two contrasting examples spring to mind: - Outlook 2010 in Exchange mode usually occupies about 50MB of memory, at least for me. Think of all the functionality Outlook 2010 has in those 50MB. - An old notebook I used a few years ago had a disk-parking feature, in case of drops. The service application that parks the disk (if my memory serves) would occupy about 200MB of memory. Think of all the functionality this program had. It could stop the disk. It could start it. Fantastic. That's bloatware. Especially as I had 2GB of RAM at the time. P.S. Yes, many over-large programs can get swapped. No, swap is not a magic solution, and happily tanks performance. In summary, I do agree with many of the points Joel makes, but I always hope that programmers at least think about memory implications, if only for a little bit. Some co-workers and I were discussing a small utility we were developing. A very simple, fast structure was suggested. We then took a moment to consider memory, and realized in our expected worst-case workload, the process would require upwards of 64GB of RAM. This is why you need to spend at least a moment thinking about memory! It is cheap, but not infinite, and oh-so-easy to chew through gobs.
- TwoBit 13y agoHow could that app possibly use 200MB of memory? Was that resident memory or simply mapped memory?
- sliverstorm 13y agoHow could that app possibly use 200MB of memory? I don't really know, but all the software for that notebook was impressively bad. The ones the user would interact with were literally the slowest programs I've ever used, and we're just talking about opening menus or clicking buttons under idle load. I still haven't figured out how opening a menu on a 2008 laptop can require 5-10 seconds of compute. So I would conclude, "most likely a complete and utter disregard for limited resources". Which is why I am repelled by memory is practically free, don't even think about it arguments. To my figuring, give it a little attention. Not gobs, but don't pretend memory is a solved problem.
- Pinckney 13y agoSome sort of disk buffer, maybe?
- quink 13y agoThe Bluetooth driver for quite a few Lenovo Thinkpads is a 210 MiB download. It includes btrez.dll (two seemingly near identical copies for x64 and one for x86, each about 25 MB) and all of the .NET 4.0 runtime, among other things.
- agumonkey 13y agoI'd give Lenovo a little slack, because they're (or were a few years ago) probably the only brand to provide an automated driver update program that works pretty fine. It's not light nor fast but still. And since they have to support a ton of different environments I could accept static inclusion of dlls. That said I often avoided installing the bluetooth software stack (almost never used bt) because it was so fat. :)
- quink 13y agoYou mean the same driver update that broke my VPN with no fix no matter how long I looked without a reinstall? 'pretty fine' is always going to be a subjective thing.
- colanderman 13y agoMy wife's HP laptop had some software that monitored the "audio mute" key so it could turn the associated LED on and off. That herculean task required a constant 50% of the CPU.
- sliverstorm 13y agoTo make matters more amusing, this laptop was in all probability dual core, which means the software was pegging one of the cores.
- colanderman 13y agoI think you are right.
- oakwhiz 13y agoA whole CPU just for a single GPIO task? Now that's bloat.
- sliverstorm 13y agoYeah but just think about how quickly they were able to release the software, by using 50% of the CPU. Isn't that what really matters? :)
- gcb1 13y agoHis article is bloatware. He tries to justify hisbloatware work from the past, and only uses false arguments, like dismissing linus argument about having to load a huge program not being an issue, when excel and outlook are still the only applications i use with a damn loading screen... His article uses space and provide no honest statement, hence bloatware.
- nivla 13y ago>Outlook 2010 in Exchange mode usually occupies about 50MB of memory, at least for me. Think of all the functionality Outlook 2010 has in those 50MB. Ohh I wish my beloved thunderbird only took that much memory. I remember it occupied somewhere between 150-250MB on my netbook. It was impossible to keep it running in the background, especially when you only have 1GB of total RAM. My routine was to open, check for mail, close it.. rinse repeat.
- sliverstorm 13y agoIt's really a great example of how well they are actually doing with Office, IMO. I was absolutely floored when I saw how little it uses!
- microcolonel 13y agoEspecially funny when the page with the logic to decide whether or not to park your drive head is in swap.... on that hard drive.
- officemonkey 13y ago15 mb? I was using Excel on the Macintosh for laboratory analysis as early as 1987. It could run on two 800K floppies. So, 1.6 mb. It had 80% of the functionality I ever used Excel for.
- 3rd3 13y agoMillibit?
- sanskritabelt 13y agodon't be pedantic.
- legion050 13y agoI agree, shallow and pedantic.
- pilsetnieks 13y agoThe version of Excel mentioned in the article was Excel 5.0 for Windows, that came out in 1993. No one is denying that previous versions were been smaller.
- officemonkey 13y agoThe old submission title seemed to indicate that Excel came out in 1993 and was 15 mb. Someone has since corrected the title.
- jacques_chester 13y agoThe 20% thing is interesting, but Microsoft themselves later empirically established through application usage metrics that there is an ordering of features. That is, some features (eg, italics) are used more than others (eg, macros). Such an ordering can be used to established, with considerable confidence, the "20% that 80% of customers use". Which is how we got the Ribbon. It was intended to place the most commonly used features front and centre.
- rcgs 13y ago> Which is how we got the Ribbon. It was intended to place the most commonly used features front and centre. So how come we ended up with something that placed all the features front and centre?
- jacques_chester 13y agoI'm not sure I follow you.
- 542458 13y agorcgs is referring to the way that Microsoft has, over time, added more and more buttons into the ribbon, so that at present most Microsoft applications have almost all their functionality accessible through the ribbon. rcgs would argue that this defeats the point of the ribbon in the first place (I'm inclined to agree).
- jacques_chester 13y agoThanks.
- chaz 13y agoThe ribbon is not designed to be an edited toolbar with a single row of just 10-20 functions. It's a wholesale replacement for application menus. Every new function and feature should have a placement on the ribbon, or else how would you otherwise activate it? Organization of the ribbon is important, though, and it may take some time to learn where stuff is, or how it's organized. The first time I used it with Excel, I couldn't find the Pivot Table button. I thought it might be under [Data], but you're [Insert]ing a pivot table instead.
- jakobe 13y agoI strongly disagree with Joel here. It's true that storage is much cheaper today, but every piece of software I use is downloaded from the internet. Not everyone has 10MBit connections. If you make software, and especially updates, unnecessarily large, you will cut off a percentage of your users. I'm not saying you should axe features to make the app smaller. But please, if you distribute software, spend a few hours and try to make the download size as small as possible.
- ben336 13y agoNote that this was written in 2001 when the statement "every piece of software I use is downloaded from the internet" would have been ridiculous at the time. Not saying your point isn't valid, but just pointing out that its not something that should have been addressed by the article.
- jlgreco 13y ago> 2001 when the statement "every piece of software I use is downloaded from the internet" would have been ridiculous at the time. Not for the sort of people that he is arguing against in this post, such as Linus Åkerlund who is arguing for using computers "the UNIX way" with GNU/Linux. Downloading your distro from the internet was very old-hat by 2001.
- Spooky23 13y agoIt was written in 2001... Software was mostly delivered by CD.
- charlesism 13y agoJoel is probably my favourite tech blogger. That said, some perspective on how old this post is: 2001 - 1993 == 8 2013 - 2001 == 12
- dotBen 13y agoAlso note, this article was published in 2001. If disk storage was cheap then, it's an order of magnitude (or more) cheaper now.
- jlgreco 13y agoIt is cheaper, but probably not by as much as you might think since many people are transitioning to SSDs which set us back several years in terms of price and capacity. My case is extremely non-typical, but my current primary computer has 30 GB of storage, which coincidentally is what my primary computer had about one decade ago (of course this is much faster, in a laptop, and I have I have a very large amount networked storage available to me...)
- peterhunt 13y agoThis really nicely sums up why I use Django for every Python web project I do instead of something like Flask. Django's size doesn't negatively impact me in any way and the fact that it has so many features and a huge number of libraries and docs means I'm less likely to need to do a lot of building when requirements change. I think this extends to anything that calls itself a microframework -- being small isn't a meaningful feature unless it actually impacts your app.
- quanticle 13y agoThe more I read Joel Spolsky, the more I realize how wrong he is. He's like the Thomas Friedman of software. He writes lots of things that sound good, but aren't actually true. For example: In fact, there are lots of great reasons for bloatware: For one, if programmers don't have to worry about how large their code is, they can ship it sooner. And that means you get more features, and features make your life better (when you use them) and don't usually hurt (when you don't). Every single part of that statement is false. Your programmers should be worrying about how large their code is. If they're not, and your competitors are, then your competition will release a program that does everything your program does, but better and faster. So what if they're a couple months (or even a few years) behind? First mover advantage is relatively short-lived, anyway. Microsoft Word wasn't the first word processor and Microsoft Excel wasn't the first spreadsheet. Google wasn't the first search engine. Facebook wasn't the first social network. As far as more features being helpful when you use them and harmless when you don't, well, that's inaccurate too. I find it very ironic that he uses Excel as his poster child for this, since the addition of features has absolutely hurt Excel's usability. These days, Excel is a tool that's comparable to vim or emacs. It's very powerful, but it has a ferocious learning curve to match. Moreover, he overlooks the fact that more features mean more bugs. I think the success of various web-based, minimalist tools has shown that users are quite willing to accept fewer features, if the features that are present work flawlessly. And even the points that were true as of publication (e.g. ever shrinking prices for CPU cycles and RAM) are no longer true today. If you're writing code today, CPU cycles are definitely not free. You get roughly 4 billion cycles per core per second on a desktop, and somewhere between 1 and 2 billion if you're on a mobile device. Memory is slightly less constrained, but it's rare for desktops to ship with more than 8 GB of RAM, and it's unheard for mobile devices to have more than 1 or 2. So no, I don't think bloatware is a "mental health problem". I think it's a real issue, and one that's only going to get worse as we run into the limits of Moore's Law.
- tonylemesmer 13y agomore processors are running on batteries too now and the improvements on those aren't keeping up at Moore's law pace.
- jmduke 13y ago
- whyenot 13y agoWhen I was using Word on the Mac in 1992 (version 5? 6?), it even had it's own built in screen saver... I guess in case you didn't want to look at flying toasters or whatever.
- yuhong 13y agoAh, Word 5.1 for Mac.
- tonylemesmer 13y agoWord processors should load instantaneously. Photoshop should load instantaneously. Windows should load. Instantaneously.
- tn13 13y agoBefore you comment please note that this article was written in 2001 almost 12 years back.
- jlgreco 13y ago"Ohhh. It eats up all your memory. I see. Actually, well, no, it doesn't. Ever since Windows 1.0, in 1987, the operating system only loads pages as they are used. If you have a 15MB executable and you only use code that spans 2MB worth of pages, you will only ever load 2MB from disk to RAM." This is such a bullshitty argument. The chance that the pages that you need to load to accomplish a simple task (say, adding up 20 numbers) with a program capable of doing many many things (say, excel) will be comparable to the number of pages that you need to load to perform the task in a far more limited program (say, `dc`) is infinitesimal. In practice, it just isn't going to happen. Using small programs to accomplish small tasks is what Linus Åkerlund was arguing in that post (https://web.archive.org/web/20000305231633/http://user.tninet.se/~uxm165t/bloatware.html https://web.archive.org/web/20000305231633/http://user.tnine...). Now, there are very obvious reasons why "the UNIX way" is not for everybody, and why monolithic featureful programs have their place, but Joel is delusional if he thinks that Linus is incorrect in practice on the memory usage point. I bet I can start and close 'dc' several thousand times in the time it takes Excel to start once. Not a fair comparison by any measure, but nevertheless one that Joel invites by attacking Linus' article.
- koudi 13y agoYeah, storage is cheap, let's go wild and add some features that might be useful for a handful of people. Reminds of time when excel had simple flight simulator in it...
- gbog 13y agoI think both the article and the comments miss the point. If you take a Linux distro, it is actually bloated, in the sense that it has a lot of useless stuff that take space. However, it's built on a solid, stable architecture which allow bloat management. Same with vim: I have seen vim setups that are complete bloat, with hundreds of plugins, and even plugins managing plugins. But this is managed, manageable, because based on a well defined base. There is a comment about Django: yes, bloated and managed, because it is based on python, which is the same, a minimal and solid set of orthogonal concepts upon which bloat is easily managed.
- eriksank 13y ago...and then the journalist tries to find the "word count" feature which they need because most journalists have precise word count requirements, and it's not there, because it's in the "80% that nobody uses... The solution is not to ship a half-baked "word count" feature by default, that some journalists will like and others won't, but to make sure that the application is thoroughly pluggable. From there, people can set up entire plugin repositories in which journalists can find dozens of plugins that all specifically apply to journalist situations. Why not have our cake and eat it too? We'll have a very small core application, while everybody can click and install whatever extensions that apply to their specific situation. Furthermore, why would non-journalist users have to deal with journalist-specific plugins installed by default? It would just confuse the 80%. Bloatware is NOT the solution to the "80/20" problem. This is and example of the real solution: http://plugins.jquery.com http://plugins.jquery.com
- trentmb 13y ago> Why not have our cake and eat it too? We'll have a very small core application, while everybody can click and install whatever extensions that apply to their specific situation. That's an operating system.
- drill_sarge 13y agoThe only real bloat I know are vendor specific programs that come for free with certain hardware. I don't know who writes such shit sotware. From the HP Windows driver suite (not the driver itself but all those useless programs which come along with it; funny enough hplip is the best thing on linux), horrible tools which come with motherboards ("omg make the ui look like it is a spaceship cockpit"), shitty tools from laptop manufacturers for wlan, bluetooth and so on. who the heck writes these!? Commercial programs are mostly not bloated and don't scatter around the whole system.
- softworks 13y agoSo it's like excel is getting smaller? Come in please. Sounds like some of that "new math" to me....