Journal Articles

CVu Journal Vol 11, #1 - Nov 1998
Browse in : All > Journals > CVu > 111 (19)

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: Two Views of ACCU's Conference

Author: Administrator

Date: 03 November 1998 13:15:28 +00:00 or Tue, 03 November 1998 13:15:28 +00:00

Summary: 

Body: 

Report from Someone

The C & C++ Developers' Forum - 11th - 12th September 1998, Oxford.

(how I wish people would put their names in their articles.)

Francis wants to persuade more people to attend the annual Forum so he asked for people's opinions about this year's event in the hope that the voice of one of the 'erks' would be more persuasive than one of the association's brass hats. Here's my thoughts, feel free to use the green ink if you disagree.

First off. Francis wondered why only a sixth of the membership attended. Easy. Time and money. I was lucky, a bonus meant I could fund the two days out of my own pocket, I have family who live about an hours drive from Oxford so I had somewhere cheap to kip, I had annual leave to spare, my current projects aren't at the "only 48 hours till release and still full of 'features'" stage, a tolerably understanding partner and no children to deal with. Like I said, Easy. What happens if one or more of those conditions isn't met though? Let's pick two of them. Yes, a hundred quid for two days of this quality is cheap, but if you don't live within easy reach of the venue you have to find two nights accommodation, not just for yourself, but for your family as well then add travelling costs and suddenly it isn't a hundred pounds any more, it's little Johhny's fees for a year at Fettes/Eton/Cheltenham Ladies College (delete as appropriate). So, I wouldn't be surprised to find that a large number of members who wanted to attend hit the 'travel expenses' barrier and decided they couldn't afford it. Perhaps Edinburgh, Glasgow or Newcastle next year? Then there are the members working ridiculous hours to meet deadlines imposed by idiot managers (spot the tautology) and whose spouses are so inconsiderate as to want to have some time with the love of their life, even if it is just pushing the trolley round the supermarket together. Yes ACCU is a good thing, yes the Forum is excellent, but is it worth sacrificing a relationship or marriage for? Well, obviously I think it is, but I'm warped and I'm told I smell funny as well.

I hope that has saved a lot of aggrieved (private rather than corporate) members the effort of responding to Francis's (inevitable?) hectoring editorial on lack of interest (Where? Francis). Now to the conference itself.

Was it worth attending the C/C++ Forum? For me, yes. Did you miss out if you didn't attend? Well I guess it depends on whether you're an out and out guru or not. If you are then perhaps not, but if you're a guru why weren't you lecturing?

What did I get from it? I learned a number of new things, had a few ideas (prejudices) confirmed, was reminded that that there is a huge amount of C++ that I don't know. As if I need reminding.. I even managed to talk to a couple of people. Don't worry, doctors say they will recover. Given time.

What about the content? I opted for the C++ stream on Friday, with a short diversion into one of the C lectures so you'll have to rely on somebody else for the other streams. What follows is necessarily curtailed. Besides which, if you've got Web access you can get the presentation notes for yourself.

Ian Cargill:

Friday: Evaluating Expressions.

Ian's talk was a nice straight forward tutorial on things to watch out for and the accompanying notes would make a nice article for CVu. A good one for dabblers like myself who just wade in thinking, "oh I'll get back to that boring technical language bit when I've got this particularly interesting programming problem solved" and never do.

Kevlin Henney:

Friday: Patterns

Kevlin explored a number of patterns (and a couple of idioms) dealing with exception safety and multithreading. Oh yes, and the group sneeze.

Saturday: Idioms.

Idioms. All languages have them. They are the way native speakers use the language. Kevlin made a case for studying other languages as a way of improving your use of all the languages that you work in by appropriating new idioms (remember, great artists steal). He outlined a number of reasons why some idioms can't be transferred and then carried on to give examples of idiomatic usage in both C++ and Java with some comments about patterns on the way.

Dan Saks

Friday: C++ Programming style.

Summarising brutally.

Your source code has two audiences. The machine and humanity. C++ has features (principally the Class) that allow you to write source code that expresses your thoughts clearly and can be interpreted unambiguously by both audiences. However, unlike the machine humans have some sense of aesthetics and this means your meaning will be grasped more readily if this aesthetic sense is not disturbed or jarred. So for the sake of the human audience visually pleasing layout is worth pursuing. By making your intentions both explicit and easily understood you produce better code where 'better' can be defined in a number of ways (some of which are mutually exclusive).

