COMMENT
Compiled in a car park in Redcar UK, edited in my garden on a warm summer evening, and dispatched to silicon.com from The IoD via a free wi-fi service two weeks later.
For more than 35 years the immutable law of software has seen the inclusion of more and more features with each upgrade of applications and operating system.
In turn this has led to more code, and the ticking time bomb of increasing brittleness and user frustration. Thousands of features have gone unnoticed and unused, while hard drives have had to grow from megabytes to gigabytes, and operating speeds have tended to stabilise or slow down despite the increased power and energy consumption of our integrated circuits.
The best mission statement of any software company I've ever seen is: "We intend to ship fewer lines of code on each successive upgrade."
If only all software produces obeyed this mantra how much better users' lives would be!
It has always seemed to me that buying software code by the tonne was not only a flawed model but also untenable in the long term. As with many things in the IT world, software is definitely in the 'less is more' category. But the business model has always been: more features equals more money.
But that light in the distance may well be the end of the tunnel and not an approaching railway engine about to crash! The two biggest suppliers of OS software (Microsoft and Apple) have at last turned this corner and are shipping much smaller (by 50 per cent in Apple's case) versions of their OS while also charging less for the upgrade.
Hurrah!
I sense a software clean-up coming where defunct code is weeded out or at least tidied up, features become increasingly refined, and long-term product stability improves dramatically and visibly.
We have been used to seeing transistor density and data storage double (thereabouts) year-on-year. It will now be interesting to see in how many years applications' and operating systems' code can be halved!
Faster boot-up and response times, fewer crashes and lock-ups will just improve human productivity, while the reduction in energy needs could see smaller batteries and lighter machines.
Today my laptop feels more like a hot plate than a computer - and it might just be that it will become cool too!









Comments
There are 14 comments. Join the discussion
1. Martin Daly
This is arrant nonsense.
Mac OS X 10.6 - Snow Leopard - is only 50% smaller because the binaries are no longer "Universal", i.e. Power PC support has been dropped.
Programmers can't conjure programs out of thin air; even those at Apple.
2. Peter Cochrane
Martin = Programs and program writing can be efficient! You only have to compare the East - West divide to see that. It can also be tightened up. I remember ditching over 50% of MS OS early on to make it more efficient.
And if something does a good job in 7GB instead of 14GB I'm all for it!
Peter
PS = Read up on genetic based program evolution - because software does come out of fresh air just like plants, animals, and life itself!
3. Stuart Fawcett
It’s a great idea that well written compact code will replace the forever inheriting model of fossilised old functions buried deep inside subsequent layers of error prone calls and bad exception handling. Maybe cheap outsourcing has given us this opportunity of professionally rewriting multiple layers of code in gone go using best practice patterns and then fully testing it.
But I think the real business driver is that of efficient components intended for virtualised environments where thousands of users use the same code and so a 10% improvement in efficiency allows 100’s more users to be provisioned on the same hardware. Similarly smaller storage foot prints for equivalent data really mean faster access again allowing one service to be quicker than its competing service. Previously databases were analysed for bottlenecks and slow procedures, now its pertinent to do the same for the whole OS as its to be delivered in the cloud in a shared environment.
I too applaud the drive for stability and speed by what ever means it arrives. E.g Microsoft recent XML office storage over previous methods is certainly a worthwhile improvement on both size and accessibility.
4. anonymous
Let's hope that Peter is right and we can look forward to be able to use the increased power of our new PCs at last.
For too long the hardware designers have been striving to increase the power of their product, only for the software designers to soak it up again, so that at the end of the day there is no real gain in performance.
5. Targ8.com
where do I sign? I use more online apps like screentoaster to capture desktop stuff and dont even install the software. More apps like this please.
6. John Sniadowski
There is another important implication to what Peter is talking about and that is security. The so called attack surface profile of any application can be improved by getting rid of unused features.
Many of the recent security attacks we have seen are on esoterical functions. So the obvious equation is the more complex the code the larger the number of attack possibilities.
Getting rid of the nonsense virus scanners will help reduce that hotplate Peter has on his lap! and give back loads of system resource!
7. anonymous
Growing up as a programmer with 64K of memory to play with, there was plenty of incentive to keep it efficient and small! With huge object libraries and massive increase in storage and program memory available there is no such incentive these days. Hence we get "lazy" profgramming, with no concern of optimising libraries and removing unused components to reduce "bloat". This has always up to now been the case supporting MS and Intel and Apple in the hardware and software upgrade race as one needs the other, etc. Maybe a recession will make people look at the costs of using and maintaining software;if users start to demand slimmer software with fewer demands on hardware...but we've got Linux and that could be an ideal operating system to fit the bill....but no applications means most are stuck with MS...
8. Martin Daly
Peter,
I imagine that almost everything can be made more efficient one way or another.
However the near 50% saving in Snow Leopard is in no way whatsoever linked to efficiency, merely deleting binaries for a no-longer supported chip architecture.
If you were already on an Intel Mac then you have gained some disk space, but not much else. If you were not on an Intel Mac, then tough luck.
I very much look forward to the day when seriously useful and complex computer programs write themselves. I'll be watching while hovering above my computer on my personal jet pack.
Martin
9. Peter Cochrane
Stuart = We have had hundreds of years building physical things form individual components. In fact we can build ultra-reliable hardware systems from cheap and unreliable components.
In complete contrast software development is still in its infancy and we have a long way to go. It also has a few features in the realm of complexity we still fail to grasp.
Keeping it all simple, clean and efficient is a good start though!
Peter
10. Peter Cochrane
Anonymous = Right on! Peter
11. Peter Cochrane
John = Spot on + a likelihood of exposure for inbuilt backdoors and the like. Peter
12. Peter Cochrane
Anonymous = I remember those days well - 'don't use memory unless it is vital' was the war cry. And for a time it actually worked well, but then we started to use memory in new ways that had never been considered by designers before...Peter
13. Peter Cochrane
Martin = Not strictly true! Apple have obliterated a huge block of Power PC code, and then gone through some of the 'clumsier areas' to do it better. But then the Apple code started in pretty good shape because it has a UNIX lineage.
The more visible impact is in cleaning up the GUI in many areas, making it slicker, and making it faster. Do some tests, you will find speed increases between 0, 25 and 50%. Peter
14. Martin Daly
Peter,
The size of an operating system (or any program) on disk - and the number of lines of code - bear no relation whatsoever to it's resource (CPU, RAM) usage, or efficiency.
There are extremely large and complex programs that are efficient; extremely small and simple ones that are inefficient; and all points in between.
You might as well use price as the metric: that would be just as nonsensical.
Martin