One of my favorite parts about programming is the design part of a project. No, not the pretty sparkly pretty design; I know I suck ass at that and it's just a bad idea for me to even attempt. Instead, I like the part where the program itself gets designed; the part where the order of things gets worked out and you, the programmer, gets to be creative and connect A to B to C on all the parts that were left out of the scope. Sure, you know you need to add, for example, a form to a webpage but unless anyone told you how it should be written it's entirely up to you how to do it; that's the good stuff.
There are all sorts of places people go to sharpen their program design skills, which, and let's not kid ourselves here, is a way subjective but difficult specialty; personal favorites of mine are sites like Gamasutra, which has a great postmortem section, and The Daily WTF, books about projects like Dreaming in Code and Showstopper! and, to look at how other programs function and what other people like or dislike about that program, Reddit (of all places).
One of the better posts I've seen on Reddit, in regards to insight, was for Adobe Reader. On Reddit the question of why Adobe Reader is constantly updated is often asked but, what with the hive mind and all coming to the proper conclusions, is almost always linked to the "correct" answer:
Ok.. here is a comment from somebory who knows his shit:
the adobe reader you have isnt a simple PDF reader.
TL;DR: Adobe Reader is a huge system and reading PDFs is one of its many functions. If all you care is reading PFDs only then you should ditch it and get Sumatra or Foxit.
lets follow the rabbit..
There is a reason its not called "Adobe PDF reader" but "Acrobat reader" or "Adobe reader". It is a monster of a system.
reading PDFs is one of many functions.
For a project i had to read into adobe acrobat and heck its a real monster: it has
a complete mail server, document lifecycle management system, DRM client, full fledged document tracking system, form capabilities, statistics for your docs (imagine sending a survey and tracking the collected data), video AND audio playing capabilities (yes you can embed audio and video in pdf) as well as capabilites for other formats (such as displaying CAD(!) data in its own 3Dviewer).
all in all the full acrobat SDK is like 500 MB and its manual a couple tousand pages long.
merely displaying PDFs is one function out of like 100.
To you as the consumer its the bait... but the full fledged system behind it is what Adobe sells to its corporate consumers.
they basically say: "You want a full fledged content tracking system? we got it... and the best part is all your customers have the clients already installed! in form of the acrobat reader".
Its like a monster sleeping in every computer.
see this link. Its the function comparisson of the acrobat family..
and here comes the scoop: all functions you see are supported by acrobat reader... but you cant use them. They are there so you can provide them to the guys who paid for "pro extended".
Basically the pro extended package can create all that shit and all drones using acrobat reader will support the functionality. wheter they want it or not.
And here is the screamer: being a normal guy you will most likely never need all that crap. You know what does it mean when i say " document tracking system"? its just a fancy word for the dream of every adverstiser : Corporate customers can track how succesful their
newsletter, advertising and customer Polls are.
Yup.. they can track how efficient their spam is. And all you sheeples who over the years keep complaining "omg i just want to read pdfs why is the install file soo big" never cared to actually read what is included.
My advice: if all you care for is reading PDFs (and im sure 99% of Acrobat reader users are in this group) install Foxit or Sumatra.
That's just poor design right there; forcing a large percentage of your users to suffer a poor experience for the benefit of a smaller portion of users is just flat out dumb and one of those decisions I'm fairly certain couldn't be made by a team that's dogfooding their project. It's just basic math; make life easier on the majority.