<div dir="ltr">Has anyone raised the idea of changing the ITK or ParView styles?  I suspect as separate projects they would have their own discussions.<div><br></div><div>-Steve</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 9, 2015 at 6:41 PM, Andras Lasso <span dir="ltr"><<a href="mailto:lasso@queensu.ca" target="_blank">lasso@queensu.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I would not worry too much about Slicer extensions. For example in our extensions we already use the usual indentation instead of VTK’s.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Note that ITK, Paraview, etc. would need to be updated to the same style, too.
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Andras<u></u><u></u></span></p>
<p class="MsoNormal"><a name="14fb445732df8c3f__MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></a></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> vtk-developers [mailto:<a href="mailto:vtk-developers-bounces@vtk.org" target="_blank">vtk-developers-bounces@vtk.org</a>]
<b>On Behalf Of </b>Steve Pieper<br>
<b>Sent:</b> September 9, 2015 6:27 PM<br>
<b>To:</b> David Gobbi <<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>><br>
<b>Cc:</b> VTK Developers <<a href="mailto:vtk-developers@vtk.org" target="_blank">vtk-developers@vtk.org</a>>; Brad King <<a href="mailto:brad.king@kitware.com" target="_blank">brad.king@kitware.com</a>><br>
<b>Subject:</b> Re: [vtk-developers] PROPOSAL: Changing VTK's indentation style<u></u><u></u></span></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">I'd personally vote for:<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">int func( int arg )<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">{<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">  // this code looks gorgeous!<u></u><u></u></p>
</div>
<div>
<div>
<p class="MsoNormal">  if ( condition ) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">    statement;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">  } else {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">    statement;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">  }<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal">}<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">But I'm also used to VTK's "unorthodox" style and don't really mind it.  To be honest it makes it very clear when I'm looking at VTK code and when code has been written by novices vs old hands (and yes, sometimes I form opinions about likely
 code quality from that).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I'd also like to point out that in Slicer our explicit style [1] is to copy VTK style for any code that inherits from VTK objects.  So if VTK changes Slicer will have to also, and by implication all Slicer extensions should also change. 
 This will create extra maintenance work and probably some confusion for our community (and I suspect other projects will have similar issues).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Is the motivation for this change really worth introducing some busywork and confusion for people who use VTK?  If yes, then +1.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">-Steve<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">[1] <a href="http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Style_Guide" target="_blank">
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Style_Guide</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Wed, Sep 9, 2015 at 6:05 PM, David Gobbi <<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">Hi Brad,<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Even though I slightly prefer the inline "if () {" style, I can offer some arguments against it.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">1) it doesn't work well for multi-line conditionals:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">    for (std::vector<typeWithLongName>::iterator iter = vec.begin();<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">          iter != vec.end();<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">          ++iter) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">      statements;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">    }<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">versus<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal">    for (std::vector<typeWithLongName>::iterator iter = vec.begin();<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">          iter != vec.end();<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">          ++iter)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">    {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">      statements;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">    }<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">2) it's inherently inconsistent.  This is demonstrated by the following Java-styled code that actually applies the style consistently:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">    int myfunc(int x) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">      if (x == 0) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">        statements;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">      }<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">    }<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Most C++ programmers (like myself) think the above is ridiculous, but really, why should a definition block be treated differently from a conditional block?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">In my opinion, putting the brace on the following line is nice because it is a simple, consistent rule that produces easily readable code.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I'm a fan of compact code, but only when it is compactified according to my own tastes.  Otherwise the compactification loses its value ;-)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"> - David<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Wed, Sep 9, 2015 at 3:29 PM, Brad King <<a href="mailto:brad.king@kitware.com" target="_blank">brad.king@kitware.com</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">On 9/9/2015 3:41 PM, Brad King wrote:<br>
>   if (...) {<br>
>     ...<br>
>   } else {<br>
>     ...<br>
>   }<br>
[snip]<br>
>   if (...)<br>
>   {<br>
>     ...<br>
>   }<br>
>   else<br>
>   {<br>
>     ...<br>
>   }<br>
<br>
There seems to be agreement that either of these is an improvement<br>
but that we should choose now which one to use.  I'm sure one can<br>
find endless debates across the web about which one is best.  Here<br>
are the main reasons I prefer the former over the latter:<br>
<br>
1. Uses less vertical space.  This is important when the content<br>
   within the blocks is short.<br>
<br>
2. The start and end of each logical block is aligned horizontally<br>
   and can be matched vertically with nothing in the way:<br>
<br>
     if (...) {<br>
     ^  ...<br>
     |  ...<br>
     |  ...<br>
     |  ...<br>
     |  ...<br>
     v  ...<br>
     } else {<br>
     ^  ...<br>
     |  ...<br>
     |  ...<br>
     |  ...<br>
     |  ...<br>
     v  ...<br>
     }<br>
<br>
   This is important when the content within the blocks is long.<br>
<br>
3. Distinguishes conditional and unconditional blocks:<br>
<br>
     if (...) {<br>
        // conditional block<br>
     }<br>
<br>
     {<br>
       // unconditional block<br>
     }<br>
<br>
   Contrast this to the latter style where both look the same:<br>
<br>
     if (...)<br>
     {<br>
       // conditional block<br>
     }<br>
<br>
     {<br>
       // unconditional block<br>
     }<br>
<br>
   In the latter style one must read a line above the "{" to see<br>
   whether it is a condition.  This could be tricky if there is<br>
   an unrelated f(...) call there.<br>
<br>
The former style is widely used in many projects and well-supported<br>
by editors.<u></u><u></u></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
-Brad<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">
http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" target="_blank">
http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtk-developers" target="_blank">http://public.kitware.com/mailman/listinfo/vtk-developers</a><u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">
http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" target="_blank">
http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtk-developers" target="_blank">http://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
<u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div></div></div>
</div>

</blockquote></div><br></div>