<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Dear pro Fit users</div><div><br></div><div>We did expect Python to be a controversial issue, but it was not a decision that we took lightly. The language that we were to adopt had to fulfill the following criteria:</div><div><br></div><div>1) The language should be available on a default MacOS without the need to install any special software.</div><div><br></div><div>2) The language should provide a convenient mechanism to pass named arguments to functions. Think of&nbsp;a function such as PlotData, which has nearly 100 possible arguments, such as the color of the plot, the line style, the point style, etc. etc. In a language that does not support named arguments, such as C, you would have to pass all 100 of them each time you call PlotData. A call to PlotData would e.g. look as follows:</div><div><br></div><div>&nbsp;PlotData(scatterPlot, 1, 2, 0, FrontWindow, true, true, false, 0, 1, 0, 1, 0, 1, linScaling, linScaling, linScaling, ...etc)</div><div><br></div><div>With named arguments, you only pass the arguments whose default values you want to change, such as</div><div>&nbsp;PlotData(xColumn 1, yColumn 2)</div><div><br></div><div>3) It should be possible to integrate the language into our built-in debugger. therefore, the language should provide a reasonably easy to use mechanism to obtain the names and values of variables, to set breakpoints, etc.</div><div><br></div><div>4) The language should be such that it is at least difficult to make pro Fit crash or hang.</div><div><br></div><div>5) The language should be suited for scientific use, should have a large base of users in scitech and there should be a large pool of readily available scitech software for it.</div><div><br></div><div>When evaluating the languages, we did not have any bias ourselves. (In fact, personally, I do not really adore Python's indentation-based syntax, but after having worked with it for some time I see that it does have its advantages.)</div><div><br></div><div>Basically, the languages fulfilling criteria 1 through 4 are Python, Ruby, JavaScript, Apple Script and PHP. In addition, Python excels in criterion 5 (it supports a rich math library, complex numbers, and there are very powerful packages for numerical analysis, such as numpy (which is installed by default in MacOS 10.5) and scipy). Ruby was close, but definitely second, and Java Script also had its appeal because it is bound to see some major speed optimizations in the near future. (PHP is too web centric in our view, and Apple Script provides poor numerical capabilities and is slowish.)</div><div><br></div><div>When integrating Python into pro Fit, we redesigned the pro Fit scripting architecture in such a way that most of the application is agnostic of the actual scripting language in use, with a defined interface between pro Fit and the scripting language. Hence, the integration of a third&nbsp;language in the future should be much easier. Therefore, if you provide us with good reasons to integrate a further scripting language, we may consider this. However, first we will first work on optimizing the Python and Pascal scripting.</div><div><br></div><div>And please, as mentioned by Chris, do not start a language war here. There are enough of these out there.</div><div><br></div><div>Regards</div><div><br></div><div>Kurt Sutter</div><div>QuantumSoft</div><div><br></div><br><div><div>On 27.04.2009, at 08:17, Chris Lee wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I am not going to start a language war, but I think there are some very good reasons for choosing python.&nbsp;It gives you a lot of language integration for free. You can call C and fortran code with ease and receive the results as a python type variable. So, depending on what the final implementation looks like, this will actually do exactly what you want with a lot less work for the quantumSoft dudes.</div><div><br></div><div>Another reason for choosing python might be numpy, scipy and scientific. These three libraries basically give you an open source matlab (sans visualization... you need other packages for that). It handles arrays and complicated operations much more cleanly than current pro fit coding operations. By integrating python pro fit can take advantage of all of this without having to reinvent the wheel.<br><div><br></div><div>That said, there are good reasons for including other languages as well.</div><div><br></div><div>Cheers</div><div>Chris</div><div><br><div><div><div>On Apr 26, 2009, at 10:54 PM, s.g. prussin wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "> Thank you for this. Once again, I'd like to ask that you consider the direct importing of FORTRAN code. For many in the scientific and engineering community, we still use this language and it must be so because of the very many legacy codes that are the basis of many calculations. I know it's a big request but please consider it - sgp<div><br></div><div><br><div><div>On Apr 26, 2009, at 3:32 AM, pro Fit Support wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Dear pro Fit users</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">We at QuantumSoft are presently working hard on the next version of pro Fit, which will be version 6.2. The release date of that version is still uncertain, but my guess is that it will be sometime in late 2009 or in<span class="Apple-converted-space">&nbsp; </span>2010, so don't hold your breath. It will provide a number of interesting new features.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">One of these new features will be integrated support for the Python programming language for defining Programs (Macros) and pro Fit functions, as an alternative to pro Fit's own Pascal-like compiler.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">We feel that some user feedback would be valuable at this time. We therefore have decided to run an "alpha" testing program with version 6.2, with emphasis on its Python programming capabilities. So, if you have some Python knowledge, or if you are an experienced pro Fit user willing to spend some time digging into Python and testing pro Fit with it, please send us a note to</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="mailto:profit@quansoft.com">profit@quansoft.com</a>,</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">with a brief description of who you are and why you feel you could contribute to the alpha testing. If you are accepted to the alpha testing program, we will then send you a pro Fit build to test.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Please do not expect the build that we will send you to be fit for normal use. It will be an internal build that has not undergone much testing and that will have various parts unfinished or disabled. It is for testing only. It will require MacOS 10.5.6 or better.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Best regards</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Kurt Sutter</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">QuantumSoft</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">proFit-list mailing list</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="mailto:proFit-list@quantum-soft.com">proFit-list@quantum-soft.com</a></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="http://quantum-soft.com/mailman/listinfo/profit-list_quantum-soft.com">http://quantum-soft.com/mailman/listinfo/profit-list_quantum-soft.com</a></div> </blockquote></div><br><div> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div>S.G Prussin</div><div>Department of Nuclear Engineering</div><div>University of California</div><div>Berkeley, California 94720</div><div><br></div><div><a href="mailto:prussin@berkeley.edu">prussin@berkeley.edu</a></div><div><br></div></span><br class="Apple-interchange-newline"> </div><br></div></div>_______________________________________________<br>proFit-list mailing list<br><a href="mailto:proFit-list@quantum-soft.com">proFit-list@quantum-soft.com</a><br><a href="http://quantum-soft.com/mailman/listinfo/profit-list_quantum-soft.com">http://quantum-soft.com/mailman/listinfo/profit-list_quantum-soft.com</a><br></blockquote></div><br></div></div></div></div>_______________________________________________<br>proFit-list mailing list<br><a href="mailto:proFit-list@quantum-soft.com">proFit-list@quantum-soft.com</a><br>http://quantum-soft.com/mailman/listinfo/profit-list_quantum-soft.com<br></blockquote></div><br><div> <span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><div>Best regards</div><div><br class="khtml-block-placeholder"></div><div>Kurt Sutter</div><div>QuantumSoft</div></div><br class="Apple-interchange-newline"></span> </div><br></body></html>