Whilst ranting about the inadequacies of Apple's OS X Finder on Twitter last night I joked how a version of XtreeGold - even as a 25yo technology - might be better! It didn't take long before I began reminiscing about the good old days of DesqView and running Bulletin Board Systems, and the pioneering innovation behind it.
Feeling ancient
This morning the stark realisation I've been doing this stuff a long time really hit me. Running Bulletin Board Systems at the age 14/15 years old from your bedroom wasn't uncommon. However when I wasn't chatting online with people who had dialled into my computer I was writing shareware programs in TopSpeed C (ref: NodeManager v1.00).
Bizarrely 22 years later (and still in my thirties btw) I feel like I've only just got started. I still love writing software more than ever. I love meeting and connecting with people. And I certainly don't think I've got anywhere near satisfying my appetite for the exciting opportunities in software development.
Most of all I believe those of us who herald from the good old days of lower-level programming, and not to mention pioneering spirit, will do best in the future. Our day cometh, and we have a lot to bring forwards.
Learning from the past
Having read many books on the evolution of personal computing lately I'm led to the unsurprising realisation that we are firmly heading back to our roots, and that is one of doing more with less, a good thing. Did you know the original Macintosh guys had 64Kbyte ROM space to deal with, 64Kbytes?!
Abundance of cheap memory and storage has lead to bloated heavy-weight software that has little regard for good memory management and performance. I remember being in a meeting in 2004 when my then employer was embracing IIS and .NET 1.1. When I asked about performance concerns I was told not to worry - "we'd chuck more hardware at it". I hated it.
This debate most recently came up in our office last week with questioning of my enthusiasm for using Obj-C, why not just use MonoTouch? Well, besides a personal desire to always challenge myself, I want anything I write to be the most efficient it can be. Don't get me wrong, I love Mono and use it often, but faced with a choice of lower-level verses abstraction (and in absence of portability requirements), I'm gonna suck up automatic and manual reference counting.
The future now looks to promise that those who are efficient with resources will benefit most - at least financially. I suspect this is largely driven by economic pressures to reduce running costs and awareness of environmental impact that thousands of servers are having on the planet. I believe "pay-per-watt" is already becoming a reality in hosting scenarios. Now, imagine if you web farm was able to go from twelve servers to two - WOW!
Final word
Ask yourself next time you develop something if you can make it's memory footprint less; have you optimised those embedded images; can you gleam with pride when it's performance is off the charts? If you can't then you may be a software programmer, but in my eyes you aren't a software engineer.
Were you there?
Would love to hear from fellow SysOps from the old BBS days, especially if you attended any of the meet-ups that happened regularly in Didsbury (Manchester) or Loughborough (University). In fact if you recognise any of the people in these photos let me know. Just remember - no FLAME WARS allowed :P
PS. Don't know what a Bulletin Board System is? Youtube can help here and here.
PPS. I'm still bored senseless in meetings, give me a keyboard any day ;)