Why is modern software so damned big?

We use QuickBooks Pro and I’ve recently been put on it as a user. I figured it was modern software so I wouldn’t bump up against its limitations right away, but I was wrong about that, hitting the wall on the second day. (AND I’M NOT EVEN AN ACCOUNTANT!) Yet, despite its limitations, it’s HUGE! and requires “500 MHZ Intel Pentium II (or equivalent), 128 MB of RAM for single user and 256 MB for multiple concurrent users, Windows 2000/XP, 850MB of disk space,” or about the same as my Autocad 2002, which has features out the wazoo and limitations based more on user abilities than hardware until you get into its deepest, darkest 3-D territory. QuickBooks, on the other hand, has features comparable to a pretty basic DOS accounting system from twenty years ago that fit on a couple floppies. And isn’t any faster.

Whyzzat?

I can’t imagine that hundreds of megabytes of program comes about merely because modern computers with loads of space make programmers sloppy and its simple GUI (theoretically) can’t POSSIBLY take up that much space.

Why not? There’s no longer any particular incentive to write small software, so there’s no reason why most programmers would take the time to do so.

But you’re right that sloppiness doesn’t account for all of it. In a lot of cases, it’s because adding new features is most easily done by just adding them in, and not rewriting old pieces to avoid having duplicate code. In other cases, it’s because the software include what’re essentially pieces of the operating system so that there’s no need to worry about other programs installing newer pieces that break older programs.

Welcome to the dark side of object-oriented programing. Templates, runtime type identification, maybe even a just-in-time byte compiler for Java or .NET plugins.

I have been in the software field since 1979, and IMHO this is not a result of software language or architecture technology per se but a feedback loop between hardware and software. Hardware gets cheaper and more powerful every year, so the software developers put in more goodies to take advdantage of it all and tend to push the envelope a bit. So then you have to get more powerful hardware, and the envelope gets pushed again. Software technology does get more complex to do more whiz-bang things, but only because the hardware is available and cheap enough to make it practical. I think gamers drive a lot of this economy; a serious gamer needs a lot more machine and hungrier software than an Excel geek. If you could have gotten a 2GHz computer with 2G of RAM and a terabyte of data in 1979, it wouldn’t fit in your house and would cost a fortune. Today it’s not even considered high-performance.

I suspect XP would run like a pig on a machine with those minimum requirements. I’ll bet you need at least 1GHz and 512M RAM. Now remember DOS? How much disk space did that take up? XP is not just a greedy DOS, of course.

The rule of thumb for software is whatever the minimum system requirements on the box say, if you actually want to be able to use it, you’d better have double on your system.

I’ve run XP Home on 233MHz and 192MB. It runs slowly, but is far from unusable as an everyday desktop setup.

That’s actually a very modest set of requirements these days, and you’d have a tough time getting Windows itself to be useful. The bare minimum that’s needed for XP is 300 MHz, 128 MB RAM and 1.5 GB disk space. I had that in a Windows 95 PC ten years ago.

As for comparing it to AutoCAD - that app has been around for 20 years. Back then, the main hardware requirement was an 8087 math processor chip, (and the debates over whether or not the Intel math chip was better than the Weitek chip.) and it ran just fine on a 10 MHz XT. I suspect its development over the past two decades has been done by people that actually know how to program, rather than buy things like API kits and object libraries and bolt these prefab hunks of code together.

I think 99 % of the users would get enough word processing using WordPad. But the name of the game is upgrade, so software companies add bells and whistles that nobody cares for, to justify the upgrading.
Why would I want to desing web pages in Word, when there are perfectly good alternatives? Well, the option is there and it justifies a new version, with even more user manuals and a DVD with all the frills, which will make pople pay for something they don’t need.

