Вы находитесь на странице: 1из 3

THE LANGUAGE BARRIER

The inventors of JAVA and C++ have very different ideas on how programming
languages should evolve.
June 1, 1998

Computer programming languages are mystifying. Comprising a baffling assortment of brackets,


back slashes, and abbreviations, they somehow allow a software engineer to build applications like
word processing or spreadsheet programs. To the PC user, the engineer's tools have always been
invisible.

A classic example is C++. Although the average user has never heard of the programming
language, many applications currently running on personal computers--and even the basic
technology behind a toll-free telephone call--were written with it. By contrast, very few of these
applications were written in Java. Why, then, has everyone heard of Java?

The answer has partly to do with the different philosophies of the two languages' developers. "I
don't like hype," says Bjarne Stroustrup, the man who invented C++. Apparently not. The evolution
and development of C++ is a testament to this dislike. Though invented within the walls of AT&T's
Bell Labs, C++ was wrested from corporate control by Mr. Stroustrup and offered as a free tool to
software developers. In stark contrast to the quiet ascendancy of C++ (which boasts nearly 1.5
million developers) is the noisy upstart Java (with which 700,000 to 1 million developers are
estimated to work), a programming language owned by Sun Microsystems that has been positioned
as a computing platform, an operating system, a Microsoft beater, and practically the solution to
world hunger.

Given these differences, the Red Herring went to Mr. Stroustrup and James Gosling, the
creator of Java, to find out if hype and corporate interests are at all compatible with the
successful growth of a general-purpose programming language.

Virtual Hype-nosis
It is a testament to the ingenuity of Sun's marketing department that Java, a mere programming
language, has penetrated the consumer consciousness with such force. Barely four years old, it has
been dressed up by Madison Avenue and championed by Palo Altobased Sun as the necessary
linchpin for the next generation of networked computing.

This positioning is unprecedented. Predecessors like C++, Cobol, and Fortran have always operated
unseen by the public eye. And that's the way it should be, according to Mr. Stroustrup, now an AT&T
fellow and head of large-scale programming at the New Jersey based telecommunications giant. "If
you know what language you are using, there is something wrong," he says. "You shouldn't be able
to tell."

In fact, when Mr. Stroustrup began introducing C++ to developers in 1983, his efforts were so
understated that he couldn't even figure out how to spend AT&T's marketing budget of $5,000. "We
probably spent a thousand bucks just figuring out what to do with the money, we spent $3,000 on a
very nice reception at a C++ conference, and then we gave the last $1,000 back," he recalls.

But with Java, Sun recognized an opportunity to let everyone know what language they were using.
The company's efforts gained momentum from the rise of the Internet, the proliferation of
consumer devices, and anti-Microsoft sentiment. Sun claimed to have a programming language that
empowered developers in a way no language had before--a language in which developers could
write programs that could run anywhere, regardless of platform and microprocessor.
Mr. Gosling began to see the need for such a language as he watched the evolution of consumer
electronics through the early '90s. Unlike in the PC business, where Intel is king, the rising number
of consumer electronics products featured various chips with varying architectures. "We talked to a
lot of different companies to tally up the number of different CPUs that people had," Mr. Gosling
says. "It was a big number, and a lot of them were just really funky custom CPUs that companies
had built for their own products."

As a result, each product required its own distinct software, and the software markets splintered, to
the detriment of developers. "There were so many different kinds of CPUs," Mr. Gosling says, "yet
you needed to be able to provide software developers with a market that was big enough to be
profitable."

Mr. Gosling soon recognized the value of a programming language that would allow developers to
write programs that were immune to the quirks or constraints of a given microprocessor. "The way
we thought about Java in this consumer marketplace was that we could take a bunch of small
markets and unify them into one larger market," Mr. Gosling says. As the Internet gained popularity,
the idea started to make even more sense.

