<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br><br><div>Regards,</div><div>Kashyap</div><br></div><div><br>On Jul 28, 2014, at 4:11 PM, "Williams, Norman K" <<a href="mailto:norman-k-williams@uiowa.edu">norman-k-williams@uiowa.edu</a>> wrote:<br><br></div><blockquote type="cite"><div>

<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">


<div>The biggest plus in using Python with C++ back end for the compute/graphics intensive stuff is interactive development without a compile/link stage.</div>
<div><br>
</div>
<div>There are great python debug tools.  Debugging python in Emacs is easy enough using pdb.  You can set breakpoint in the source code, examine variables, etc.  Debugging python is no more difficult than debugging C++.  There are python IDE that allow source
 debugging as well.  PyCharm is well regarded.</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>vincent ngai <<a href="mailto:vincent.ngai@gmail.com">vincent.ngai@gmail.com</a>><br>
<span style="font-weight:bold">Date: </span>Friday, July 25, 2014 at 2:39 AM<br>
<span style="font-weight:bold">To: </span>Satyananda Kashyap <<a href="mailto:ksatyananda@gmail.com">ksatyananda@gmail.com</a>><br>
<span style="font-weight:bold">Cc: </span>Insight <<a href="mailto:insight-users@itk.org">insight-users@itk.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [ITK-users] Suggestions about Python wrapping of cpp project<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">My project was designed as a C++ framework with functionality exposed to scripts, so it acts like an executable that runs a script that determines the program behaviour rather than a pure python program. It might be an important factor whether
 its a pure python app or an app that runs python. 
<div><br>
</div>
<div>Honestly I can't tell if relegating some application logic to scripts is more productive, it works for sure, how productive it is ultimately depends on how many of our next projects rely on using the existing framework. :)</div>
<div><br>
</div>
<div>Sorry I don't have a clear cut answer its a bit early to tell for my project.</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Fri, Jul 25, 2014 at 12:22 PM, Satyananda Kashyap <span dir="ltr">
<<a href="mailto:ksatyananda@gmail.com" target="_blank">ksatyananda@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">Thanks for your perspective Vincent. 
<div><br>
</div>
<div>One of my initial questions were about the productivity boost which you get when using scripting languages. I am reasonably comfortable coding in C++ toolchain. From your experience do you really see a spike in productivity when you shift over. Is it worth
 the effort ?  </div>
<div><br>
</div>
<div>I think I will do some of the core development in C++ and expose them to Python. I wanted to use the scripting side more for prototyping and testing purposes. </div>
<div class="gmail_extra"><br clear="all">
<div>
<div dir="ltr">Regards,
<div>Kashyap</div>
</div>
</div>
<div>
<div class="h5"><br>
<br>
<div class="gmail_quote">On Thu, Jul 24, 2014 at 10:18 PM, vincent ngai <span dir="ltr">
<<a href="mailto:vincent.ngai@gmail.com" target="_blank">vincent.ngai@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">I'm no expert, but previously when I worked on projects where we exposed almost all core functionalities via scripts, it seemed like a good initially, but what really happened is a shifting of complexities. Rather than have the complexity on
 the C++/Compiled codebase side shifted over to the scripts, in situation where you need to be able to change functionality without recompiling the source, or even have access to the source, scripts are the way to go. But shifting complexities to the runtime/script
 side has its own issues, I'm happy with the C/C++ toolchain maturity, Visual C++, GCC, GDB etc, you have very comprehensive debugging and editor facilities available for C++, but on the script side you have far less tools, and debugging may be a hassle. 
<div><br>
</div>
<div>Also for scripts that are scoped by whitespace/tabs and are not strictly typed, we found that scripts exceeding 1/2 pages in length tend to be less maintainable, and the chances of nuking a whitespace or overwriting a variable gets higher.</div>
<div><br>
<div class="gmail_extra">Just my 2 cents<br>
<br>
<div class="gmail_quote">
<div>
<div>On Wed, Jul 23, 2014 at 11:11 PM, Satyananda Kashyap <span dir="ltr"><<a href="mailto:ksatyananda@gmail.com" target="_blank">ksatyananda@gmail.com</a>></span> wrote:<br>
</div>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>
<div dir="ltr">Hello,
<div><br>
</div>
<div>I am looking for your expert opinions here. I have a relatively large C++ project I am working on which uses ITK mainly (hence the question here) and to some extent VTK and OpenCV. I do think that my code is fairly well written. I was thinking of wrapping
 my code to python using either SWIG or boost.python. Here are my questions : </div>
<div><br>
</div>
<div><br>
</div>
<div>1. I am led to believe that prototyping and code development is much faster in Python. Given that I have such a big cpp base code is it really worth the effort to wrap into python and then continue there. </div>
<div><br>
</div>
<div>2. From what I have read ITK uses SWIG wrappings for wrapping into Python while VTK uses the boost.python route. My initial attempts with both have been relatively unsuccessful. Any opinion on which one is more user friendly/better when I have to wrap
 my own custom classes which use a combination of both ITK and VTK in them. </div>
<div><br>
</div>
<div>3. Any suggestion on a road map as to how to proceed. I am not sure at what base class level I should wrap them and rewrite the dependencies in python.  </div>
<div><br>
</div>
<div>Thanks,</div>
<div>
<div>
<div dir="ltr">Regards,
<div>Kashyap</div>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
<div>_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/insight-users" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br>
<br>
</div>
</blockquote>
</div>
<span><font color="#888888"><br>
<br clear="all">
<div><br>
</div>
-- <br>
Regards,<br>
Vincent<br>
</font></span></div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
Regards,<br>
Vincent<br>
</div>
</div>
</div>
</span><br>
<br>
<hr>
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.  If you are not the intended recipient, you are hereby notified that any
 retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
<hr>


</div></blockquote></body></html>