There is a painful moment in programming, when you realize that the design underlying your system the basic architechture will not support what you want to do. There are usually some telltale signs. The API you thought you knew so well feels increasingly alien and cumbersome. Every new function you write seems to require a longer parameter list. You realize, sometimes in a flash, that you must either go back and refactor the design, or abandon the project.
There is a similar phenomenon in the magazine business, and it is one facing CUJ at present. I have some bad news to report, and I won't sugar-coat it: CUJ is losing two columnists, Dan Saks and P.J. Plauger. The first question you may ask is, "what on earth is going on over there at CUJ?" Well, life is what's going on, for both Dan and for Bill (Plauger), and sometimes life just isn't predictable, though the circumstances are somewhat similar for both men. Both have written for CUJ for many years in Dan's case, rarely missing an issue; in Bill's case, simply never. Some might accuse CUJ, and perhaps with some justification, of unwittingly tapping these authors dry. Monthly deadlines take their toll. If you think pulling overtime to meet a ship date is rough, imagine having to do a new major release every month. This does not mean that Dan and Bill will never write another article for CUJ. But I think they would both say that they have given all they have to offer as columnists. Sometimes you get a revelation, you just "know" it is time to move on. I just wish Dan and Bill could have scheduled their respective epiphanies a little further apart.
I don't have enough space here to list all the contributions Dan Saks and P.J. Plauger have made to this magazine, not to mention to the programming profession as a whole. Dan has always been like a voice of sanity in a wilderness of hype. While others jumped on the gravy train writing about the latest cool thing (OO, namespaces, STL, you name it), Dan quietly showed us what we needed to know before we could use these solutions effectively. It takes guts for a columnist to say "eat your peas" when readers want to get along to dessert. I will always admire Dan for it.
Bill has been a tireless promoter of programming language standards, without which there would be no C or C++ as we know them. Without which, a magazine on C/C++ would be pointless as well. As a standard library implementer, Bill has given us deep insights into the nature of standards how vital they are, and yet how notoriously imperfect and incomplete. And Bill showed us that implementers aren't perfect either, by openly discussing the bugs in his own libraries. That takes guts too, and good bit of generosity. Perhaps nothing is as instructive to novices as learning from a master's mistakes.
It has long been my experience in life that when one door closes another one is just about to open. I think that is the case with CUJ. It is not time to abandon the project, but it is time to do some refactoring. Bill has graciously agreed to stay on as Senior Editor, while I put together an editorial board. I look forward to this board bringing interesting new people to CUJ, along with fresh perspective. Likewise, although Dan and Bill's departure leaves a temporary hole in CUJ's editorial, it also makes room for new writers, who may have invaluable gifts to bring as columnists if only given a chance. There are plenty of interesting things to write about, and there are plenty of talented people out there to write about them. But I will level with you: at times like this I feel like the beleaguered programmer, redesigning his code from scratch. This may just take some guts on my part as well.
Marc Briand
Editor-in-Chief