Journal Articles

CVu Journal Vol 15, #6 - Dec 2003 + Journal Editorial
Browse in : All > Journals > CVu > 156 (7)
All > Journal Columns > Editorial (221)
Any of these categories - All of these categories

Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.

Title: Editorial

Author: Administrator

Date: 09 December 2003 13:16:01 +00:00 or Tue, 09 December 2003 13:16:01 +00:00

Summary: 

Body: 

2003 in ACCU...

It's been another interesting year for ACCU. Another fine conference, the publication in affordable book form of the latest versions of the C and C++ Standards, a new chairman, new treasurer, a healthy membership including increasing numbers outside of the UK, continued activity in the various Mentored Developers projects, and I'm sure I'll owe apologies to many people for omitting their contributions. I'd like to offer my personal thanks to all those whose contributions in the past year have made ACCU such a worthwhile organisation. With a web site redesign underway and other changes planned or happening, 2004 looks set to be yet another interesting year.

Where Will C++'s Successor Live?

Like many of you reading this, my interest in programming languages extends beyond learning how to use them as tools to do the job of a software developer. Programming languages evolve just as natural languages do. Well, maybe not "just as" - the evolution is different, being more deliberate, but evolution it still is, and natural selection applies at numerous levels. In their early stages, languages evolve more quickly as experimental features are added, removed, changed, requested by users, and variously found to be flawed, helpful, or irrelevant. Some environments foster change, and others with more concern for the cost of change tend to stabilize languages.

Some years back I found the newsgroup comp.lang.c++.moderated and was pleased to find a community of people whose commitment to real understanding of one language was evident. From posts there I found comp.std.c++, which concerns itself with the standardization of C++ and the evolution of its standard, and after some while I volunteered as a moderator of that forum - I was reading it anyway, so it took little extra time. (If any among you dare to admit to occasionally enjoying a passionate argument about exactly what an rvalue is, or whether #define for if(0);else is really legal (and if that matters), I do recommend a visit to comp.std.c++. Or even if you just want to learn more about C++ than you would ever use in writing production code.)

People who are interested in making C++ better look to see how the future of C++ is being shaped. That means the "C++ Committee", actually a collection of national standards bodies gathered together under the umbrella organisation that is ISO (which is not an acronym, for a change). So, like me, many people find comp.std.c++, or come along to meetings of the BSI C++ Panel, convened by our own Lois Goldthwaite. Indeed the BSI C++ Panel overlaps so much in membership and interest with ACCU that at times it can take a conscious effort to remember that the charters and responsibilities are separate. After a while of looking at the standards process as defined by ISO and its member bodies such as BSI, many of us gain a great respect for all of the work that has gone into ISO standards, and the high quality of those standards when compared to many produced by more commercial processes. We also come to agree with Bjarne Stroupstrup's prediction that the foundation C++ built on in extending the C language would eventually become more of a liability than an asset. Some would agree that we have reached that point. C is a fine language, but trying to stay similar to C prevents C++ from moving forwards in a large number of ways.

The C++ committee is conservative, as befits an ISO standards committee... they're not going to axe the ugly pieces that C++ inherited from C. ISO committees are required to place great weight on respecting existing standards, and on considering the great burden that changes in a widely-adopted standards can place on users and implementers. Even if the C++ standard does mandate a change, some vendors will continue to support the older behaviour for many years to avoid angering their customers. Even writing a compiler that rejects such clangers as "void main" is likely to result in an increase in bug reports from users who don't know the language well enough to understand that the compiler is doing them a favour by telling them of errors in their code.

Various groups, knowing what C and C++ have achieved but mindful of the cost of too much backwards compatibility, have produced new languages based to various extents on C and C++. Examples include D, Java, C#, Managed C++ (and its replacement in a new "binding" of C++ to Microsoft's CLI). Most of these throw away more from C++ than I would, or add too much - the dividing line being that they discard the spirit of C++. Requiring garbage collection is a valid choice for a language, but disqualifies it from use in many environments. Disallowing access to raw memory is a valid choice. Disallowing full-blown multiple inheritance is a valid choice. These valid choices, however, are examples of decisions that (to me) violate the spirit of C++, and it would be possible to write a C++ successor that did not have to make such radical compromises. I would be prepared to argue that C compatibility is only a very minor part of the spirit of C++.

How would such a successor to C++ come to life? I don't know. Java and C# had the backing of huge companies. D has been created by a single (talented) man. C++ came from a small team who managed to flourish inside a large company, and was then opened up and implemented elsewhere. So, I write this with a sliver of a hope that someone reading this, or someone who they speak to, might have an answer and the passion to do something about it. I'd love to see a C++-killer of a language, but I've not seen it yet.

Here's One I Made Earlier[1]

Unlike the creations magically produced by Blue Peter presenters of yesteryear, however, the one I made earlier did not work out so well. In the last C Vu I wrote (quieten down, whoever said "ranted") at some length about the actions that the company Verisign has taken to break the domain name resolution system that is one of the most centralized systems on the Internet. Once again, the Internet shows that the print format is too slow to use to cover news stories. By the time that editorial had gone to print, Verisign had been threatened sufficiently sternly by ICANN, the body responsible for appointing Verisign, that they agreed to a ceasefire, and suspended their practice of returning incorrect results for all unregistered domains in the .com and .net top level domains (TLDs). So, was my time in writing that editorial wasted? (Quieten down again - that was rhetoric.) I think not. One thing that this editorial spot gives me is a chance to raise the profile of issues that matter to me, and that I think should matter to you. If a few more of you take time to check the ethics of a domain registrar before doing business with them, that's a positive effect. If a few people are motivated to act to protect the integrity of the protocols that underlie the current Internet, that's another. If one or two people join the EFF (Electronic Frontier Foundation, http://www.eff.org/, whose aim is to protect "digital rights") as a result of those thoughts, I'm pleased, and I might even be shamed into doing the same. If anyone's still reading at the end of a paragraph this long, it's little short of a miracle. Time for a break.

Do any of us still seek news from newspapers? Recently I realized that I do not. I still read newspapers for in-depth coverage, and sometimes because they condense a wide range of information more concisely than most other media, but for up to date news the first place to look is "online". Sometimes the television networks can be quick, but often the Internet is faster. News web sites are as fast as TV; weblogs are often faster, and realtime chat is faster still, if you can separate the signal from the noise. We have solved the problem of getting data quickly - the pressing problem now is to separate the useful information from the garbage. That applies in many (maybe most?) of the channels from which we might receive information online. Realtime chat is frequently banal, but can be a place to find diverse experts in minutes if you are lucky. Newsgroups are rarely worth the time to read unless they are moderated, though I know that the occasional rare individual who takes exception to the moderation policies of comp.std.c++ would disagree with me. 90% of my e-mail is now spam, though all of the e-mail clients I use can automatically classify the vast majority of that. And the Web? An invaluable source of information, though "surfing" from site to site is now rarely a viable way to find good material, and navigation by search engine is a more common mode of navigation among experienced web users. Technologies are adapting to helping us to find the information we want, now that we have instant access to petabytes of data containing terabytes of useful material.

And Finally...

Finally for this year's C Vu editorials, anyway, I would like to wish you an enjoyable end to 2003, with whatever December may mean to you. I hope each and every one of you can spend it doing enjoyable things with fine people, as I intend to. I'll also be raising a glass to absent friends, some of whom will be reading this. Here's to a good end for 2003 and a great 2004 to follow it.



[1] With apologies to readers outside of the UK, to whom this reference to a British children's TV program of my youth might be sadly opaque.

Notes: 

More fields may be available via dynamicdata ..