<div dir="ltr">Personally I have no real attachment to Tcl and can see queuing it up for deprecation at some point. I'd like to get the community more widely involved in this decision in terms of when, etc. since there may be some significant applications out there still using it and we want to minimize community disruption. There's a lot going on now anyway with the gitlab and OpenGL2 changes so this is not likely to happen anytime soon.<div><br>W<br><div><br></div><div>W</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 20, 2015 at 7:38 PM, Andrew Maclean <span dir="ltr"><<a href="mailto:andrew.amaclean@gmail.com" target="_blank">andrew.amaclean@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>David, David, Will, John</div><div><br></div>I remember the TCL discussion, maybe the time has come to raise dropping it again. I would certainly support that. It was useful before Python was widely used but nowadays I think C++/Python/Java programmers would rarely (if ever) need to use it. Personally I find it difficult to understand and use.It is not a modern language,<div><br></div><div>One of the reasons TCL was useful in the "old days" was that a lot of the testing code was written in it but that is hardly relevant now since we converted almost all of it into Python.<br><div><br></div><div>Will, I did translate most of the VTK Textbook exercises into Python soon after that discussion (way back in 2012). There were a couple that I couldn't convert, see the attached document for a summary of what I have done.</div><div><br></div><div>I'll look at converting <span style="font-size:12.8000001907349px">TestSetGet and TestEmptyInput to python.</span></div><div><br></div><div>Regards</div><div> Andrew<br><div class="gmail_extra"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class=""><br><br>---------- Forwarded message ----------<br>From: David Lonie <<a href="mailto:david.lonie@kitware.com" target="_blank">david.lonie@kitware.com</a>><br>To: David Gobbi <<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>><br>Cc: VTK Developers <<a href="mailto:vtk-developers@vtk.org" target="_blank">vtk-developers@vtk.org</a>><br></span><span class="">Date: Fri, 20 Mar 2015 09:00:01 -0400<br>Subject: Re: [vtk-developers] Tcl wrapping and output array arguments<br></span><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Thu, Mar 19, 2015 at 5:54 PM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span> wrote:<br></span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><span class="">On Thu, Mar 19, 2015 at 2:28 PM, David Lonie <span dir="ltr"><<a href="mailto:david.lonie@kitware.com" target="_blank">david.lonie@kitware.com</a>></span> wrote:<br></span><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>My questions:</div><div><br></div><div>1) Is the concept of an "output array argument" even supported by Tcl?</div></div></blockquote><div><br></div></span></span><span class=""><div>Yes. I imagine something like this could create a new array called "bounds":</div><div><br></div><div> % mapper GetBounds renderer bounds</div></span><span><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>2) If so, how can I teach the wrappers about it?</div></div></blockquote><div><br></div></span><span class=""><div>Adding things like this to Tcl is easier than for Java or Python, but it's more than an afternoon's work. I believe that Tcl will already wrap this method, but the wrapped method will expect 6 values as input, instead of expecting one name for an output array that it should create. Because the wrappers can't really tell whether "double[6]" is meant to be used for input or output, the method will actually have to be wrapped twice, once for input, and once for output. There are undoubtedly some tricky complications that I haven't though of, however.</div></span></div></div></div></blockquote><span class=""><div><br></div><div>Unfortunately, the method is not wrapped currently (according to the generated vtkPropTcl.cxx file, anyway).</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>And perhaps the most curious question from my point of view,</div><div><br></div><div>4) Why do we still provide Tcl bindings in 2015?</div></div></blockquote><div><br></div></span><div>Because they're cool! Actually, at this point I'm fine with them going away, but I'd still like to keep Tkinter (which works just fine without the Tcl wrappers).</div></div></div></div></blockquote><div><br></div><div>The general consensus from the developers I've talked to out here is the same -- we'd love to see Tcl go. I had a heck of a time trying to even find a developer who remembered enough about Tcl to begin tracking down this issue before I posted on the mailing list...and this includes the people who wrote the original Tcl wrappers ;)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>But seriously, can we deprecate them for 6.3?</div></div></blockquote><div><br></div></span><div>Any volunteers to convert TestSetGet and TestEmptyInput to python?</div></div></div></div></blockquote><div><br></div><div>Looks like Andrew has volunteered :D</div><div><br></div><div>I found this discussion from around v6.0's release:</div><div><br></div><div> <a href="http://vtk.1045678.n5.nabble.com/Modularization-Context2D-and-Tcl-td5594211.html" target="_blank">http://vtk.1045678.n5.nabble.com/Modularization-Context2D-and-Tcl-td5594211.html</a></div></span></div><br></div><span class=""><div class="gmail_extra">Looks like there was a fair bit of resistance against dropping Tcl 2-3 years ago, so I'm not sure how worthwhile it would be to push for this now.</div><div class="gmail_extra"><br></div><div class="gmail_extra">But if supporting such a simple method like this requires "more than an afternoon's work" to teach Tcl to understand it, it sounds like more of a burden than a benefit. From what I'm seeing, it's a non-trivial amount of work to keep Tcl working with new APIs and few active developers actually remember Tcl well enough to work on it. Not to mention that in my few years here at Kitware, I've never actually come across an active project that uses Tcl -- not to say they don't exist, but they seem quite rare these days.</div><div class="gmail_extra"><br></div><div class="gmail_extra">In any case, decisions like these are beyond me. I'm just a C++ guy trying to add a simple new method to the library :-)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Dave</div></span></div>
<br></blockquote></div><span class=""><div><br></div>-- <br><div>___________________________________________<br>Andrew J. P. Maclean<br><br>___________________________________________</div>
</span></div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">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</div>
</div>