I think Luis thinks VTK uses random number generators and fuzzy math under the hood. The last time I checked there were types used all over the place, my goodness even templated types!!!! but maybe things have changed since I last looked ;-)<div>

<br></div><div>The point is that there are design trade-offs. ITK exposes templates up the wazoo in its header files, as a result direct wrapping has essentially failed and therefore integration through interpreted languages like Python is problematic (and a source of user complaints). Further evidence of the impact of templating on wrapping comes from the NLM who will spend 100s of thousands of $$$ to fix the situation i.e., to create a *typeless* layer. And what is the typeless layer? well as several have suggested here one solution is to use VTK!!! All of this mess is a direct outcome of ITK's pervasive templating in the header files, and direct wrapping of these header files.</div>

<div><br></div><div>On the other hand I agree that templated code is great for C++ programmers when used judiciously (for example we don't want to use the 6 template parameters on ITK mesh, which again probably should probably be considered a failure due to excessive templating). Certainly there is room for more templates in the headers of VTK and if we improve the wrapping it would free us to use more if we so choose. However I think it is important to continue to support other languages besides C++; some may prefer to use C++ but there are compelling reasons to keep the Python, Java, etc. users happy. I think to preserve the current gestalt of VTK, and to learn from the mistakes of the ITK world, templates must be treated carefully, typically integrated into a typeless layer, and when not, deployed in conjunction with a clear usage policy and the appropriate machinery in the build system to support the template instantiation / wrapping process.</div>

<div><br>Will<br><br><div class="gmail_quote">On Tue, Feb 9, 2010 at 3:22 AM, Biddiscombe, John A. <span dir="ltr"><<a href="mailto:biddisco@cscs.ch">biddisco@cscs.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">> As for templates, I disagree with Will. I think it makes the algorithm<br>
> code more readable and promotes generic programming. I wish VTK were<br>
> more like ITK...<br>
> I do like ITK's use of templating even though it inhibits wrapping. I<br>
> wish VTK could make more use of templates, but as we know, wrapping<br>
> inhibits this. I really don't miss writing tcl code. I prefer C++<br>
> these days for both VTK and ITK.<br>
<br>
<br>
</div>I'd like to agree with Bill, and possibly Luis's long winded rant (though I'm not sure what he really wanted to say).<br>
<br>
Templates are wonderful and nice for many uses and it's a real shame that we allow wrapping issues to prevent us using them more.<br>
<br>
Wrapping really should be something 'extra' on top, that helps users do things and not the driving force behind the core toolkit.<br>
<br>
JB<br>
<div><div></div><div class="h5"><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>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/listinfo/vtk-developers</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>William J. Schroeder, PhD<br>Kitware, Inc.<br>28 Corporate Drive<br>Clifton Park, NY 12065<br><a href="mailto:will.schroeder@kitware.com">will.schroeder@kitware.com</a><br>

<a href="http://www.kitware.com">http://www.kitware.com</a><br>(518) 881-4902<br>
</div>