Attendance was down at the Software Development trade show, the traditionally premier event for software developers, which was held this past May in San Francisco. Fewer vendors were there as well, and it was all too easy to stumble past the curtain bounding the show floor, to stare up at the vast unused spaces of Moscone Convention Center. Columnist Bobby Schmidt takes a couple guesses on page 89 as to why this show was so small. My own take is that, for the first time in years, we are sorely lacking a Next Big Thing to get excited about. C++ has been standardized. Java is old hat. Windows 2000 is, as of this writing, still off in the murky distance. XML is a cool thing but falls short of being a Next Big Thing. Everything in software development is still evolving, but nothing is currently Exploding or Emerging. However, for a more upbeat view of the show, see Stan Kelly-Bootle's column at the back of this magazine. (That's one thing I like about Stan. As a person who's seen it all, he can remind us not to take life so seriously.)
In my tireless attempts to put ye proverbial thumb to the pulse of the industry, I attended a few panels and classes. One of them was a panel named "Java 2: Platform or Promise," a sort of state-of-the-Java forum held for serious and casual pulse checkers alike. The big guns of Java were well represented, by panelists from Sun, Borland (Inprise), Symantec, and Oracle. Frankly, panels like this one, in which everyone talks the party line, are usually big yawners. But sometimes I go anyway in case someone drops a tidbit of gossip.
Here's the official word from the panel: applets are dead; servlets are where it's at. Java-to-native compilation is near-dead as well, at least on business systems; but it may still catch on in the embedded world. I felt disappointed by this consensus, because I'm one of those people who appreciate Java more for its neatness as a language than its cross-platform capabilities. I acknowledge that compiling Java to executable/DLLs is problematic we're just not ready for the 10 MB "Hello, world" application. But I still hold the torch for an object-oriented language that's as fast as C++ yet not so darned complicated. (Is that Stan I hear whispering, Eiffel?) Call me a heretic if you will. I prefer the word "pragmatist."
The panel on "Teaching and Learning C++" was anything but a yawner, thanks to our own Dan Saks, who bravely challenged the party line held by fellow panelists Bjarne Stroustrup, Scott Meyers, and Jim Coplien. You can read Stroustup's view in the May issue of CUJ. See his article, "Learning Standard C++ as a New Language." Stroustrup advocates early use of high-level libraries in teaching C++, using the abstraction thus afforded to protect new programmers from a morass of low-level details. He reiterated this view on the panel. Dan had something of a tough row to hoe, being not so much a celebrity as Stroustrup or Meyers (sorry, Dan), and being the only panelist to ask questions like: "what happens when new programmers stumble past the curtain of abstraction which they inevitably will and are exposed to the gory details anyway?" I'm hoping Dan will write an article about the panel, so I won't elaborate on his viewpoint here. I'll just say that Dan, who has nearly a decade of experience teaching C++, is eminently qualified to raise such questions.
The last session I attended was a class on effective use of RTTI (Run-Time Type Information) taught by Steve Dewhurst. Dewhurst presented several examples that looked like good uses of RTTI, then showed why they really weren't. The gist of his talk was that if you think you need RTTI, you're probably doing something wrong. I can't say I disagree. In our own Call for Papers we've practically begged for articles showing effective use of RTTI; I'm still waiting for a credible example. However, I haven't given up. If you think you've got an example, send an email to mbriand@mfi.com. There may still be a few surprises left in this language called C++.
Marc Briand
Editor-in-Chief