    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: Two Views of ACCU's Conference</title>
        <link>https://members.accu.org/index.php/articles/761</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>




<div class="xar-mod-head"><span class="xar-mod-title">CVu Journal Vol 11, #1 - Nov 1998</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c134/">111</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
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/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;Two Views of ACCU's Conference</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 03 November 1998 13:15:28 +00:00 or Tue, 03 November 1998 13:15:28 +00:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<div>
<h2><a name="d0e15" id="d0e15"></a>Report from
Someone</h2>
<h3>The C &amp; C++ Developers' Forum - 11th -
12th September 1998, Oxford.</h3>
</div>
<div>
<h3><span class="remark">(how I wish people
would put their names in their articles.)</span></h3>
</div>
</div>
<p>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.</p>
<p>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 &quot;only
48 hours till release and still full of 'features'&quot; 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.</p>
<p>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
(<i><span class="remark">Where? Francis</span></i>). Now to the
conference itself.</p>
<p>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?</p>
<p>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.</p>
<p>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.</p>
<div class="variablelist">
<dl>
<dt><span class="term">Ian Cargill:</span></dt>
<dd>
<p><span class="emphasis"><em>Friday: Evaluating
Expressions.</em></span></p>
<p>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, &quot;oh I'll get back to that boring technical language bit
when I've got this particularly interesting programming problem
solved&quot; and never do.</p>
</dd>
<dt><span class="term">Kevlin Henney:</span></dt>
<dd>
<p><span class="emphasis"><em>Friday: Patterns</em></span></p>
<p>Kevlin explored a number of patterns (and a couple of idioms)
dealing with exception safety and multithreading. Oh yes, and the
group sneeze.</p>
<p><span class="emphasis"><em>Saturday: Idioms.</em></span></p>
<p>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.</p>
</dd>
<dt><span class="term">Dan Saks</span></dt>
<dd>
<p><span class="emphasis"><em>Friday: C++ Programming
style.</em></span></p>
<p>Summarising brutally.</p>
<p>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).</p>
<p>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.</p>
<p><span class="emphasis"><em>Saturday: Namespaces.</em></span></p>
<p>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.</p>
</dd>
<dt><span class="term">Standards hour.</span></dt>
<dd>
<p>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.</p>
</dd>
<dt><span class="term">The balloon debate.</span></dt>
<dd>
<p>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.</p>
</dd>
<dt><span class="term">Trade stands.</span></dt>
<dd>
<p>Inprise, IBM, NAG, QA, Blackwells, Career Group, InstallShield,
Parkway-Gordon and a couple of others.</p>
<p>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.</p>
</dd>
</dl>
</div>
<div class="sect2" lang="en">
<div class="titlepage">
<h3><a name="d0e98" id="d0e98"></a>Flaws?</h3>
</div>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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?</p>
<p>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.</p>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e111" id="d0e111"></a>and from
Richard Blundell <tt class="email">&lt;<a href=
"mailto:RichardBlundell@dial.pipex.com">RichardBlundell@dial.pipex.com</a>&gt;</tt></h2>
</div>
<p>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.</p>
<p>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 &quot;Component Building with ATL,&quot; 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.</p>
<p>&quot;Patterns &amp; Techniques for C++ Resource Management,&quot; 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
&quot;Resource Acquisition is Initialisation&quot; (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.</p>
<p>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.</p>
<p>&quot;The Standard C++ Library - Making it Work&quot; by P.J. Plauger
discussed the standard library from a library implementer's
perspective. The &quot;Making it Work&quot; 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 &quot;C++ Programming Style.&quot;
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 &quot;better&quot;
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-)</p>
<p>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, &quot;Idioms : Breaking
the language Barrier,&quot; 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.</p>
<p>After coffee, the &quot;Standards Hour&quot; 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
&quot;nowhere!&quot;). 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.</p>
<p>After lunch, Dan Saks was on the podium again, this time
discussing &quot;The Impact of Namespaces in C++.&quot; 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.</p>
<p>Finally, the &quot;Sacrificial Language Balloon Debate&quot; 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.</p>
<p class="c3"><span class="remark">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.</span></p>
<p>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.</p>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
