Power of Progress
Last updated on: 9/14/2011 1:21 PM
Created on: 3/21/2014 2:18 PM
I was listening to Rob Craig's Silverball podcast in which they brought up some very good points about where we have come since the year 1990. It all started with something I can relate too... The Sega genesis. I had one, I still have it, played it a lot as a teenager and liked it better than other systems. At the time of its release it leap-frogged the 8-bit Nintendo entertainment system by being the first 16 bit system to market. Thanks to its vast memory and fast processor all you favorite arcade games were able to come home.
Now as much as I would like to point out that this only supplemented the arcade experience by allowing access to games after hours we all knew it started the race to better home consoles that would make the arcade a thing of the past. But along the way we lost more then just the arcade, a fun place to hang out in real life and release some stress and meet others who like the same games, but we also lost our ability to write amazing software.
The Sega Genesis was really light on storage capacity. The internal memory was only 64K or RAM. The paging areas for graphics and stereo sound was as limiting. Software storage was non existent as all software was stored on cartridges. Code had to be small, long calculations had to have algorithms developed to optimize performance and looking back, software wasn't allowed to crash. Now contrast that with what we have today. A perfect example is the Thunderbolt with a 1GHz processor and 40 GB of storage. Even though it is a smart phone it has all of the functions of a PC. In fact I am typing this blog in an Android app I am performing a personal evaluation. But that also points out a problem that not alot of people appear to be asking. With that much speed why are things running so slow?
There are two areas in which we should blame. First is the network. In the past when designing software you wanted to avoid accessing the disk as it was the bottleneck in performance. With phones using SD and the cost of SSD getting cheaper that isn't a concern any more. Even on actual computers there is plenty of space in memory to do a single pass read of data and manipulate it with only a single read and write disk pass. It may sound like the problem was eliminated but the reality is it instead moved to the network card as TCP communications require a delay while connections are established, transactions are processed and data is verified.
The second problem is essentially poor programming. When resources were limited programmers had to consider ever instruction and every optimization. Today we can run any crap with the amount of RAM and disk storage we have at our disposal. That doesn't mean we should. In some cases bad code is the result of hard deadlines. In other cases it is due to trying to jam new features into a code base in which such expandability was never considered. In many cases it is just bad programming.
There is a project I am assisting with in which I am adding supported feature requests. The framework was originally developed by me and I understood it when it was a 1.0 release. I am now working on the 1.2 release and there is a lot of features added that do some interesting things. The code I am building uses decent functionality however many of the APIs were written based on a single transaction model. As we adapt to more network services we are learning that isn't true and for some features the same step is repeated multiple times. Will it work? Yes. Will the customer notice the performance issue? Probably not. The only reason I can sleep at night is the next batch of projects I have this will all be corrected.
Of course this isn't easy. I get the option to restructure the framework to make features more accessible and more optimized. In many cases such rewrites are cost prohibitive. So what about new software? Why are all the apps for our phones running slow? Phones and tablets are using new operating systems and to make consumers happy are allowing any idiot's app in their marketplace so they can talk quantity instead of quality. On my phone I use 10 apps because they are all very good and provide the information I need but, I appear to be in the minority as many rather hear about choices in the 300K range instead of the 150K range.
Luckily we will have to get back to solid software as we look forward to the world of SaaS (Software as a Service, formerly known as "the cloud"). These new generation products are going to have to take into consideration smaller devices, minimal memory requirements, power consumption, network traffic issues and an offline mode. I plan to get into this more as I discuss my latest projects. However I am finding myself changing course on several as Microsoft's release of the Windows 8 proof of concept to developers has sent my UI designs from earlier this year into an obsolete abyss that lies just Over The Edge.
Wolffy's Over The EdgePower of Progress Back to School Randomness What In the World Happened To You? 8th Grader Game Coder When Hobbies Take Over Blackout: The Great Disconnect Different Is Awesome