What's holding software back?

I recently downloaded and ran a 1981-era copy of VisiCalc. The VC.COM file weighs in at less than 28KB, which, as co-creator Dan Bricklin says, is smaller than many GIF and JPG files on today's Web.

Recounting the birth of the spreadsheet, Bricklin makes several other cogent observations. The essential nature of the spreadsheet, he rightly notes, has changed very little in nearly a quarter century, from VisiCalc's introduction in 1979 to Microsoft Excel's 2003 upgrade. Perhaps equally remarkable is that VisiCalc can still run on today's computers -- in a DOS box on Windows Server 2003, for example.

Curmudgeons love to pounce on these facts as evidence that we've squandered the riches bequeathed to us by Moore's law. Compared with a 1981 PC, a modern one is 500 times faster, has 2,000 times as many transistors, and can store 8,000 times as much data. It would be hard to argue convincingly that Excel 2003 surpasses VisiCalc by these orders of magnitude. Even so, few would choose to go back. Software advances at a different rate, but it does move forward.

It's not the rate of advance that worries me so much as the method of propulsion. The arc of software progress is defined not by increasing speed or capacity, but by the growing complexity of the data, events, messages, and relationships flowing through software systems. We deal with that complexity by layering abstractions on top of abstractions. A file system abstracts block device drivers; the Java and .Net virtual machines abstract CPUs. It's a brilliant strategy. We get to focus on the higher-order abstractions and pretend that the primitive ones don't exist. But in reality they still do. Nothing that's been hidden ever really goes away. And when abstractions leak, as they always do, things can get messy.

Recently, while working with the latest versions of Windows Server, Exchange, Office, SharePoint Services, and Live Communication Server, I ran into a classic leaky-abstraction problem. As has often been the case throughout the years, it had to do with IIS and security permissions. Back in the '90s, there was already confusion between lower-level permissions applied to the NTFS (NT File System) and higher-level permissions that were defined in the IIS metabase and that governed virtual Web sites. The new century brings another level of abstraction: .Net. After checking all the usual suspects, I remembered that the service giving me trouble -- SharePoint -- is based on ASP.Net. In that realm, there's a new layer of security permissions that segregate sets of .Net assemblies into trust zones. These permissions are declared in a file called machine.config, and it was there that I found and fixed the problem.

This isn't just a Windows phenomenon, of course. Every major software system has, at its core, what Dave Winer likes to call a lizard brain. The roots of Linux reach down through many layers to its lizard brain. Mac OS X archeologists can explore not only that same deep history but also a parallel 15-year NextStep legacy. Every software architect longs for a chance to reorganize -- or as they like to say, "refactor" -- to a simpler and stronger foundation for new layered abstractions. Few organizations have the resources to maintain and evolve a working system while mercilessly refactoring to produce its successor. Microsoft is among the lucky few. We'll see, in a couple of years, how well Longhorn has exploited that rare opportunity.

Join the newsletter!

Error: Please check your email address.
Rocket to Success - Your 10 Tips for Smarter ERP System Selection
Keep up with the latest tech news, reviews and previews by subscribing to the Good Gear Guide newsletter.

Jon Udell

Show Comments





Back To Business Guide

Click for more ›

Brand Post

Most Popular Reviews

Latest Articles


PCW Evaluation Team

Louise Coady

Brother MFC-L9570CDW Multifunction Printer

The printer was convenient, produced clear and vibrant images and was very easy to use

Edwina Hargreaves

WD My Cloud Home

I would recommend this device for families and small businesses who want one safe place to store all their important digital content and a way to easily share it with friends, family, business partners, or customers.

Walid Mikhael

Brother QL-820NWB Professional Label Printer

It’s easy to set up, it’s compact and quiet when printing and to top if off, the print quality is excellent. This is hands down the best printer I’ve used for printing labels.

Ben Ramsden

Sharp PN-40TC1 Huddle Board

Brainstorming, innovation, problem solving, and negotiation have all become much more productive and valuable if people can easily collaborate in real time with minimal friction.

Sarah Ieroianni

Brother QL-820NWB Professional Label Printer

The print quality also does not disappoint, it’s clear, bold, doesn’t smudge and the text is perfectly sized.

Ratchada Dunn

Sharp PN-40TC1 Huddle Board

The Huddle Board’s built in program; Sharp Touch Viewing software allows us to easily manipulate and edit our documents (jpegs and PDFs) all at the same time on the dashboard.

Featured Content

Product Launch Showcase

Latest Jobs

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?