After reading a bit I clicked on the link to kkrieger and downloaded the file. The screen flashed the download Dialog box just briefly and it was done. "Wow, a whole 96k" I thought to myself. I was pretty sure this program probably looks like the original worfenstien or something. Man was I wrong! I was quite blown away with the rich 3D graphics and sound. I shut the program down and tried to figure out how they did it. I though maybe they were pulling content off the web during load so I shut my NIC off and ran it again. Nope, the program ran just as it should. Then I downloaded the .debris and ran it. Another awesome looking program.
So I started thinking about how they can do all of that in such a small size. Back in the day (I can say that now because I'm past the 40 mark) I wrote some code and I remember the biggest goal, besides writing good code was to make the executable as small as possible. Back then we only had 640k of actual execution space so we had no choice. However, it made programmers come up with innovative ways to produce output.
Today I look at all the software available and what they do and think to myself "does that have to be such a large executable?" In fact look at our current operating systems. The following list is of all the operating systems and their minimum RAM and disk requirements:
- Windows 95 8Megs RAM 50-55 Megabytes of hard drive space
- Windows 98 24 Megs RAM 165-355 "" "" ""
- Windows ME 32 Megs RAM 320+ "" "" ""
- Windows 2000 64 Megs RAM 650+ "" "" ""
- Windows XP 128 Megs RAM ~1.5 Gigabytes of hard drive space
- Windows Vista 512 Megs RAM ~5 "" "" ""
- Windows 7 1 Gigabyte RAM ~6 "" "" ""
Now at first glance the size of the operating system code seems exponential but it may be somewhat less than that because each version added more and more hardware driver support and other non essentials. Still, the operating system core code is becoming more and more complicated and in my opinion the reason why the OS's are so vulnerable to problems.
Again, when I learned how to write code it was always Keep It Simple Stupid and smaller is better. However, it is true that the demand for OS's to do more and perform incredible feats has driven all that code that make up an operating system. But I also think that code writers (programmers) these days are tasked to put out as many lines of code as fast as they can. This leads to sloppy programming and loose code as apposed to elegant, small and simple code.
So my point is that software including operating systems can be written well if the time is taken. But as the old adage goes "time is money" and as long as software is written to produce quantity not quality we will continue to see bloat and incur complexity and security issues. To drive the point a little further, look at the Open Source community. Most of the contributing programmers tend to write elegant and tight code because it isn't a solely profit driven industry.
I ran the kkrieger and it was really cool. It doesn't look look like they have done anything since 2007 though.
ReplyDelete