October 17, 2007
In the software industry, the release of newer, better versions is part of the natural order. It's a relentless march towards perfection that started with the first personal computers, and continues today. We expect software to get larger and more sophisticated over time, to track with the hardware improvements that Moore's law has provided us for so many years. Rapid evolution is a good thing, and it's one reason the computer industry is so exciting to work in. If you don't like the way things are today, just wait five years; everything will be different.
Letts' Law: All programs evolve until they can send email.
Zawinski's Law: Every program attempts to expand until it can read mail.
Furrygoat's Law: Every program attempts to expand until it can read RSS feeds.
I love the prospect of upgrading my favorite software. Done right, it's like watching a caterpillar shed its skin and become a beautiful butterfly. Or at least a decent-looking moth.
But for some software packages, something goes terribly, horribly wrong during the process of natural upgrade evolution. Instead of becoming better applications over time, they become worse. They end up more bloated, more slow, more complex, more painful to use.
I know this first hand because I'm a long-time Paint Shop Pro user. As a programmer who doesn't need the kitchen sink of graphics editor features, I found it an ideal match for my modest programmer needs. I didn't upgrade to every new version, but when I did, for every new feature I could actually use and benefit from, there were dozens of other features included that I didn't care about. These new features cluttered up the user interface and often interfered with what I wanted to do. My computers kept getting faster, and yet PSP kept taking longer and longer to start up with each new version.
If this spoilage goes on long enough, eventually you begin to loathe and fear the upgrade process. And that strikes me as profoundly sad, because it rips the heart out of the essential enjoyment of software engineering. We write software. If we inevitably end up making software worse, then why are we bothering? What are we doing wrong?
I'm not against progress by any means. But it sure seems to me that certain software packages have truly lost their way. In their never-ending quest to add feature bullets, they've somehow forgotten their users and their core values. In trying to be everything to everyone, they progressively destroy that tiny core of uniqueness that they started with. I'm singling out Paint Shop Pro here, but this same software spoilage principle applies to many other applications. PC World compiled an annotated list of 13 software applications they liked better before they were "improved":
- Windows Live Messenger
- Windows Media Player
- Paint Shop Pro
- Adobe Acrobat Reader
They helpfully provide links to oldversion.com, oldapps.com, and old-versions.net, where you can go back in time and obtain those classic, unspoiled versions.
My favorite version is Winamp 2.95. That's before they started bulking up the client and adding completely unnecessary things. I just want something that plays my MP3s. I don't need it to burn CDs for me or download new music or cook my breakfast or massage my feet.
There are also some emerging lightweight alternatives to choose from in each category. Instead of Adobe's 20 MB Acrobat Reader
, you could opt for the 2 MB Foxit PDF Reader
. Instead of suffering through another 300+ MB Paint Shop Pro upgrade, chock full of features I'll never use, I could opt for the open source Paint.NET
It's depressing to me that there are very few apps I can stick with for more than five years before they become an untenable, unbearable mess. I can think of so many that I've liked and since discarded: Nero Burning ROM, WinAmp, ACDSee, Microsoft Money, WinZip, and many others.
I suppose features sell software. For many companies, putting users on the version upgrade treadmill is their business model; it's how they generate revenue. But if this fiscally rewarding feature creep goes on long enough, spoilage inevitably sets in. So I wonder: Is all software destined to spoil over time? Is it possible for software packages with long histories to avoid the trap of becoming bloated and irrelevant? What are your favorite bits of software that haven't spoiled over the years-- and what is their secret?
Posted by Jeff Atwood
ARE NEW VERSIONS WORTH IT?
Never underestimate the power of a "CUSTOM" install with liberal use of unchecking. Most new software can be trimmed and tweaked to their original greatness. (e.g. Nero, Winamp, ACDSee).
Here's another disturbing trend: Every new version of most major third party software wants to install yahoo/google's toolbar/desktop by default. Is Google/Yahoo just going around to every 3rd party software developer on the planet and paying them money to include their take-over-your-system bundleware? This isn't software spoilage, this is software DISEASE!
To all you winamp 2.9x users out there: Hark! (I could be wrong but) I believe I can botnet your computer just by getting you to play an exploitative music file.
Instant messaging clients are the worst for this. I really liked the MSN Messenger 6.1 client
After MS terrorized me into switching to "Live" 8.1 from 7.5 I removed the MSN Messenger completely. Wait, you can't remove it completely because there's another incarnation of the messenger in the program directory - old good 4.7! It's just 2 MB in 11 files and it has voice conersation too! So I use it when I need to talk. For all the rest IM'ing there's Miranda. BTW Miranda is a good example of software extended with plug-ins - it has a quite small core and tons of plugins.
Another good exmple of not bloated software is IrfanView. I use it for many years and it's still neat and slim even in the last version 4.10. Most of the extensions are made as plug-ins. (And yes, it can send email too, but you need Email.dll to do it.)
7-zip - fast small and open source.
It's still very young. We'll take a look at it in five years. Meanwile it's exactly a "do one thing and do it well" program. And it works perfecty with TotalCommander.
Yes, yes, yes. Wonderful article! I'll never stop saying this: the future of software is specialized apps. I'm a professional editor/writer, and I can tell you that the best commercial software for word-churners was WordStar. WORD-processing (as opposed to DOCUMENT-processing) software has gone steadily downhill ever since. With the very notable exception of WordPerfect for DOS; though even WPDos lost some of WordStar's word-twiddling power.
I can envision a new WORD-processing program finding a huge audience. Not everyone writes for living, but countless people write as part of their living - and they'd be immensely attracted to a compact tool that did it efficiently. Without crashing 5-6 times a day (MS Word).
Microsoft has worked hard to eliminate the learning curve for office workers. Professional writers WANT the learning curve. It's the price of control - as any Vim user knows - and control is eminently worth it. Give me a word processing rig that can do what WordStar, WordPerfect, and Vim could/can, plus OneNote-style content handling and search, and I'll pay $100 for it in a heartbeat - and I'll spread the word to thousands of writers in the appropriate forums. Big software just plain sucks, with few exceptions: Dreamweaver/Expression, Photoshop, Indesign. But those are highly focused, professional tools, created by people who're aware that professionals won't settle for shoddy performance.
I've gotten to a point where the upgrade is evaluated like a new product plus the cost of learning where the upgrade put the old feature. It was skip a version, but now it could be skip 4 versions or never upgrade. Good enough is better than a new learning curve of wading through useless crap.
Loved PSP 5 for years. No need to upgrade. Paint.NET replaced it because the setup wanted my license number every time I installed.
Tried to play an mp3 the other day on a new computer and WiMP wanted to go through the a 5-10 minute questionnaire setup. I just want to play the song I double clicked. Little feature bloat there.
We still use Installshield 7 and 10.5 at work, because upgrades cost money. There's no need. The new version does do anything worth the price of replacement.
How has nobody mentioned Trillian?! Trillin is quite possibly the most bloated and over-featured resource hog I have ever had the displeasure of working with. It only gets worse with their new Astra version that's planned. WTF? MORE features? . . you have to be kidding me . . .
(please pardon my spelling errors above)
Opera has continued to focus on their core features for about a decade. My Opera UI is exactly the same today as it was when I first started using it (I paid to remove the ads back then).
While they have added a lot of bloatware type features, I don't see them, they don't clutter my view, they don't SLOW down the app, and I can just ignore them. I know there are thousands of users who use all that crap though. So they seem to have captured the "best of both worlds" goal.
Other apps I use on a daily basis that have remained simple:
- Pidgin (aka Gaim)
- Picasa (my wife "gets" it, so that's a plus)
I don't use media players because my computer is not a stero system. My iPod replaced my stereo.
All office apps are full of terrible bloat, OpenOffice included.
I've thought about this from time to time, and sometimes I wonder if the developers even realize it's happening. If you know whats going into the software, you can understand why it's taking a second longer to start up or where it's using all that memory, but for the user who just opens up AIM to send his friends a message, it just simply takes longer.
Interestingly enough, I think this is what also seems to be leading to these "Full Rewrites" of programs we've used for years, such as AIM.
Speaking of which, Lite AIM is a client developed by somone over at AOL. It's worth checking out.
That's why I love services that are totally web-based: they can't really be bloated. The only thing that can be bloated is the browser / PC themselves.
Paint Shop Pro 6.0 is 7.25mb
It's the highest version I will use, has everything I'd need to output web apps/icons or forms.
As the developer of a program that gets updated every 2 years for the income spike, I dread hearing "what new features are you adding to the new version?". This has been going on since '95 so I've managed not to kill the golden goose...yet. What the program really needs is a rewrite but that doesn't look good in the bullet points or the bottom line.
The other source of new features are the customers themselves. A day doesn't go by without hearing one of the following lines "This program would be perfect if you only added..." or "The ??? diagram is the industry standard" or "You really need to import/export the ??? data format".
.Net doesn't really qualify (yet) as spoiled, but I could certainly nominate Visual Studio to that category.
Michael G.R You want a lean image viewer?
Try irfanview. Great little program. Views images quite reliably, and provides you with options to do basic manipulations, batch file processing (convert to different format, resize, etc), and various other things. But VERY small and quite portable. Just don't let it take over your video preferances.
Anybody has some good alternatives to ACDsee?
I'm looking for a fast modern image viewer. Open source or freeware even better, but will take a look at commercial software too.
I agree with some comments above that electronics are suffering from this as well. Every phone seems to want to be a camera, a media player, a phone, and an advertising platform. What it results in are messy UIs that are slow and cameras with too many things to break on them. I'm reminded of your microwave post a while ago.
Otherwise I tend to lean to systems that allow you to take out the bloat, like Linux or Firefox. A nice thing about package or extension based systems is that you can pull out the bloat if you want to. Maybe I don't want a fancy graphical configurator for something, so I can just remove it. I think this is one of the largest strengths of Linux as a desktop OS now.
This happens with businesses too. Look at mcdonalds. Started with burger (with/without cheese) fries soda. All drive thru. But they had to sell more so they increased the menu options. Then seating. Then breakfast.
And now others are going back to the basics and undercutting them.
The rule is "shirtsleeves to shirtsleeves in 3 generations" for a family run owned business.
It's kinda like buying a house...
Initially you have this nice, clean EMPTY house so you go out and buy furniture and decorations to suite your taste and now you have this relatively sparsely furnished house that is easy to clean and maintain.
Years later most people wind up with a house that is chock full of old furniture, nick nacks, books, magazines, pantries loaded with old cans of who knows what or when it was purchased...
It's in our nature to add stuff and try to hang on to stuff. That's what we do and since software is no more than a reflection of the human condition (now there's a topic we could discuss for hours on end) it winds up like everything else that we touch. It's not about the features, the frills or even the task... It's all about the fact that most of us are packrats and we try to pack as much into whatever it is as we can and then hang onto it even when it's clearly to our advantage to get rid of it.
Trust me on this, I've been a developer for over 20 years and I've seen this pattern over and over and over again.
How many times have you had a user that just had to have a feature that they hardly ever use and could do it almost as efficiently manually or perhaps by reworking their work plan eliminate it altogether? More times than you care to count probably.
It's kinda like MS Word, it's got everything including the kitchen sink and they've added some really maddening stuff. Like the way the changed the default behavior of style sheets to update the normal style with changes that you make automatically so if you don't turn it off your document suddenly disintergrates right before your eyes when you change say the ruler in a descendant style and until you do turn it off the more you try to correct it the worse it gets! Who came up with that feature and why? Because some user somewhere thought it would be a good idea? It drives me, and everyone that I've ever talked to about it, absolutely mad! Changing word processors isn't the solution since Word has just about killed all of it's competition.
My advice is, keep it sparse, if you don't need it or use it once in a blue moon then don't add it.
Anything with the word "Logitech" in its title. Guaranteed to also be designed for shit, as well as bloated.
Snagit. Holy fuck, snagit developers. Put down the compiler and step away from the computer. I'm all about Cropper for capping from the screen nowadays.
mplayer. Omnivorous. Plays video on anything with SVGA, 500mhz Pentium 3 and 256 mb of RAM. Nice config files. Nice CLI options. Encodes/decodes video. Can be wrapped in nice GUI for MacOS X, KDE, GNOME, Windows etc. Opensource.
BBEdit. Straitforward text editor, search and replace window built for GREP usage, minimalistic syntax hilite (I do not like angry fruit salad of TextMate and Eclipse). Universal Binary (which is, in fact, two binaries folled in single package for PPC and x86) is just 32 mb. Exists since cromagnon people riding mamoths with their old Macs.
(Total|Windows) Commander was good before they started stuffing it with graphic thumbnails and all the crap.
"UltraEdit has been able to continuously upgrade itself without
becoming bloated or unusable. They seem to have got it right. I
can't imagine being a developer without it."
You're not serious, are you? It has a built-in IE rendering feature now. It has a built-in SSH/Telnet client now. What's really the big deal about having a browser or a SSH client open? Do it all without ever leaving your editor! It takes longer to load with each new release. No thanks. I have been a long-time fan of UE, but it's becoming the next emacs in a big hurry. I'm pretty sure Ian Mead was never a Unix type -- the "do one thing and do it well" philosophy is getting further and further removed from UE.
Then again, there's always exceptions to every rule... Emacs -- it's a great operating system, all it needs is a decent text editor.
"OSS software certainly seems much more resistant to spoilage based on what I've seen." -Jeff
I think one part of this may be because many of the popular OSS are developed by a smaller set of developers in their spare time. As such, they do not have a marketing and design team requiring them to implement 8 new features in record time to hit a release date, instead of implementing 2 new features and optimizing 2 existing ones and releasing whenever they feel like. They just don't have enough *funding* to spoil the software ;)
Extend the bloated concept further:
Have you ever looked at source code that has been released to the market for more than a decade?
I have. And it's not pretty. New code is fresh, very easy to understand, straight-forward and obvious, etc. Old code has a lot of twisty/tricky hacks, handling of 999 corner cases, and begins to look like spaghetti-like.
"The other source of new features are the customers themselves. A day doesn't go by without hearing one of the following lines "This program would be perfect if you only added..." or "The ??? diagram is the industry standard" or "You really need to import/export the ??? data format"." -MRW
Very true. I get tons of e-mails for Paint.NET asking for all sorts of features, changes, and file format support. Sorry, no, I will not be adding PDF or SVG support... sorry, not planning to add some kind of wizard for adding picture frame borders ... sorry, not planning to add a gallery browser (Microsoft already spent millions to write this thing called "Windows Explorer", why not just use that?), sorry, not planning to add features into Paint.NET that Vista already has (but that XP doesn't), etc. etc.
Right now I'm much more interested when I get an e-mail from someone asking "Why can't Paint.NET do X?" when X is a feature that's already there. E-mails like that are votes toward simplifying the discoverability of that feature.
Jeff, keep posting! :)
Lets see drivers.
HP Photosmart B9100 series inkjet. Install options:
1) Full - 600 MB
2) Express (everything your device needs to work) - 200 MB
ATI display drivers, require .NET framework to be installed to set a few extended display options!
This is not a new phenomenon at all. The first article I read about this was in PC Week or Byte back in the mid 80's. I think it was Dvorak, butit could have been someone else. This was the first time I'd ever heard the term "slugs factor," and it definitely resonated with me -- even at that time, when a 10 MHz 80286 was smoking hot! Today's PCs are about 50 times faster, with multiple processors, and more RAM than hard drives had back then, and we're still talking about this same thing.
New law for consideration -- Software guys will ALWAYS be able to waste what the hardware guys provide.
To echo an earlier post - HP is THE WORST. Install a printer driver, and look at the process table some time. It's ridiculous.
This is so true, it's sooo annoying when programs have totally useless features. Acdsee ruined it when they started supporting videos, same way did go Winamp.
Why doesn't programs do what they are designed to do, and only that. Every program doesn't have to be a huge multimedia application.
The Google homepage hasn't spoiled, if you can consider that an application. If you can keep your interface simple then you can make the application as complicated as you like.
It has been commented on before, but I am a bit surprised you didn't mention Media Player Classic. It's interesting for two reasons. First off, the program is stable, and development is frozen. It hasn't been updated in the past year and a half, but noone cares because it performs its basic role of playing directshow filters correctly.
Second, and more importantly, it seems like MPC was designed with Software Spoiling in mind. It's a reaction to the spoiling of Windows Media Player.
"This multimedia DirectShow player looks like the old Windows Media Player 6.4, but has a lot more features like switching audio streams in an MP4 file."
Some non-bloated apps in my opinion:
Ubuntu, Office 2007, .Net, Beyond Compare, TortoiseSvn
All of those get better with each release.
Not really a program, but the upgrade from Windows XP to Windows Vista is horrible. Windows Vista sucks.
Hardware drivers become more and more bloated too, every external piece of hardware i own comes with an installation cd of useless software.
Scanner - To install drivers you also have to install custom scanning software, editing
Printer - Same as scanner
Mp3 player - A few separate programs to sync the thing, format it, create playlists and the such.
Creative did the right thing with live, offering a "just install the drivers" option on their download, i wish they would do it with their mp3 players too.
Notepad doesn't suffer from bloat :-)
If you are tired of winamp bloat, just buy a new fridge.
Emacs -- it's a great operating system, all it needs is a decent text editor.
Snagit. Holy fuck, snagit developers. Put down the compiler and step away from the computer.
It's funny because it's ALL true.
With closed, "secret sauce" software, the producers of the application do not have goals in line with the goals of the customers. One wants to fix a problem, one wants to sell stuff. With open software, both have the same goal, fix the problem.
An interesting observation. It does seem that the commercialization of software presents some inherent problems, and one of those problems is definitely manifested in the bloat/spoilage over time.
the future of software is specialized apps.
I think there's some truth here as well. If most apps become web apps, then distribution is no longer a problem, and this opens the door to the "long tail" of highly specialized applications.. maybe the "do everything" suite is no longer necessary?
Software guys will ALWAYS be able to waste what the hardware guys provide.
Yes, but there are some bits of software that manage to waste that hardware power in USEFUL ways over their lifetime. Most don't. How do you walk this line? It sounds like a robust plugin ecosystem is the right way for most apps.
I can't believe no one mentioned the poster child for software bloat: Quicken. This one useful program is now so bloated you can't do anything without 36 screen refreshes. And I'm caught in the endless cycle of buying a new version hoping they FIXED the damn thig, only to sink further into the abyss. I think it peaked 10 years ago.
If you're looking for a decent text editor, Crimson Editor is the only one you'll ever need.
Very very interesting point, Jeff.
These days I am having some problems with a spanish software used to design photographic albums (http://www.fotoprix.com/album_fotos_digital/). You can make an album with your digital photos, and you can print it later in the shop.
With the version 1.XX, the size of an album of about 40 pages was less than 400MB, and could be copied into a CD-ROM, then sent to the shop. Now, with the version 2.0, the size of a project of 14 pages is 800MB! I don't want to imagine a 40-page album!
I wonder how they decided to release this 2.0 version. For me, as software developer, it's a shoddy work, and should have never be released.
What do you do then, when your company writes only one piece of software, and that software is as good as perfect? I think many companies find it easier to just add features and features because they think it is to risky to start working on an entirely new project.
Also, I would like to nominate vim, it has been around for a long time (at least when you also count vi), and it still is faster than I am. One of the advantages it has that protects it from spoil is that there is no GUI. There are noe big menus getting crowded, just more keyboard-commands to learn, and you only bother learing those that are necessary for _you_.
I like Total Commander 5.5*, with files highliting and useful pluggings, such as internal viewers, task manager, services and startup guard.
Currently, I`m using version 7.0, but with configuration file from version 5.5, so I have pretty UI and functionallity.
It's natural selection...
And hey, us developers need to do *something* to qwell the users ;)
Post a free app on your site, and you'll have emails flying in saying "why didn't you add this?" "why does it do that?"
hmm... the rest of my comment got lost.. :/
There are no big menus getting crowded, just more keyboard-commands to learn, and you only bother learning those that are necessary for _you_.
Good point; the complexity of command line apps is hidden; you can learn the few commands you need and the others don't even exist as far as you are concerned. This is also the "complexity" of Google and search driven interfaces.
In theory Firefox's extension system was supposed to keep out the bloat.
Also a good point. A robust extension ecosystem is another way to offer thousands of features, but only to the users that NEED those features. One strategy for evolving an app is to keep incorporating only the most popular extensions into the core of the app itself, and drop other less use features out, in a sort of feature darwinism. That's assuming you can gather metrics that let you know what people are actually using.
In chapter 2 they advise "underdoing your competition" and "building less" because it will differentiate you from your competitors.
But that's an awfully convenient position for them to take, as web apps have so many constraints. Consider Google docs-- many, many less features than the Office suite, but this can also be considered a strength, depending on what features you want and need.
So yes, web apps are less bloated, but I think that's a side effect rather than a goal. Programmers and marketers love features. I hope current web apps can retain the same kind of idyllic simplicity five years from now.
Yes, my favorites are Nero 6 and ACDSee 6. I bought them boxed so I can use them for as long as I want.
jkl: "add the .net framework to the list of bloated software"
You have no basic understanding of software. It's a framework, you decide as a programmer what you want to use. But hey, be my guest and don't use LINQ, it's just bloat right?
If you sale software and have competitors, you get into a feature bullet race.
OK, then is all commercial software doomed to crush itself under feature creep eventually?
Is the answer, then, that only open-source software-- which is not "sold" in the traditional sense-- can avoid falling into the same trap?
OSS software certainly seems much more resistant to spoilage based on what I've seen.
the same applies to programming frameworks as well,
add the .net framework to the list of bloated software
j2ee was bloat first!
The original MPC project is basically dead, look into MPC update (guliverkli2) and home cinema (mpc-hc).
Billy looks like the original version of foobar 2k. =p
7-zip is too minimalist to the point of being unusable, unless you use another file manager (like total commander or winrar) to view archives. The shell extension's great though.
I think it's unfair to scorn winamp, since you can uncheck everything on install and get a player that's even more basic than the 2.x versions but less buggy, or customize it to your tastes. They don't even bundle the stupid free mp3 anymore! I'm sad that they discontinued the lite version, but there's still a lite preset that mimics the old 2.9. (And it's crazy fast.) Personally I can't live without ratings anymore, or I'd have no idea what I like. =p
But there are plenty of other good music players out there, as well as video players, shells, photo viewers, text editors, chat clients, and so on, in various stages of polish. The trouble with tiny is that they're often missing that one feature you really must have, but sometimes it's still worth settling. That's why you pick a weekend to try everything out there. =D
How about TeX/LaTeX? Sure, a basic install of 80 MB (the MikTeX distribution) is hardly lean, but usability hasn't suffered. The secret is that TeX itself has been feature-frozen years ago, but that innovations are made with software building on TeX (e.g., LaTeX, Omega). Knuth has stated that he values a stable system with a stable feature set over introducing new features. I guess this is only possible because TeX is in the public domain.
I just read that the new version of Nero now features a feed reader. In the next version, it might even support Atom. Good to know that their marketing department was only following a law.
An application that hasn't gone down the bloated path? I'm hard pressed.
Probably Irfanview and possibly KDE, which, despite being chock-full of features, it still feels quite right to me and its speed has actually improved over time.
I think the answer to 'why' is not in the long term evolution, but in the nature of the small steps.
At each stage, decisions have to be made about what to add to the software. That's fine as far as it goes. Any released piece of software leaves behind a few engineers saying "It would be so much better for people if I just had time to implement X. Oh, well, there's always the next version." I don't think that attitude is a bad thing.
The real problem is the decision about what to *remove* from the next version. The answer is always, and can only ever be, "nothing." If the software is at all widely used, if there is any kind of ecosystem of supporting applications, then anything you remove is going to break a lot of things for a lot of people. Some will be inconvenienced, some will lose money, and they will all complain. This costs a lot of money and good will.
I think the only solution is to generate new slim products on a regular basis. A good example of this is Photoshop and LightRoom. In 10 years, I'm sure that LightRoom will be bloated and impossible to change, just as Photoshop is today.
It has been commented on before, but I am a bit surprised you didn't mention
Media Player Classic.
I find MPC incredibly frustrating because it can't seem to retain settings from one file to the next. Having to navigate down to the directory a file's in, set the zoom factor, and a pile of other things, for *every single file played*, gets old really fast. WMP using the "Classic" skin at least gets that right.
I'm in awe at some of the open-source advocates in here. Some of it is OK,
sure, but most of it is far worse than the commercial alternatives. I'll
trade that buggy, ugly, sloppy, unintuitive, half-completed garbage for slow
bloatware any day.
+ 1. I do usability design for a living, and whenever I want to provide an example of an atrocious UI feature I don't have to look further than OSS apps. I'm sorry, I really like the OSS philosophy, but most times the user interface is dreadful. For most of the apps I use I go for commercial versions (often shareware, but still commercial) principally because the UI doesn't suck.
Anybody has some good alternatives to ACDsee?
XnView is quite nice.
I think ACDSee and NERO are the worst.
Definitely, for Nero. There's a very long thread over on Neowin discussing Nero replacements, luckily there's some pretty good stuff out there that does what pre-bloat-explosion Nero did.
Oh yes, for Acrobat users there's a freeware app somewhere that takes a default Acrobat install and strips it down to what the pre-bloat-explosion version was, around version 4 (but with full functionality). It's amazing seeing it load almost instantly with all the crap stripped out, there's no noticeable loss in functionality but it's a fraction of the size. Sorry, can't remember the name at the moment, something with "Acrobat" and "Light" or "Lite" in the title I think.
I'm kind of surprised you haven't said much about code at GRC.com.
This guy wrote Windows programs in Assembler that are 100K.
As a software developer I pay my bills by programming in .Net. That means that if I write a 100k executable that uses 10% of the functions in .Net, and my user does not have .Net installed on their machines, I still have to install all 100% of the 20+ Meg. platform.
I know what you'll say: Most PCs already have .Net installed as part of the OS. Really? Which version? 1.1, 2.0 or the new 3.5 coming soon?
If I develop using the new 3.5 version guess what? I have to install that runtime on the user's machine. All 100% of it even if I only use 10% of its code. How big is it? 33 Meg.
When I program for managers that understand software development and aren't swayed by the shiny lights, I program in PureBasic (www.purebasic.com and http://www.purebasic.fr/english/index.php) which is a compiler(s) for Win/Mac/Linux that compiles into true .Exe's which need NO runtime. Oh and the cost is $99 for life-time upgrades in ALL versions. How's that for an indie programming language?! Read more here: http://en.wikipedia.org/wiki/PureBasic
Old time developers used to seek the maximum performance and the smaller resources footprint.
Hand optimized code, "real" natively compiled executables, assembly code in parts are just some of the technics nobody use today.
Today, most developers don't want to get dirty. Coding using bloated VM, crappy interpreted or pseudocompiled languages and huge libraries don't help to create really minimalistic and fast apps.
I've never liked ACDSee, and don't get why people like it too. IrfanView has been saved from this "spoiling" you described and kept to itself.
Try it if you haven't, I've been using it since 1996.
My approach is to not upgrade - I managed to get a refund on PSP12 (partly because the "license" was objectionable). I'm using PSP9, ACDSee 3 (which doesn't save its settings any more under XP but still works better than FastStone view viewing jpegs). Plus 7-zip and foobar2000 for playing music (it handles large playlists and searches them well). For things that get really desperate I use virtual machines. My slide scanner, for example, cannot install under XP for some reason, but it's fine in a Win95 VM. Since it's a Canon POS driver screw-up anyway that is actually a fine - some of the new Canon stuff won't install in a VM but still requires a c:\canoscan directory to live in and has other flaws too.
Why upgrade if what you're getting is not actually better?
I have used MS Office '97 (since 1997, ha ha). In my opinion the best version. Only the new machine with Vista on it forced me to go sideways to OpenOffice.org, which isn't too bad by the way, but is getting bloated as someone above (below?) mentioned. The new Office prices are insane.
With respect to rselph, who makes a critical point, that part of what contributes to feature bloat is existing users clutching pet features with a death-grip: here's a suggestion that might help to keep this under control. Discipline. Figure out the ideal number of feature points (measured however you like, scored however you like), and once your product reaches that number, any new feature has to crowd an existing feature out of the product. I think it would tend to lead to better features; developers would look for ways to consolidate features down to make room for new ones, and that would lead to conceptual abstractions that make software more powerful.
You hit it right on the head when you targeted Paint Shop Pro - this used to be one of my favorite apps to use.
What about Media Player? I think Microsoft is just as guilty at this as everyone else.
"re: 7-zip; there's one thing I'm missing, and that's shift-clicking to drag the files literally out of the archive so the original file goes *poof* and you're left with only the contents. WinRAR does this, 7-zip does not. Or is this implemented in a newer version?"
The cool things you learn from this blog.
There's a new plugin interface to virtualdub, allowing it to open wmv, mpeg2, and later other formats. Since the author has never been interested in anything other than perfecting avi, this will help with the recent proliferation of formats, and it's healthier than putting it in the core anyway.
guliverkli2 just builds the old MPC with newer versions of libraries, which home cinema adds EVR renderer, better Vista support, x64 support, support for new HD formats, and a lot of internal bug fixes. (See http://tibrium.neuf.fr/) The forkers are completely uninterested in trying to take the project in a direction it was never meant to go, so it's a worthwhile update.
I work on ffdshow from time to time, and open source is not immune at all, heh.
I think XnView could handle much of what it tries to do with a better interface, the last facelift really helped, but some vocal users would rather push in new features without regard to how well they fit. It just requires a bit more "what does paint.net do, what does x do, etc, that we do but worse, and should we improve, integrate, or kill them" deliberation. But no features are ever really axed, which is the root of all bloat. =\
Textpad. I think the reason is company problems. I thought for a long time that Helios had gone completely out of business.
Foxit is my favorite reader since the time it is released. I had a very slow connection, so as you specified it was difficult for me to download a reader which is of15-20 MB. Foxit is really handy and much lightweighted.
"If you're looking for a decent text editor, Crimson Editor is the only one you'll ever need."
Ditto. And the developer has abandoned it, so it'll never get any new features either. Although there is a project aimed at duplicating and replacing Crimson (Emerald Editor). They also have the source to the last release of Crimson and plan on making bug fixes.
The biggest reason I see bloating in an application is when someone else buys the company and push out those who put in the original killer app. The new owners do not have the same vision that the original team had. Because of this, they can't keep the ball rolling the same way.
One comment that no one seems to be addressing:
A software developers use of abstractions for less coding using huge libraries contributes to the code bloat.
For instance, if you want to create a quick and dirty .NET application, as someone pointed out with ATI drivers, you need to install the whole .NET framework.
Or if you wanted to create a simple python application -- great. But for everyone else, that means deployment of the python run-time.
And as time progresses developer's are always going to be attracted to massive frameworks, libraries, and runtimes. All it means for us, is that it results in more memory hogging, bloatware, etc.
Finally we developers ourselves always want to put all common/shared code into a single library. When that is done, if you need an application that only needs a function or two from that library, the application needs to deploy the whole library. Of course, the OS can be smart to demand-load only the necessary pages of that library, but it more stress on the OS VM layer.
For a PDF reader, I recommend Sumatra PDF
Sumatra looks very promising, but unfortunately at the moment it's still at about the 0.8 stage of completion, the most notable thing missing being text search. Ironically this is one of Foxit's weakest points, the text search is rather slow and sometimes doesn't work at all. It's worth keeping an eye on though, definitely a worthwhile competitor to Foxit.
With respect to rselph, who makes a critical point, that part of what
contributes to feature bloat is existing users clutching pet features with a
death-grip: here's a suggestion that might help to keep this under control.
I think what users clutch at isn't the features themselves, but the belief in the features. If you ask a bunch of users "Should I drop X", most will claim they need X every day. If you quietly drop X and wait for complaints, you won't get any (and if you do get one or two, you can claim it's a bug and will be fixed in an update. Then wait a few months and see if anyone still complains). We've managed to get rid of quite a lot of legacy junk in our code through this method... I shudder to think at some of the prehistoric functionality we'd still have to support if we didn't do this.
As has been mentioned, features are added to sell and make money. Marketdroids drive adding new features, and since in most companies they generate the revenue, they have the control. I've fought over stupid additions (although nothing to compare with NERO with VOIP???), but in the end I still need a paycheck.
Another annoyance of upgrading is that features I did use no longer work. In Visual Studio 6 I had a set of macros to do a project setup that took 30 minutes manually in ten seconds. Along comes VS 2003, and the macros don't work.
Web apps are ok, but I've forgotten so many user ids and passwords that I tend to avoid them. Apps like Gorilla help, but only if I save info there.
Holy crap. I decided to upgrade Winamp, which I haven't done in a couple months, and what a weird coincidence. Winamp has a new interface, which has become the textbook bloatware. It now has ads in it, and it's own web browser...what a sad day.
I'm so glad, though, that it still gives the option to keep it classic.
NERO has become the piece of crap software that no one wants. The only thing I want from Nero is the burning ROM.
I don't like how software companies try and make their software do everything.
I want a different program for each of these:
documents, i.e. txt and doc files
And that's how I like it. Who told these guys that they should include these "features" into our programs?
Lately I don't hear about Wintel.
There was a time when we started to suspect that software (and os's) were trying to convince us that we *always* need to upgrade our hardware. Bloated software, by chance, brings us silently a thought to our minds: "My computer is too slow...". And hardware industry is probably happy with these thoughts.
Is there an intention, or is only coincidence? I hope it's the latter.
May be a majority of us like big bloated things. Seems like if the bigger, the better. In Spain we say: "Get a big donkey, don't care about it walks or not". If its big, then for sure it's good, isn't it?. Must be primitive instinct, as when our common sense says: "Expensive things ar always good things".
Industry knows how to ride our minds and reach our pockets.
Paint Shop Pro stayed as version 7 on my system. I just could not see a reason to upgrade (particularly given my limited graphical skill!)
However, for the monster of bloatware and feature-ware, Microsoft Word and Excel are hard to beat. The latest versions are seen as appalling by most people that I speak to. The new toolbar is very clever but for some reason just takes up more screen 'real estate' and actually hides many useful functions.
I was just reading another forum and a post there reminded me of the applet-developers answer to the Nero bloat effect: Everest, a PC temperature/voltage/fan-monitoring program. Microsoft Word, a full-blown word processor, consumes (on my PC) just over 8MB of memory. Everest, a program to display your CPU temperature in the system tray, consumes between 15 and 20MB of memory (!!!). What's worse, the developer has stated in response to repeated requests to produce a cut-down version that he doesn't consider this excessive. The depressing thing about Everest is that there's no alternative, things like Speedfan and MBM don't even come close...
Just want to drop a more general comment. Several years ago, I was listening to a talk about software metrics, when I heard about "entropy of software". Sine then I believe there is one and it is something you must care about.
Given a minimal entropy at design time, we observe an increase in entropy with time, because of changes due to business needs, market changes, cognition, hardware improvements, social habit changes and many other exogenic factors and that is where the need of a continous re-design comes from. It is something you must do, in order to get the application back to its original entropy of design or idealy to a lower entropy, assuming that we permanently learn and improve the our mental models.
The software bloat epidemic in three words: Catalyst Control Center.
Total Commander (formerly Windows Commander). For three major versions as of now, and that's at least 4 years back, it remained a nimble and feature-endowed file manager.
However, over 7 years since Unicode has been introduced -- the proper support for it is still missing in TC, and that is my only major gripe with it.
Pov-Ray (Persistance of Vision - Ray Tracer) is keeping to minimal bloat. There is a lot in the way of add on pieces or other applications that can work with it, but the engine is solid. If you want the fluff, you have to put it there yourself.
Still use Money 98, it has its limitations and its bugs but I can do what I want and do it quickly. PSP v3.12 vs PSP v7 is a tough call - I use both, but PSP v11 hit the bin after 60 days ran out!
Have you noticed how all of the latest software now requires more and more use of the mouse? Haven't software vendors heard of RSI? Also, using the mouse is so slow compared to using a keyboard. Thank God (not MS) for the Office 2k3 keyboard shortcuts in Office 2k7.
You mention resources, what about CPU usage and hard disk activity. I have a 20k (60GB+) photo library on my laptop and whenever the screen saver kicks in ("blank" only) the hard disk activity and CPU usage goes through the roof with Windows Photo Gallery running in Vista. What the ???? is it doing? It can't possibly be spending months indexing the same (none changing) photos. And what's all of the "thumbcache_??.db" files about - let's see how quickly we can fill a hard disk with ????
Finally for Vista, have you seen the minimum hard disk space requirements for Vista SP1 - MS are you kidding??
Another example is Photoshop, which has steadily gone downhill since 3.0. Fortunately, there's Pixelmator now (at least for Mac users).
I just read the article. Funnily enough, the complaint about all three Apple apps is that they took features away, not that they added too many new features. The prime example for this is iMovie '08, which is actually a totally new, simplified version of iMovie. So not only do people complain when too many new features are added, they also complain when companies try to fix that complaint :-)
don't forget software spoils because for profit companies stop supporting it, in one way or another, sometimes that means changing the technology to force it to fail
What I hate is that in using Gentoo Linux, I can't use XMMS anymore - and all other players suck in playing MP3's. VLC is a perfect video player, but it's playlist capabilities are teh suck, and most MP3 players have become playlist managers / music servers / bloatware. XMMS is no more in the gentoo portage tree, because it is "surpassed" by other apps. Yet I want XMMS! (yes, I know I can install it using CMMI - been to lazy to do so)
Yup, PSP - bang on. I just upgraded from 10 to 12 for Vista support - and now it's larger, more intrusive, slower, and charcoal coloured. Great.
What ever happened to software that just does what it says on the tin? Or just installs what it says on the tin? Why does every second application seem to want to install Google Toolbar for me?
I don't mind new features being added to programs; sometimes they'll add something that I didn't even know I needed until it was available in the program.
What I really mind is not being able to decide (in some sort of configuration screen) what features I want and which ones I don't want to see on the interface, menu, etc. And I don't mean disabled; I mean not visible. I want to be able to not only decide what appears on a menu, I want to be able to create my own, containing the functions that I use. That way, if I'm only using 5 of the features, they'd be sitting on one menu (not scattered in 1's and 2's across the original menus).
I wouldn't mind being able to move things around on the interface to suit me, too. Being able to drag controls up to fill in gaps created by non-selected functions in order to reduce its desktop footprint would make me smile.
I don't program using compiled languages, so maybe this isn't possible to do. But it once was possible, because I've worked on apps in the '80's that did just that.
I was using Winamp 2.95, but had to upgrade to the newer versions because of a memory leak that occurred when I was using a 3rd-party global hotkeys plugin.
I am using the 5.x Lite version at the moment, with a classic skin. The memory usage is slightly higher than that of the 2.95 version. The delta is acceptable; first of all, there is a native hotkeys plugin, and nowadays I use several other plugins that increase memory usage (last.fm, CUE file parser).
In my case Winamp uses 2.5 MB when playing an mp3 in the background, and that's a pretty good result. YMMV, but if the delta is huge, I'd turn of useless plugins and features (especially modern skins).
I'm surprised and happy that ACDSEE comes up here and in PC World, I didn't know many people were aware of it.
I loved the app! I had the office buy ACDSEE "Classic", which was available at the time, after trying the new one. Some auto-update did change my UI to some awful thing full of tabs and icons and I lost where the JPeg rotate is now. In any case, that app really went to hell and become just another bloated image browser, instead of the cool efficient one that sold me in the begining.
I'm still using Winamp 2.7
Is Windows Live Messenger really bloated? Doesn't seem like it here.. I just find they were really stupid to drop 'msn' because like 'google', 'msn' is so popular it has becomed A VERB! God, these idiots haven't realized the strong brand they had there. What's the point of calling this "Windows Live"
It's the business model.
If we rented software then there'd be a steady revenue stream for developers, and a lesser feature incentive.
Since we buy software (sort of) developers have perverse incentives. They have to "break" the prior version by not maintaining it, introducing new file formats, and they have to add features to hide the fact that the updates are driven by vandalism, not value.
Of course software rental completely screws customers unless the file/data formats are completely public and interoperability is assured. I'm sure customers will realize how important that is.
Thirty years from now.
Instead of winamp, foobar2000.
Instead of winzip, 7-zip (really functional file manager as well).
Instead of nero, infrarecorder (truly a gem!).
I still use Windows Notepad for quick editing/viewing of text files.
As a couple of people mentioned, the core functionality hasn't changed in over a decade. IMO, the only noticeable changes (circa Windows 2000) have been for the better:
1) Ctrl-S for saving the file
2) Status bar with current line number (off by default -- word wrap must be off for this feature to work properly; this may be an new feature with XP instead of Win2K -- I don't remember any more)
Without these two features, I would probably have stopped using Notepad about six years ago.
Success begets failure.
When a product becomes successful, you can afford to hire more people. The more people you have working 40+ hours a week on something, the more bloat you're going to have. You'll also have more decisions made by committee rather than someone with a vision for the product.
If you have version 8 or above, hang around in the About box for a while. For earlier versions, Google "Paint Shop Pro" "Easter Egg" and follow the instructions. Count the number of names you see.
The size and slowness of programs grows exponentially because in nearly every program you write you combine at least two programs/libraries from the last 5 years.
It leads into exponential program size and exponential slowness as we go forward in time.
Now you can call me clever ;)
I definitely find 'feature creep' to be one the most annoying aspects of software development. Apple's recent overhaul of iMovie is, in my mind, the best example of such.
I also feel that Facebook is doing the same thing - focusing too much on other, less important features. Instead of stupid applications to clutter up your profile, why not focus on better displaying pictures and making some sort of live Wall chat application - logical progressions of two of Facebook's killer (and original) features.
Very true! Have you seen the sizes of CD writing applications?!
The size of the latest versions two best cd writing software in the market -
Nero: 178 MB
Roxio Easy Media creator: 771 MB ?!! (wtf)
This link shows the how nero has bloated in the last 3 major releases
CDBurnerXP is a nice open source version, but crashes quite frequently on my XP laptop. It would be nice to have something with paint.net's quality, and let me do some basic CD writing.