As CUJ's new Editor-in-Chief, I'd like to clear up something that may have caused some of you concern: the theme of the January issue was Java, probably the first time we've devoted an issue to a new language. What's Java doing in a C/C++ magazine? Glad you asked. It gives me a chance to reassure you that I've not gone mad and thrown CUJ's compass overboard. In fact, the rapid rise of Java has caused us to do a lot of soul-searching here. Following is a description of the outcome, and some of the thinking that contributed to it.
First, the outcome: We are and will remain a C/C++ magazine. We're not going to become C/C++/Java Users Journal (though it would strengthen our claim to world's most unpronounceable magazine title). Still, the temptation to give Java equal footing in CUJ has been strong: Java is hot, and, more to the point, a lot of our readers are using it. Java is object-oriented, and C++ is, well, sort of object-oriented. Like C and C++, Java is meant to be portable. Add to this the mantra "similar syntax," and you have a pretty persuasive package.
Why not a C/C++/Java magazine, then?
First, the reasons above just don't cohere into a central, compelling whole. Second, there doesn't seem to be much synergy between programming in Java and programming in C/C++. C programmers can slip into C++ (sometimes without knowing it), building directly upon their knowledge of C. Moving between C/C++ and Java, however, requires both a mental and physical translation not what I call synergy. (For an example of the translation involved, see Danny Kalev's article, "Porting a C++ Application to Java," elsewhere in this issue.)
Finally, at a deeper level, Java seems to have a different spirit than C/C++. C and C++, for example, assume that: efficiency matters; you shouldn't have to pay for what you don't use; you should be able to get "close to the machine"; you are to be trusted to know what you are doing, even if you end up blowing your leg off.
Contrast this with Java, which won't even let you take out your own garbage! This last bit about blowing our legs off sometimes makes us all wish for a language with more built-in safeguards, like Java. But for the most part, readers of CUJ are people for whom the benefits of such freedom far outweigh the risks. And contrary to popular lore, you don't have to be a wizard to write safe C++ code. What you do need is discipline, mainly to understand what you are doing at one level of complexity before moving on to something more ambitious.
So part of CUJ's mission is to help C/C++ programmers follow a sane path in the development of their own C/C++ programming expertise. That might involve helping them go back and fill in the pieces that they don't (but should) know. Or it might mean showing how to leverage the standard libraries and proven idioms, as opposed to reinventing the wheel. We won't ignore Java it's probably here to stay and it will probably meet up with C/C++ in all sorts of interesting ways. But the developers we serve treat a programming language as something more than just another tool to get the job done. They want to get the most out of C and C++, and they're willing to take the time to do it. They deserve a magazine that is as focused on C and C++ as they are: C/C++ Users Journal will continue to be that magazine.
Marc Briand
Editor-in-Chief
mbriand@mfi.comP.S. The World Wide Web has made reader service cards obsolete, so we've stopped printing them. You'll find links to our advertisers' websites at www.cuj.com.