Dan outlined a number of techniques that were applicable to the machine and made a number of suggestions regarding layout which (when I can get the notes off the Web site) I'm going to bludgeon my colleagues with. An end to bracket positioning wars in our time? I do hope so.

Saturday: Namespaces.

This was, like the lecture Dan gave last year on 'const', lucid and to the point. I hadn't come across an explanation of namespaces that gave me a good idea of how they should be used. I think I now have. I wish some of the textbooks on various topics I've consulted were half as clear. If you have access to the Web, download the notes.

Standards hour.

Ummm, confession time. I ducked this one. My excuse is that I needed to give my poor overloaded brain a chance to absorb all the information thrown at it before trying to assimilate more.

The balloon debate.

Now, I must admit I was a bit nervous about this, I remember these from school and more worthy and tedious affairs you couldn't hope to find. This wasn't. It was an absolute hoot with some really sharp questions being thrown at the panellists and some equally witty responses being returned.

Trade stands.

Inprise, IBM, NAG, QA, Blackwells, Career Group, InstallShield, Parkway-Gordon and a couple of others.

In addition to Blackwells there were three that I found interesting/useful so I count that a success and I did like the discount copies of Dr. Dobbs courtesy of Parkway-Gordon.

Flaws?

No, not really. Only trivia and those things that bugged me would almost certainly have been missed by other people. My niggles are listed below and I hope the sheer triviality of them conveys how good a job Parkway-Research and the ACCU volunteers did. Again.

The presentation notes. I appreciate that publishing them on the web kept costs down considerably but it didn't quite hang together this year, especially for the C++ stream. Stream, C++, hmmm, there has to be a joke in there somewhere. As it happened I found that not having the notes meant that I paid more attention to what was being said so perhaps it was a good thing.

The venue. Very good indeed, but the benches in the debating chamber! If we use the Oxford Union again I'm taking a cushion. The prize draw (I didn't enter, so no accusations of sour grapes please). There were some truly excellent prizes, and a good deal of praise should go to those who managed to scare them up , but it happened on the Friday. Perhaps it might have been possible to split the prizes over two days to give those who were only able to come on the Saturday a chance at some goodies.

The ready supply of canned drinks and nibbles. Excellent idea, but I guess I'm not a real programmer. I'm not that fond of Pepsi/Coca Cola. See what I mean about trivial?

Well that was my conference. I enjoyed it and assuming that there's another one and nothing prevents me I'll be back. If you can scrape together the time and the money I think you'll find both well spent.

and from Richard Blundell

Like last year, I found this a thoroughly enjoyable event. The venue was historic if a little run down (the debating chamber must have seen better days) and some of the speakers were first class. The scope of the event had been widened since last year, and on the Friday tracks were available on Games Programming, Java and Component Technology, as well as on C, C++/OO and General Programming techniques. On the Saturday, the single track included two technical sessions and an hour discussing the standards process and progress, ending with a light-hearted language debate. On the Friday I attended the C++ track, so I can only comment on these sessions.

As a number of people unfamiliar with Oxford discovered, the how-to-find-it map provided was pretty hopeless, being topologically correct, but little more. On arriving at the Oxford Union, however, registration was efficient, the rather unusual selection of refreshments apparently limitless, and trial copies of several magazines (EXE, C++ Report, plus a few others) and software were there for the taking. My day of talks commenced with Julian Templeman's "Component Building with ATL," mainly because there was a gap in the C++ track. It was a fairly high-level introduction to AT, and was probably useful for those with no exposure to the ATL or Visual C++ 5 or above. The talk consisted mainly of screen shots of Microsoft's ATL wizard dialogs and a mention, but not detail, of the main ATL classes.

"Patterns & Techniques for C++ Resource Management," a two-hour session, found Kevlin Henney in fine form, as usual, in the Oxford Union debating chamber - a chilly and gloomy venue with uncomfortable seats (especially for the long sessions to follow). After a brief description of Patterns he mentioned the Command and Proxy patterns and the Smart Pointer Idiom in relation to resource management. Writing exception-safe code to avoid resource leaks was the next topic, and this highlighted the importance of getting the definition of operator=() correct for a class that manages resources. Reference counting was then introduced as a method of managing shared resources automatically, and a number of different strategies for this were outlined. Concurrency yields new dangers in programs, and synchronisation issues were discussed in terms of managing critical sections automatically as resources using the techniques discussed earlier. Finally, the general concept of "Resource Acquisition is Initialisation" (usually performed in the ctor) was discussed with a corresponding release of the resource in the dtor. For C++ developers, these issues are highly relevant. Techniques along these lines are almost unavoidable in the development of highly robust but complex software.

