1. Programming languages in Scilab and their usage:
This page lists all languages used in Scilab core sources. You will also find here a help to choose a language to write your code more than an other language. This does NOT concern toolboxes.
2. C
- Main Scilab development language
- Must be used if development takes less time than in C++
- Must be used if execution time is a main criteria
- Do not use C-structs, use C++ objects instead
files extension .c & .h (headers)
See also Code Conventions for the C Programming Language
3. C++
- Used to replace C-structs
- Must be used if object conception gives a improvement compared to a functional conception
- Must be used if development goes faster than if developed in C
- Must be used if the source code is less complex to understand/read than it would be in C.
files extension .cpp & .hxx (headers)
- Scilab 6 kernel is strongly using C++.
See also Code Conventions for the C Programming Language
4. Java
- GUI
- Graphics
- Xcos
- Text editor
- Integration of Java libraries or features if they are not necessary for the without-java mode (we have to discuss about what is needed in Scilab when used as a computing kernel)
See also Code Conventions for the Java Programming Language
5. Scilab language
- Used if performances are not a problem
- Prototype writing before coding an algorithm in native code
See also Code Conventions for the Scilab Programming Language
6. Fortran
- No more new developments
- Existing code is supported
- Some newer mathematical algorithm could be integrated in Scilab sources if needed.
7. Tcl/Tk
- No new developments are made any more by the operational team of the Scilab Consortium.
- External developers continue to develop Scipad in Tcl/Tk. There is no intention to port Scipad in Java.
- GED (Graphical Editor): if needed, new features will be developed in Tcl/Tk until GED will be fully ported in Java.
- Tcl/Tk interpreter is supported
Therefore Tcl/Tk scripts will continue to be executable inside Scilab (using TCL_EvalStr or TCL_EvalFile)
This also means that the set of TCL_xxxx (plus ScilabEval with the current options) instructions in Scilab will be maintained
- uicontrols in Tcl/Tk are supported until they will be rewritten in Java.
- sciGUI help widget should be rewritten in Java in the future.
- Backwards incompatibilities:
- Users may still write Tcl/Tk application but uicontrols are aimed to be rewritten in Java.
This means that backwards compatibility will be broken whenever a uicontrol uses Tcl/Tk code, say a uicontrol callback calling a Tcl proc directly. A workaround could be to call a Scilab instruction instead, such as TCL_EvalFile
8. OCaml
- Only used in Xcos for the Modelica compiler