I can honestly ay that I don’t use any feature in Word, that wasn’t included in Word 2.0 (which was back in '91) and I use Word every day.

The original Nintendo games for NES (Super Mario Bros. Metroid ASF) were limited to 64K, total. The graphic was crappy by today’s standard, and yet… 64K. About the average of an empty Word *.doc today.

Layering, modularity and component based techniques all contribute, but there’s another factor beyond these.

The “simple GUI” DOES take up space. Lots of it. It is not at all uncommon for 95% of the image for a fairly straightforward GUI app of today not to be code at all - it’s “resources”. In other words, pictures, sounds, help files, movies, etc. Your old accounting system didn’t come decorated with a thousand little bit maps, have sounds built into it to respond to your keystrokes with, or have help animations to play to show you how to use it. Not to mention “theme setting” type features which cause you to duplicate all of it to provide different appearances. Stuff like this greatly bloats both the space on disk, and the runtime memory usage - the bit maps and sounds have to get loaded into memory for the program to present them to you.

This is the reverse of my experience. Hard drive space required is usually an absolute (it’s the amount of space the software itself takes up), but I’ve found that most programs will run (albeit with all the settings cranked down to the minimum) at about half the listed minimum processor speed, and sometimes half the listed RAM. It’ll be ugly, but it’ll work.

And if this software had that crap I’d understand but my point is that it IS a “simple GUI”. And if there were a few other bells and whistles I’d also understand but the closest I’ve found to either is “If you want to do that you’ll need to upgrade to our fanciest version.” Which, I suppose, means that if they don’t have disabled code for that in my version they undoubtedly have the handles ready.

Around 1999, I took some old (circa 1992) Word files, loaded them in a newer MS Word, and saved them again, so that they are saved in the new format.

I changed nothing in the files themselves. Nevertheless, each file went from approximately 2KB to around 20KB !

WTF?

Even if hard-disk space is abundant these days, there is no reason to store the same information in ten times the space as you used to.

It’s not the same information. The Word file format has a lot more data in it than just the text of the document, and each new release undoubtedly adds new data.

The “information content” is the same: What text there is, which words are bolded, what the paragraphs are, where the line breaks are, etc.

And the information content is all the user cares about.

If the new Word file format wants to store a lot of other info, that Microsoft’s issue, and they shouldn’t increase the file size by an order of magnitude in order to store whatever else they need to store.

This extra info may be relevant to other files that have pictures or other objects embedded into the file, but the files mentioned above were simple text files with simple paragraphs and simple headings, so the extra information that Word needs to add should have been kept to a minimum.

Making a file ten times bigger, without any benefit to the user, I think that that is ridiculous.

Another obscene example are the email messages from Outlook:


<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial>
<span =style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Thanks,</span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial>
<span =style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Joe</span></font></p>


Maybe other email programs do the same thing, but trying to write
“Thanks,
Joe”
should not take up so much information.

At the very least, since the two lines have the same font size, same font name, same font color, that information should not be present on every single line.

And when this is repeated over an email that has 100 lines, the waste becomes ridiculous.

It just shows that the programmers are either lazy or not very good programmers.

Nah, what it really shows is that programmers want their email in text/plain.

:stuck_out_tongue:

Actually, that’s an entirely reasonable approach to text formatting. If you knew anything about it, you would recognize that that style is being applied per paragraph, not per line. Trying to dynamically consolidate that information across multiple paragraphs adds a lot of complexity, which very likely increases the amount of money that you’ll have to spend developing the software. Add in the complexity of splitting the paragraph formating info when the style of adjacent paragraphs change, and you’re talking a very high risk of bugs.

And what’s the value?Given the amount of formating information in the paragraphs above, you’d have to have about 450 paragraphs to add five seconds to the transmission time over a 28.8 modem. Tell me that matters.

What’s more troubling than the amount of information they add, is what information it is. For instance, when you installed Word, do you remember that it asked you for your name? That name can be found in every document you create. There was something of a stir in the physics community a few months ago, when some peer-reviewers realized that submitting their review as a Word document compromised their anonymity.

Yes, this is suuuch a complex task. I’m sure it would add $500 to the cost of Outlook, and make it crash every 3 minutes :rolleyes:

And to reduce the complexity even further, and reduce the risk of bugs, why don’t they just repeat formatting info for every single word in the email?

Because it’s very difficult to dynamically consolidate that information across multiple words, and if you add in the complexity of splitting the word formating info when the style of adjacent words change, you’re talking a very high risk of bugs.

No, wait, they already know how to do that …

Much of it is economics. The customer wants it fast and cheap. Labor is expensive, hardware is cheap. In the good old days, I used to write programs in assembly language. They were very fast and used little memory. Doing that today would be insane. It would take much longer to write, cost much more, have fewer features, be harder to maintain, and not be portable to other processors. For most software, the optimal solution is to trade higher hardware requirements for lower development cost and faster delivery.