Trimming the Bloat: A Dearth of Elegant Code

Moore’s law is a curse.

In 2005 I built yet another computer in a long line of homebrew PCs.  I don’t recall the exact specs, but it was a single core Pentium4 with about 1GB of initial RAM.  The computer ran an optimized XP operating system, surfed the web at light speed using Firefox with multiple tabs open, and ran Adobe productivity applications without skipping a beat.

I recorded scores of songs in my Digital Audio Workstation, Cubase — some with 24+ plus tracks of 24bit audio while running numerous plugins.

The P4 was retired only because it lacked h.264 support on the chipset and rendered video too slowly.  I could have upgraded the video card and went about my merry way, but the promise of 64bit multicore led me to build a monstrous 6 core workstation to replace it for video production.

That 2005 computer is now considered a dinosaur because it doesn’t run the current generation of Operating Systems or productivity applications optimally.  However, beyond eye candy and non-essential new features, said generation of software doesn’t offer any significant boost in my daily productivity at the cost of the new computing power.  99% of my computing activity is typing text input and working with low-resource graphic manipulation.

The latest greatest generation of productivity apps consume ever greater portions of CPU cycles and memory to achieve the same results we’ve been getting for 20 years.  If you consider cutting edge workstations like the NEXT machines of 1990 or Power Macs, you can extend that to 25 years.  If you consider email and network file sharing was ubiquitous on UNIX mainframe terminals in the early 70s, we’re now looking back 40 years.

system1I’ve always had a fetish for elegant, vintage, low-resource code.  Great examples include System1 on the original 1984 Macintosh, boasting a full window-based GUI with basic productivity apps under 128k of system memory.  That is about the size of your typical medium-size web photo of today.  Also there is the legacy of brilliant Posix terminal applications like Lynx browser, Pine email suite, Emacs text editor – using mere bytes of memory to provide you with significant network productivity.

As I wistfully think back those terse little application footprints, I cringe at the thought of similar applications today using hundreds of megabytes to achieve similar productivity curves.  Sure, they are beautiful to behold, and have some amazing new multimedia integration features, but these comforts are non-essential.

The typical mid-range WalMart laptop of 2015 has an incredible resource profile, yet after a few months, the incessant bloat of application and OS updates, anti-virus hard-drive thrashing, leaky binary builds and sloppy web code brings all those resources to a crawl.

For your average consumer, this phenomenon is often just considered, “wearing out,” and leads to the purchase of an even faster computer running the next generation of slower, more bloated and less elegant code.

In a nutshell, software today is like a fat lazy spoiled child, living in bigger and bigger mansions, filling every room with junk.

Could this be a reflection of the humans creating it?

The frustration reached a climax recently as my laptop became chronically unresponsive. In my fury, I proceeded to decimate my services, startup processes and applications.    I deleted latest builds of popular software, browsers, chat clients and productivity apps.  I disabled all graphical effects, removed all images & skins from my OS.  I downloaded lightweight open source alternatives like Light Firefox, Miranda, AbiWord, Notepad++ & Filezilla.  I switched my Gmail bookmark to basic HTML mode, and even considered going off the deep end and installing a non-gui Linux and running everything in terminal to see if anyone in my company would even notice.

The resulting efficiency and simplicity was staggering.  With applications running with conservative footprints, everything started moving in real time and I realized how much compounding stress  the frustration of application bloat caused in my workday.

Perhaps someday I’ll go to the junk yard and cobble together a 1980s 386 VGA TCP/IP setup running as a Linux terminal and go about my daily work for a week to see how well I could keep up with managing email and server application code.  It probably wouldn’t be that much different.