Tuesday, April 22, 2008

The Aesthetic Debate Behind the Microsoft Trial

Newspapers have reported the news that the government wants to divide Microsoft in two because the government contends it has been a bad corporate citizen. But computer programmers understand that there is more to this issue than corporate greed and monopolistic practices. There is a larger debate here—this is the argument whether to use Microsoft tools or tools from anyone else when writing programs for the Internet. More is at stake here than whether Microsoft should remain in tact or be divided up wholesale. There is an artistic and aesthetic argument about whose software is more elegant and, consequently, what software should be used to write programs for the Internet. Finally there is the issue of whether we should import foreign workers who understand all this stuff.

On one side of this debate are the Microsoft devotĂ©es and their practitioners. Sounding like Microsoft public relations folk, these Microsoft proponents worship all that emanates from Seattle, Washington. Chant: Microsoft, Amen, Microsoft, Amen. Unwavering in their enthusiasm for the all-Microsoft solution they are like the IBM proponents of the 1980’s. Are you old enough to remember those days? Back then most information technology workers used Big Blue mainframe hardware and tape-drive software and would not consider anything else. If Tom Watson’s IBM had not fallen apart we might still have punch cards and monochrome screens. Those wonders of yesterday seem positively silly today. Imagine what the computing world would look like without the Microsoft monopoly.

Lined up in opposition to Bill Gates and crowd are the advocates of the Java programming language and the UNIX operating system. This opposition is usually led by it’s most vociferous spokesmen Scott McNeally of Sun Microsystems and Larry Ellison of Oracle Corporation. They are allied in their argument that Microsoft should be chopped up into competing software companies.

Microsoft’s main programming language for Internet programming is Visual Basic. This computer language in it’s simplest form is quite easy to understand and is thus suitable for the masses. It’s popular appeal lies in it’s ease of use. Visual Basic today is like COBOL was in the IBM heyday—it is a programming language that can readily understood by the run-of-the-mill programmer. Likewise, ease of use is supposed to be the raison d’ĂȘtre for the Windows operating system. Borrowing ideas created by Xerox and perfected by Apple, Microsoft Windows is easy to use because it is a point-and-click operating system.

At the other end of the programming spectrum in the non-Microsoft diaspora are those programmers who embrace Sun’s Java programming language, AT&T’s C++, and AT&T’s UNIX operating system. Yes, this is true. Scientists at Ma Bell developed the C++ language and the UNIX operating system, two widely used tools in today’s Internet economy.

Java, C++, and UNIX are much different from Visual Basic and Microsoft Windows mainly because they are complex and subtle as opposed to dull and brutish. Yet this complexity is not simply a barrier which is erected to keep the unenlightened at bay. Rather it includes an elegance that is sublime the mastery of which produces software that works quite well for very large-scale systems and has a rich array of capabilities. You can develop a web site using Visual Basic and Windows NT or you can use Java, C++, and UNIX. The end product might be nearly the same. But the distinction is the difference between, say, the distributive property of addition a+b=b+a and Fermat’s last theorem. Both assertions are equally important but the latter has been the subject of greater intellectual scrutiny.

That software engineers could attach an artistic appeal to highly technical programming languages runs counter to popular convention. These pocket-protector-clad scientists are supposed to be devoid of literary or artistic interests. The 1’s and 0’s of their arcane minutiae are supposed to be hopelessly dull. But there is great beauty in a tightly written algorithm. Something clumsy and dull written in Visual Basic— for example “for i = 1 to 3…next i”—can be expressed as a compact single statement in C++ “while *a++ != ‘\0’”. While this syntax is cryptic it gets the job done albeit with much more elegance and style.

The prevalence of Java, C++, and UNIX might explain why there are so many foreign computer programmers in the United States. It might be true that the typical H1B visa programmer is paid less than his American-born peers and that it why corporations prefer them. But it might also be true that only the Indians, Filipinos, and Chinese have been schooled since high school in the rigorous math, philosophy, and abstract reasoning that is required to understand complex computer concepts associated with Java, C++, and UNIX. These school systems tend to stress the basics while our schools experiment with cultural relativism and all that entails. Consequently, the less well-educated American is more comfortable with Microsoft’s Visual Basic and it’s brute force approach to problem solving. Of course there are plenty of domestic software engineers who understand Java, C++, and UNIX. But the computer industry itself says we don’t have enough of them and wants to lift immigration caps.

The debate rages on. Should corporate information technology departments embrace the clumsy Microsoft software monopoly and staff their teams with graduates of technical schools like The Computer Learning Center? Or should we use Java, C++, and UNIX and continue to import legions of well-educated foreigners who can understand the more heuristic approach. Standing juxtaposed we have the Microsoft fans—the great unwashed masses—versus the Sun and AT&T programmers—the intelligentsia.

No comments: