    <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  :: Editorial: New Things Under the Sun</title>
        <link>http://accu.org/index.php/journals/216</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>


        <h2>Journal Articles</h2>


<div class="xar-mod-head"><span class="xar-mod-title">Overload Journal #61 - Jun 2004 + Journal Editorial</span></div>

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

                                            <a href="http://accu.org/index.php/journals/">All</a>

                     &gt;                         <a href="http://accu.org/index.php/journals/c76/">Journals</a>

                     &gt;                         <a href="http://accu.org/index.php/journals/c78/">Overload</a>

                     &gt;                         <a href="http://accu.org/index.php/journals/c151/">61</a>
                    (10)
<br />

                                            <a href="http://accu.org/index.php/journals/">All</a>

                     &gt;                         <a href="http://accu.org/index.php/journals/c184/">Journal Columns</a>

                     &gt;                         <a href="http://accu.org/index.php/journals/c185/">Editorial</a>
                    (122)
<br />

                                            <a href="http://accu.org/index.php/journals/c151-185/">Any of these categories</a>

                    -                        <a href="http://accu.org/index.php/journals/c151+185/">All of these categories</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;Editorial: New Things Under the Sun</h1>
<p><strong>Author:</strong>&nbsp;Administrator</p>
<p>
<strong>Date:</strong> 09 June 2004 14:26:10 +01:00 or Wed, 09 June 2004 14:26:10 +01:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;      <p>Mark&#8217;s editorial &#8220;An Industry That Refuses To
      Learn&#8221; (Overload 60) clearly struck a chord of
      recognition &#8211; as you can see from the letters page. It
      is disappointing, however, that no-one makes the case for
      there being improvements in the industry. Despite the
      depressing repetition of mistakes and rediscovery of ideas,
      some things have changed for the better!</p>

      <p>One of the things that has changed is the ease with which
      ideas, techniques and even tools circulate. And this
      isn&#8217;t just the advent of new technologies &#8211; when
      I started in the industry the only books around the office
      tended to be manuals for the system being used. Now I can
      look around the office to find copies of DeMarco&#8217;s
      &#8220;Peopleware&#8221;, Senge&#8217;s &#8220;Fifth
      Discipline&#8221;, Cockburn&#8217;s &#8220;Effective Use
      Cases&#8221; and &#8220;Agile Software Development&#8221;,
      along with a miscellany of books on Design Patterns and
      Extreme Programming. Some of the ideas these contain are even
      being put into practice! It may be taking time, but change is
      happening. And Overload has a role to play in ensuring that
      useful knowledge is not forgotten.</p>

      <p>Of course, the trouble with change is ensuring that we
      keep the good and discard the bad. And that is particularly
      on my mind at the moment. The more observant of you may have
      noticed a change to Overload (but I hope that there is
      nothing that has caused you to notice). Let me explain.</p>

      <p>At the AGM Tom Hughes stood down from the post of
      Publications Officer having successfully steered the journals
      through a number of changes in the last few years. This gave
      the previous Overload editor, John Merrells, the opportunity
      to join the committee as the new Publications Officer (which
      might be considered a promotion). That left a gap to be
      filled as Overload editor &#8211; and, when it was offered to
      me, I took it on. I hope that you will all join me in
      thanking Tom and John for their efforts over the years, and
      to wish John success in his new role.</p>

      <p>It was only a year ago that I joined the Overload team as
      a &#8220;contributing editor&#8221; &#8211; and took on the
      some of the editorial tasks, such as producing the editorial.
      These are tasks that I&#8217;ve subsequently shared with
      Overload&#8217;s remaining contributing editor, Mark Radford.
      The first of these editorials reviewed the changes that had
      happened to Overload since John took it over (from me) and
      concluded: &#8220;All of this makes Overload a much more
      impressive publication than it was six years ago.&#8221;</p>

      <p>The last year has not changed that opinion: I&#8217;m very
      happy with the way that Overload has developed under John
      Merrells&#8217; guidance. I hope that you are too. It should
      therefore be no surprise that I&#8217;ve not taken on the
      editorial role with any dynamic agenda for change. Most of
      the Overload team remains in place and will be performing the
      same role: helping authors to prepare their work for
      publication. And with any luck you, the readers, will
      continue to find interesting things happening to write
      articles about.</p>

      <p>Having said that, I must immediately confess that some
      changes are intended: John Merrells, Paul Johnson (the new C
      Vu editor) and I have agreed that the distinction between the
      journals has not been clear to the readership. In part this
      has been due to a failure to route articles to the other
      journal when that was appropriate. In the future we intend to
      ensure that articles are re-routed if appropriate. I trust
      that this won&#8217;t upset anyone.</p>

      <p>Which all begs the question &#8220;in which journal does
      an article belong?&#8221; While those working on the journals
      tend to agree on each specific article that has been
      discussed, it isn&#8217;t that easy to explain. Especially as
      some members (and the ACCU website) appear to have views that
      differ markedly from ours. So let me go on record about a
      couple of things:</p>

      <div class="itemizedlist">
        <ul type="disc">
          <li>
            <p>Overload is no longer a C++ based publication: it
            covers a much broader range of material &#8211; the
            current issue discusses team working; design patterns;
            the use of exceptions in C#, Java and C++; and the high
            competency threshold set by C++.</p>
          </li>

          <li>
            <p>Overload is not a minority interest: the vast
            majority of ACCU members (just over 85%) subscribe to
            Overload.</p>
          </li>
        </ul>
      </div>

      <p>So what is Overload about? In the editorial mentioned
      above I said of Overload articles that &#8220;there is a
      tendency for them to be about designs, illustrated using C++,
      rather than about C++ itself&#8221;. Having thought about it
      over the past year I no longer think that captures it at all:
      The articles assume that most basic development skills have
      been mastered and address problems faced by journeyman (or
      master) developers. (While the industry does not have a
      recognised apprenticeship system it does have recognised
      masters.) These articles might examine the effect of applying
      alternative solutions; or discuss new tools and ideas; or
      show old ideas in a new light. There are reports back from
      those venturing away from the mainstream approaches in the
      hopes of finding something better. And don&#8217;t forget
      that what is &#8220;mainstream&#8221; for one technology may
      be new ground for another &#8211; we need to exchange
      ideas.</p>

      <p>And the exchange of ideas was the theme of a &#8220;Birds
      of a Feather&#8221; [BOF] session on C++ that I led at the
      conference. (Why C++? &#8211; because I&#8217;m currently
      working in that language and missing the support that is
      available for working in Java.) In that BOF I led a
      discussion of tools and techniques that people had enjoyed in
      other languages that they lacked when working in C++. Many
      things came to light from developers using Java:</p>

      <div class="itemizedlist">
        <ul type="disc">
          <li>
            <p>Using a refactoring IDE (Eclipse, IntelliJ) changes
            the way that you think about maintaining and developing
            code (and makes things achievable that were not
            before).</p>
          </li>

          <li>
            <p>Having a de-facto standard for a unit test framework
            (JUnit) makes test driven development that much easier
            to establish.</p>
          </li>

          <li>
            <p>Tools for automating integration, build and smoke
            test processes (CruiseControl, AntHill) make frequent
            (or continuous) builds easy to put in place &#8211; not
            a continuous battle.</p>
          </li>
        </ul>
      </div>

      <p>I&#8217;m sure there are others, but these types of tool
      have a long history in the SmallTalk community &#8211; and
      only became commonplace when ex-SmallTalkers reimplemented
      them after moving to Java.</p>

      <p>The BOF wasn&#8217;t entirely a matter of discussing the
      greener grass and sighing with regret: an interesting
      discussion of various unit testing frameworks developed with
      people relating why they&#8217;d written their own (about
      half the room had done this). People expressed various
      dissatisfactions with <span class=
      "application">CppUnit</span>, <span class=
      "application">CricketTest</span>, <span class=
      "application">CppUnitLight</span>, and <span class=
      "application">CxxUnit</span>, but, interestingly,
      <span class="application">boost::test</span> got no bad
      reports. There were not enough reports on boost::test to
      announce it a winner, but people were sufficiently interested
      to say they&#8217;d go away and try it. (I&#8217;ve not had
      any reports back yet &#8211; but I&#8217;ll keep you
      informed.)</p>

      <p>Another thing that was discussed was whether there were
      technical obstacles to the development of C++ refactoring
      tools. It was felt that the difficulty of compiling C++ and
      the way that a piece of code can appear in multiple
      translation units made this a lot harder than equivalent
      tools for SmallTalk or Java. But it was thought possible.</p>

      <p>Developers, it seems, are not the only ones to recognise
      the potential for refactoring tools for C++. After I
      mentioned refactoring tools for C++ in my &#8220;Christmas
      List&#8221; (Overload 58), Giovanni Asproni emailed me with
      links to an alpha version of a C++ refactoring tool: <a href=
      "http://www.xref-tech.com/" target=
      "_top">http://www.xref-tech.com/</a> and to SlickEdit:
      <a href="http://www.slickedit.com/" target=
      "_top">http://www.slickedit.com/</a> which advertises these
      features. Microsoft has also listed &#8220;refactoring&#8221;
      as a feature of their forthcoming IDE. I&#8217;ve not, as
      yet, had time to review any of these offerings, so the
      reality may be less than the promise, but I am looking
      forward with anticipation.</p>

      <p>Of course, it isn&#8217;t just within the C++ arena that
      things are happening. I&#8217;ve been hearing from developers
      taking a first look at Java&#8217;s JDK 1.5, which it seems
      has grown a host of new features. But while I&#8217;ve heard
      a few rumours I can&#8217;t yet provide an informed report of
      any interesting developments there.</p>

      <p>I&#8217;d love to be able to report on progress in other
      areas:</p>

      <div class="itemizedlist">
        <ul type="disc">
          <li>
            <p>Languages like Python and C# are widely used by ACCU
            members. (But not, at the moment, by me).</p>
          </li>

          <li>
            <p>New development tools have become available and some
            of them change the way we can think about developing
            software. (I&#8217;ve mentioned some of these
            above.)</p>
          </li>

          <li>
            <p>Ideas and techniques for handling various elements
            of the development process are being explored. (I know
            of one developer who took the suggestion that
            &#8220;test driven development wouldn&#8217;t be
            appropriate to a compiler&#8221; as a challenge, and
            has used that approach to write a compiler.)</p>
          </li>

          <li>
            <p>Anything else that develops the art/craft/science of
            software development.</p>
          </li>
        </ul>
      </div>

      <p>I want to know more, and my guess is that many of you do
      too. I also know that my time is limited and have no reason
      to believe that yours is any different. But if you are
      reading this and thinking &#8220;doesn&#8217;t he know about
      X&#8221; then you can help the rest of us by submitting an
      article. (It is only fair, you discovered about A, F and M
      through articles in Overload.)</p>

      <p>C++ wasn&#8217;t the only thing I talked about at the
      Spring Conference &#8211; I ran a second BOF in conjunction
      with Neil Martin that discussed the possible role that ACCU
      could play in promoting a professional approach to software
      development. Lots of ideas were discussed, including
      certification schemes. Neil went away to investigate what the
      implications of becoming a certifying body were, and I got a
      mailing list set up that includes the people that expressed
      an interest. While Neil has reported back to the list nothing
      else has happened (yet). Perhaps someone reading this can
      provide the necessary impetus.</p>

      <p>I hope that I&#8217;m going to enjoy editing Overload, I
      have certainly discovered that it involves work. I&#8217;m
      writing the first draft of this editorial on the train home
      from working at a client&#8217;s for the last few days
      &#8211; and it has to go to the production editor tonight!
      (So no chance to mull it over for a few days.) But, so long
      as worthwhile articles are submitted, I feel that the effort
      is worthwhile.</p>

      <p>Things are changing: new people, new ideas, some things
      don&#8217;t &#8211; some problems are there just because
      there are people involved. But let me repeat a suggestion
      made to me at the Extreme Tuesday Club (sorry, I&#8217;ve
      forgotten your name, but I owe you a pint) of something that
      isn&#8217;t just an old idea reinvented: aspect oriented
      programming. What do you think? Seen it before?</p>

      <p>While Mark had a valid point that some good old things
      have been forgotten, there are sometimes new things under the
      sun, and these may be good too.</p>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
