Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>According to your needs, here are some guidelines:</p> <ul> <li>Make a distinction between language and library - you can have mathematical languages (like MATLAB) or mathematical libraries called from an high-level language (like Python);</li> <li>The language (or library) should be designed by mathematicians, for mathematicians;</li> <li>The used language should be an existing one (do not reinvent the wheel);</li> <li>You should be able to share the script content with existing software;</li> <li>You should not start such a big complex project (math scripting) from scratch.</li> </ul> <p>So I guess it could reduce the candidate list:</p> <ul> <li>JavaScript was not designed (not used) for such usage;</li> <li>Delphi scripts (DWS or PascalScript) were made mostly for automation, not calculation (and are not widely used);</li> <li>I don't know why you are talking about using Delphi IDE in the customer application, but you should not use Delphi IDE for such proprietary development: a primitive custom IDE will be more productive than a full RAD;</li> <li><a href="http://blog.spreendigital.de/2009/09/28/lua-5-1-for-delphi-2010/" rel="nofollow noreferrer">Lua</a> should perhaps be considered: you can make whatever you want with this script engine - but there is not a huge community of mathematicians using Lua, unlike Python...</li> </ul> <p>In the Open Source world, you could find a lot of very interesting solutions. See <a href="http://blog.interlinked.org/science/open_source_math_programs.html" rel="nofollow noreferrer">http://blog.interlinked.org/science/open_source_math_programs.html</a></p> <p>I guess that <a href="http://www.gnu.org/software/octave/" rel="nofollow noreferrer">Octave</a> could be considered. It's simple, powerful, mature, well known, used by a lot of software, and cross platform.</p> <p>As far as I know, you <a href="http://www.gnu.org/software/octave/doc/interpreter/Getting-Started-with-Oct_002dFiles.html#Getting-Started-with-Oct_002dFiles" rel="nofollow noreferrer">can call Octave library</a> from C/C++ code. It could be done from Delphi IMHO, after translation of the associated .h files.</p> <p>But be aware of the GPL licence. If your software is proprietary, it could be impossible to distribute Octave as a part of your software. But you may call the Octave library or any other GPL stuff (like Python) from your software, <a href="http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem" rel="nofollow noreferrer">if you make a clear distinction between your software and the GPL software</a>.</p> <p><a href="http://code.google.com/p/python4delphi/" rel="nofollow noreferrer">Embedding Python</a> could be a good solution. This language can be called from Delphi, and you should have a good architecture, without the need of calling directly some C libraries like Octave. Python could be your main gate to all other calculation libraries, from your Delphi application. For instance, Octave can be called from some Python libraries. And you can also use Python scripts to automate your own application. And you have some <a href="http://code.google.com/p/pyscripter" rel="nofollow noreferrer">Python IDE in Delphi</a> around. The Open Source license of every component being safe, of course. The more I think about it, the more I like this latter solution...</p> <p>Just my two cents. :)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload