Why software still sucks

The subject is software quality, and Jaron Lanier is on a roll. Sitting in a small cafe just off West Broadway in New York’s Tribeca neighborhood, Lanier takes on the issue that has been vexing him for well over a decade: At a time when hardware design is getting more and more advanced, why is software design still such a chaotic mess?

The subject is software quality, and Jaron Lanier is on a roll. Sitting in a small cafe just off West Broadway in New York’s Tribeca neighborhood, Lanier takes on the issue that has been vexing him for well over a decade: At a time when hardware design is getting more and more advanced, why is software design still such a chaotic mess?

Our conversation touches on everything from the power of the free market to the unrecognized complexity of software engineering. Still, Lanier seems unsatisfied. Brushing his trademark dreadlocks off his shoulder, his cobalt blue eyes become a deeper shade of unnatural as a smile finally flickers across his face.

“Maybe we have a language problem,” he says. “Instead of talking about software, we should be talking about different entities. Just like we have language, but then we also have poetry, drama and rhetoric. Maybe what we really need is just different categories of software that are handled in such utterly different ways that we don’t even use the same word to describe them.”

It’s an interesting insight and a typical one from Lanier, a thinker who specializes in poking his head above the system and taking a look at things from the meta-level.

Software lament

Best known for his pioneering work in the realm of virtual reality — a term Lanier helped coin in the early 1980s — Jaron Lanier has spent the past decade honing his post-modern resume. When he isn’t working on his music — recent collaborators include electronica artist Sean Lennon and minimalist composer Terry Riley — Lanier has managed to stay active in the technology game, working on such cutting-edge projects as the Tele-Immersion Initiative and Internet 2, an experimental, high-bandwidth successor to the current Internet.

He’s also taken time to pen a number of articles and essays documenting what he considers the ongoing “software crisis,” the most visible of those essays being “One Half of a Manifesto.”

Originally written for a German newspaper, Lanier adapted it for the culture site Edge.org, stimulating an online celebrity intellectual debate which has attracted the likes of physicist Freeman Dyson, science fiction author Bruce Sterling and folk singer Joan Baez.

Framed as a response to the growing raft of essays and books proclaiming the manifest destiny of computer-based sentience, “One Half of a Manifesto” — or, as Lanier prefers to call it, the “.5 Manifesto” — is really a disguised lament over the current woeful state of software development.

“The hardware side of computers keeps on getting better and cheaper at an exponential rate,” writes Lanier. “[But] this breathtaking vista must be contrasted with the Great Shame of computer science, which is that we don’t seem to be able to write software much better as computers get much faster.”

In the essay, Lanier takes a few digs at the open source community. Although an admitted fan of the open source development model, Lanier considers open source technologies such as the GNU/Linux operating system a prime example of how legacy software design — in this case, the 30-year-old Unix operating system model — imposes its will on even the most cutting-edge software systems.

“How I hated Unix back in the ’70s — that devilish accumulator of data trash, obscurer of function, enemy of the user,” he writes. “If anyone had told me back then that getting back to embarrassingly primitive Unix would be the great hope and investment obsession of the year 2000, merely because its name was changed to Linux and its source code was opened up again, I never would have had the stomach or the heart to continue in computer science.”

Discussing the essay over breakfast, Lanier is much milder. When the subject of open source software development finally comes up, he notes that his aversion to Linux has less to do with the people designing it and more to do with bad memories of trying to build a virtual reality interface on top of its older relative, Unix.

“Don’t get me wrong,” he says. “I really love the open source movement. I think it’s had tremendous achievements. The problem is that I recognized a long, long time ago that there’s this ‘as above, so below’ quality to digital systems. You can’t just slap any arbitrary user interface onto Unix, because Unix dictates its inner self onto all layers that ride atop it.

“I mean, everything in Unix is ultimately based on command line interactions. You can try to overcome that, but it’s very hard. Unix’s whole philosophy on how to do internal management and how to manage timing is based on that set of assumptions, so you have to fight it at a thousand levels.”

Nevertheless, Lanier does see encouraging signs of social evolution within the design communities built up around the Linux kernel and the Apache Web server. Although the architecture may be old, the notion of a thousand-plus programmers writing, reviewing and re-writing each other’s code is an intriguing concept to man who, in a 1993 interview following his departure from Visual Programming Languages, seemed hopeful that the software industry could shake some of its chaotic qualities and move toward more “symbiosis” in software design.

