Linked by Davon Shire on Wed 23rd Feb 2005 21:51 UTC
Editorial Amazing is the recent interest in full, live, operating systems that can fit on a 50 MB CD-ROM. It's totally astounding that they can cram so much onto such a tiny disk. But wait.. let's run back to the days of old.. back to say 1988.
Permalink for comment
To read all comments associated with this story, please click here.
Code bloat?
by Anonymous on Thu 24th Feb 2005 01:52 UTC

Some ideas I have why it may be happening:

1. More programmers with less experience. Too many Java undergrads, I presume. Add to this the lack of training in good design practices (although I doubt it was any better in the past). Anyone can write a program that does X, but how many can design well factored code and get it comfortably under 100 KiB?

2. Loads of standards to implement before your system gets to a basic level of accepted functionality and compatibility.

See: http://www.cs.bell-labs.com/who/rob/utah2000.pdf

3. GUIs are HARD. The design and use of them (extending to the application) is still very much problematic. The modern approach is to create massive monolithic class libraries - not good.

4. Open Source - many more developers (but not enough good ones), poor communication medium (Internet), varying skillset, lack of focus and big egos mean that the result of open source projects is hardly an improvement over the commercial approach. In reality, the small systems you want are only created by a small, tightly integrated team of developers.

5. Acceptability. "Wow, it's only 10 Megabytes?!"

6. Lack of time to think things through and re-design when necessary.

7. Still too hard to share code. It's less hassle to roll your own.

8. Systems and applications these days do so much more than they ever did. It's arguable that most of these features are not needed or wanted.

I've been experimenting with getting my code as lean as possible. For example I have a very fast memory allocator (written in C) - 2.26 KiB relocatable object code with symbols. I'll release it eventually.

My most recent foray is a system-neutral GUI interface library which attempts to take maximum advantage of the native GUI system available. Currently the Win32 version supports windows, buttons, listboxes, check boxes, radio buttons, OpenGL windows, full-screen windows, GDI drawing, various common dialogs, etc. Code size is 15 KiB.

It is far from feature-complete and uses a lot of built-in functionality, but is much easier to use than straight Win32. My goal is reasonable functionality for most applications within 50KiB.