Wednesday, March 11, 2009

Software Bloat: Acrobat Reader Executable Size Growth over the years

Does this image say it all? Since I develop various software applications that, among other things, create reports in Adobe's Acrobat / PDF format, I tend to keep quite a few versions of Acrobat reader around for testing my program output with. And, I just could not help laughing when I looked at my file-server's Acrobat Reader executable programs directory, where, since 1997, I have accumulated versions of Acrobat Reader 3.2, 4.0, 5.0, 6.01, 7.05, 8.12, 9.0, and now the newest addition of Acrobat Reader 9.1

Check out the Software Bloat factor in Acrobat Reader over the years:


What started as a simple utility to display PDF files (Portable Document Format files from Adobe), has grown from an under 4Megabyte (MB) installation program to a whopping 42MB installation for Adobe Acrobat Reader 9.1 - which now includes things like Adobe Air and Acrobat.com and all sorts of other ridiculous crap.

I find this all crazy... how a PDF-Reader application can grown 10-TIMES in size (for the installer executable download) in a period of 12 years. Sure, it is no worse than Microsoft Windows or most other major applications that also seem to grow by orders of magnitude over the years, but why?

Is there really that much more functionality in the applications these days to justify this explosive file-size increase, or is it lazy software develoment, a lack of tuning, a lack of focus on clean and efficient code and re-use, or a combination of all the above? It is just hard to accept (for me) why a program designed to allow me to view PDF files on any computer must require a 40MB Download (I will not even get into how insanely large the post-installation size-requirements for this application are!).

I remember the days when I had an entire operating system (on a TRS-80) running in a mere 32K of RAM with simple word-processing programs, games, and the like. Sure, those programs were much simpler, and did not have modern GUI desktops and flash, but the entire OS AND PROGRAMS ran in 1/1000th the memory that this latest Acrobat Reader intallation program download is. Unreal.

This begs the question: what will Acrobat Reader 10 be like, or Acrobat Reader 11, or Acrobat Reader 12, or Acrobat Reader 13, or Acrobat Reader 14, etc... will we hit a ONE GIGABYTE download for their future PDF reader eventually? Given the history, file sizes have gone up to nearly 11-times their size in about the same number of years, and the version numbers at about 1 for every 2 years... so, in a decade, expect a 1/2-GB install of Acrobat Reader 14! It is coming! And, you will be using it (note: I use Acrobat Reader nearly daily; many people do)

2 comments:

DED said...

Amazing. I'm still using 6.

Is there really that much more functionality in the applications these days to justify this explosive file-size increase, or is it lazy software development, a lack of tuning, a lack of focus on clean and efficient code and re-use, or a combination of all the above?

If the WYSIWYG HTML editors of old are any clue, it's a lack of focus on efficient code and laziness. Back in the day, I would go nuts trying to clean up a page that had built with the WYSIWYG's. There was so much garbage code thrown in that pages were anywhere from 2 to 3 times the size they needed to be to properly display a page, and this was before broadband was in the home!

All I can think of in their defense, is that they have to code for older OS in the installer package. But I'm inclined to think that isn't true as JS sniffers can be used to determine not only a visitor's browser but their OS as well, unless they're sticking with the all-in-one approach to reduce the number of install files they have to maintain.

Software bloat is a problem and will continue to be that way so long as bigger and bigger memory stays cheap. If it ever plateaus, only then will you see an effort to bring efficiency back to coding.

Lars Olson said...

reminds me of when I create a Lazarus freepascal application and the bloat just keeps on bloating when I add new components to form1 and measure the EXE size. Maybe adobe uses Lazarus to develop their program.