The 1990s was, for the most part, an auspicious decade for programming languages. We witnessed the freezing of the ISO C++ Standard an event which often seemed as likely as the freezing of Hell itself. Standardization has been a good thing for C++; it is now virtually guaranteed to have a long and productive life. Meanwhile, what had to be the non-event of the 1990s was the freezing of a new C Standard, which will probably be known as C99. The news about C99 has dawned upon us with all the fanfare of a warm front. In saying this, I am not putting down the users or the caretakers of C. It is a tribute to the C standards committee that they completed C99 on time, and without any major bloodletting. Quite simply, these are people who know what works, and they know what is needed in a programming language. Standardization ought to appear boring from the outside. When it doesn't, it usually means that the process has gone awry.
With C99, Standard C begins to step out of its ill-deserved position as "a subset of C++." There used to be a handful of constructs that would compile as C but not as C++. Now there are considerably more. However, much of the new stuff in C is confined to the fairly specialized area of numerical programming. C may be growing a few branches, but it still constitutes the roots of the C/C++ tree.
A few years ago the C standards committee considered adding classes to C. They eventually decided and wisely, in my opinion to let go of that gordita. I think it would have split C and C++ irreparably, not to mention their respective user groups. I do not believe in competition among programming languages. I deliberately distance myself from efforts to establish the dominance of C++, or any other language. But for people who care about such things, I will say that any fractiousness between C and C++ is a prescription for the success of Java, or some yet-to-be dreamed up language.
Speaking of which, Java may need a whopping big prescription to survive its handling by Sun. As I write this in early December, Sun has had a falling out with ECMA, the organization that was to write the Java standard. They have refused to let ECMA look at the technical specifications for Java, throwing up a smokescreen about copyright issues. Kinda makes you wonder what medication they're on over there at Sun. They couldn't get along with ISO, now they're seriously irritating ECMA. I don't mean to cause undue alarm, but we are running out of standards organizations here. Sun, with its proprietary stranglehold on Java, is vying to become the Apple Computer of the new millennium.
Maybe by the time you read this, Sun will have come to its senses and let ECMA proceed with standardization. I certainly hope so. Java is too nice a language to flush down the proprietary toilet. As it stands, what we have in Java is a proprietary language, and a library growing as incoherent as the Windows API without the market share that lets Microsoft get away with it.
The 1990s was a mostly auspicious decade for programming languages. C and C++ both got shiny new standards. There is still time for Java to be standardized before developers turn to something else. Let's hope that Sun decides to join the party. We are not going to wait around forever.
Marc Briand
Editor-in-Chief