But while the success of Java's brand penetration is difficult to dispute, the language's broader
implications and overall success have yet to be measured. Because Java is young, much technical
evolution still needs to happen. More importantly, Java will have to endure countless political battles
because of its tricky association with Sun. Sun wants Java to be open and standardized, yet the
company controls Java and is the final arbiter when it comes to decisions about the language.

Bjarne free
Far from the hype of Silicon Valley, Mr. Stroustrup is deeply skeptical of Sun's stewardship of Java.
In 1979, when he began working on C++, Mr. Stroustrup pleaded with AT&T to forgo the
commercialization of C++ and unleash it as a free language for programmers. "I've never liked
proprietary languages, and I took great care with C++ to get it out from any possible direct control
by AT&T," he recalls. "You can't entrust one person or a corporation with the control of a language.
You need an open forum for discussion. If I'd gotten together with some guys from IBM, Digital, and
Hewlett-Packard to decide what C++ should look like, that would not have been good." (Many of Mr.
Stroustrup's views concerning C++ come from sources that are surprisingly non-technical. In
particular, he doffs his cap to a fellow Dane, the philosopher Sшren Kierkegaard.)

Mr. Stroustrup, a technology purist (he chooses not to start his own company because "you get too
far away from the technology"), believes that no matter how open a corporate language claims to
be, it will inevitably "exclude people who don't play by the same rules" as the corporate owner--and
those rules may not be in the best interest of the language's evolution, he says. He points proudly
to the November announcement by the International Standards Organization that recognizes a
standard form of C++, agreed upon by hundreds of companies and countless individuals in nearly
25 countries. The entire process, he says, was driven by a desire to improve the language and the
applications it can build. Absent from the process was an entity with a vested interest. Mr.
Stroustrup emphasizes that it was crucial that even he not have excessive control over the language
he created.

Custody battle
Not surprisingly, Sun contends that a proprietary language can likewise achieve wide acceptance
through a collective effort. "We've done a huge amount of work with people on the outside, and
developing all of this stuff has really become a community effort. This is why Java has been
maturing very, very quickly," Mr. Gosling says. "We are simply coordinating it more than anything
else." But the disputes with Microsoft and the recent announcement that Hewlett-Packard is
developing its own Java virtual machine show that, despite even the noblest of intentions, corporate
ownership of a so-called open language can lead to thorny standardization issues.

Mr. Gosling is apparently resigned to perpetual squabbling with Redmond. "Nobody can control
Microsoft," he concedes. "We have a certain amount of control through our contract with them, but
we depend on people embracing the spirit of this thing and working in good faith--and that's not
been Microsoft. So now we're in court."

No competition
As for the future coexistence of C++ and Java, Mr. Stroustrup and Mr. Gosling both believe that the
two languages can live together. While Java grabs the headlines, Mr. Stroustrup says the C++ user
population has grown at a consistent annual rate of 15 to 30 percent since the early '90s. And while
many observers like to pit the languages against each another, Mr. Stroustrup declines to comment
on Java's technical specifications. He shows only marginal interest in Java and maintains that
programming languages "do not compete as much as people think." He is more concerned with the
gradual perfection of C++: "A living language continues to evolve. And you want an evolution that
continues and maintains compatibility with the older aspects of the language. Some of my early
C++ programs are still running today. That's a very big deal to me."

As for Mr. Gosling, he maintains that Java is now arriving with full force. He says early bugs have
been fixed, functionality has been expanded, and security is no longer a concern. He also claims
Java is cutting the time it takes to develop applications in half. (Many Java developers cite the same
practical advantage; see "Losing Its Religion".) This alone, he says, "is really waking up some pretty
conservative IS managers."

If one is to believe Mr. Stroustrup, a language ripens over time in a process that is driven by a
consensus among disinterested parties. Sun obviously hopes to see Java flourish over the coming
years through a consensus of the growing number of developers who use it. But the trick for Sun
will be to recognize when its own corporate interests diverge from those of Java and its evolution.

Вам также может понравиться