A relatively long lunch break allowed time to browse the exhibitors' stands. There were stands from companies such as Parkway Gordon (of course) to Inprise and IBM, QA training to QBS and Blackwells bookshop (which had very well stocked shelves). The conference raffle required delegates to visit each stand, and to prove this by obtaining a stamp on their raffle card. The wearied expressions on some exhibitors faces was evidence of the large number of trophy-hunters amongst the throng, eager to win from the impressive range of prizes on offer.

"The Standard C++ Library - Making it Work" by P.J. Plauger discussed the standard library from a library implementer's perspective. The "Making it Work" of the title implied getting it to function in the first place, rather than putting it through its paces. The library requires some of the latest compiler facilities, and so it was interesting to see how much work goes on behind the scenes getting the source to compile correctly on the available compilers. Next time you are cursing your compiler vendor for getting something wrong, be cheered by the thought that library writers have to tackle all these bugs in all the compilers! Dan Saks gave the next presentation, entitled "C++ Programming Style." In a characteristically epic three-hour session he covered a large amount of material concerning code writing style, documentation and design. Like last year's talk on the correct use of const, he gave an extremely thorough and insightful coverage of a topic that might initially seem to have little meat to offer. He started by describing exactly what he meant by saying some code was "better" than some other. The rest of the talk then applied this definition to a range of programming issues, beginning with code layout on the page, commenting (volume and location) and choice of variable names, through to scoping, encapsulation, accessors and mutators, function signatures and file organisation. (Anyone who came away without learning something must have dozed off in the dark. 8-)

For those only attending for the Saturday, the registration process fired up again. The rest of us trudged over to the chilly but now-familiar debating chamber. After the introduction was presented by a wooden chair in Francis' absence, "Idioms : Breaking the language Barrier," presented by Kevlin, covered a number of topics to do with OO, and related them to OO languages such as C++ and Java. Although initially pointing out how idioms that are fundamental in one language can be uncommon or irrelevant in another, the latter half of the talk described a number of idioms applicable to software development with examples in C++. Topics included copying semantics, iteration over collections, callback functions and value-based types, to name just a few.

After coffee, the "Standards Hour" explained where the C9X, C++ and Java standards efforts are at the moment, and where they are heading (in the case of Java, the response seemed to be "nowhere!"). A representative from each standards body presented the low-down on the standards process, and gave information on how to participate (the requirements for which - i.e. just turn up - surprised a lot of people). There were complaints about the cost of the standards documents once they are finalised - so prohibitive that they are lucky to sell a dozen copies in total! Apparently, history has been made, as an electronic version of a standard is now available for the first time - the C++ standard for $18 (visit http://webstore.ansi.org). This should mean that the standard can have a much wider audience.

After lunch, Dan Saks was on the podium again, this time discussing "The Impact of Namespaces in C++." And again, an apparently small topic was analysed in great and illuminating depth. Details and advice were given on basic namespace usage. More advanced topics were also covered, including nested namespaces, name collision resolution, unnamed namespaces and linkage issues.

Finally, the "Sacrificial Language Balloon Debate" had seven language proponents on the stage, each defending their chosen language from death by balloon eviction. With the audience a merciless 'clapometer,' languages such as Fortran and Beta were dispatched within minutes of the end of the initial presentations. With just C++ (Dan Saks), C (Neil Martin), Java (Russell Winder) and Forth (Francis Glassborow) remaining, Java and C took surprise early exits (Java first, then C), with C++ winning the day by a narrow margin. Forth's high ranking may, or may not, have been somewhat influenced by that language's representative.

For those that were not there, your editor was defending Forth and had to remind the audience that they might get a Forth Conference next year if they were not careful. And Dan Saks volunteered to jump from the balloon on the grounds that people's hearts were clearly ruling their heads.

So, in summary, a highly enjoyable two days, with a lot of good technical material upon which to ruminate, and some highly professional and well-prepared presentations. And at such a (relatively) affordable price, the bang per buck was sky high! Thanks to all those involved in organising it, and I for one hope I shall be able to attend again next year.

Notes: 

More fields may be available via dynamicdata ..