Breaking software apart

The fact that the software industry has become both more symbiotic and chaotic at the same time is one of the reasons Lanier says he has growing trouble with the current definition of software. In a world where everything from infrastructure tools to HTML pages qualifies as software, the ability to apply a single set of engineering principles is lost.

“I think it should be inconceivable that the kind of person who writes one kind of software also writes another kind,” Lanier says. “Basically, if you heard your brain surgeon also had a tattoo parlor, you’d probably demur. Right now we think of them as the same thing. We think it’s perfectly all right for people to go back and forth. I don’t think it is.”

Fragmenting the software definition, Lanier says, would make it easier to apply professional engineering standards to categories where the expressive content of software is low — infrastructure tools for example — while at the same time leaving other designers free to experiment in categories where the expressive content is high.

“The software that runs your pacemaker is not even considered for a moment to be the same sort of entity as the software that you use to write music,” Lanier says. “If your interpretation of software is that it’s like a bridge [and] people need to know what they’re driving on, then yes, a little peer review could help. If you think of software as literature, if you’re somebody like Ted Nelson, say, then what you really want is groups of people who are emboldened to try wild things.”

Suddenly, the smile comes back.

“Maybe that would be a good project, to come up with a new name to try to break software apart,” Lanier says. “Unfortunately, people are really attached to the mercurial nature of software. They like the singularity mentality that comes with grouping it all under one name.”
The conversation inevitably rolls into the topic of DeCSS, the DVD cracking tool which was a cause celebre within the Internet community during the first half of the year.

Where movie studios considered DeCSS to be little more than a digital break-in tool, something like the “slim jim” a car thief uses to unlock your automobile door, protesting hackers went so far as to print the software code on T-shirts in an effort to demonstrate the free speech implications of the court’s decision to enjoin websites from publishing the software program. Could a major court battle such as DeCSS propel this fragmentation of the software definition?

“It’s hard for me to imagine an American court right now understanding that software is expression,” Lanier says. “I think we have a 20- or 30-year wait until we see any useful laws as far as software is concerned. Until then, I think we’re going to have irrational or crappy laws that people wink and work around in order to make their way through life.”

In the meantime, Lanier says he does see encouraging signs. He sees the open source design process as compatible with the different development models, both the centrally designed software guided by rigid engineering standards and a decentralized, more evolutionary form of software design guided by the free market.

“It’s almost an orthogonal question,” he says. “I think you could have open source movements that, through a peer review system, adhere to the strictest, most anal-retentive quality control program as well as open source projects that function in a perpetual state of redesign. Both are entirely doable.”

Potential for quality

Regardless of the approach, however, Lanier says his purpose in writing essays such as the “One Half of a Manifesto” is to force engineers in both the proprietary and open source development camps to recognize that the issue of software quality has taken a back seat during the past decade. Whether this is due to sheer laziness on the part of programmers in response to faster and cheaper hardware systems or simply a fundamental blind spot in the software design community, Lanier isn’t sure.

What he is sure of, however, is that the current technology mindset, which sees intelligent machines as a foregone conclusion within the next 20 to 30 years, isn’t taking into consideration the very real problems associated with software design in the year 2000.

Imitating the Moore’s Law extrapolation exercises of his intellectual sparring partners, most notably Ray Kurzweil, author of “The Age of Spiritual Machines: When Computers Exceed Human Intelligence” (Viking), Lanier predicts a world in which every living person on the planet is employed in some sort of a software help desk role.

“I don’t think humanity knows how to make software yet,” Lanier says. “Let me just say that boldly: I don’t think humanity has figured out the trick of how to make software. We don’t know what we should do together to do this, and we don’t know what procedure to follow.”

Again, Lanier says, the overall vagueness of the term “software” is both a reflection and a source of this cultural naïveté. Short of coming up with a new definition, the only hope for improvement is to shove developers’ noses in the problem until they finally get the point.

“I’m an enthusiast of the potential for quality,” says Lanier. “It’s sort of a faith with me. I don’t know if it’s possible, but I’d like to try. Measure it on those terms, and there ain’t no Moore’s Law going on right now. There’s only stagnation.”

Author: Sam Williams

News Service: Upside Today

URL: http://www.upside.com/Open_Season/3a3661271.html