Scilab Roadmap
Table of content:
Introduction
Major Scilab 5 Family objectives
Scilab 5.0
Using Java for GUI architecture and graphics rendering in Scilab
Scilab 5 Architecture schema
Introduction top
The Scilab roadmap is the roadmap of the operational team of the Consortium.
Some other tasks are developed by Scilab developers.
It is planned to make a major Scilab version (M) every 18 months and a minor version (m) every 9 months.
The schedule is the following:
Distrib. Date |
Version number |
Version type |
Schedule |
Dev. Time |
Feb. 2006 |
4.0 |
M |
T0 |
|
Dec. 2006 |
4.1 |
m |
T0 + 9 m |
9 m |
Oct. 2007 |
5.0 |
M |
T0 + 18 m |
9 m |
Major Scilab 5 Family objectives top
You will find below the major objectives of the Scilab 5.x versions family validated by the Steering Committee.
Reorganization and modularity:
To allow independent development of each Scilab components together with improvement and fixing via patches.
To give a genuine interoperability to the Scilab kernel and components from external programs and modules.
Implementation of dynamic libraries:
To ease improvement and fixing via patches.
GUI architecture and graphics design based on a unique and multiplatform language:
To simplify development with a unique, target independent, source code and to present a common look and feel.
New interpreter:
To allow an easy maintenance, to get rid of the constraints of Fortran language (stack, structure…), to improve efficiency of complex data structure handling and to allow 64 bits addressing.
First step of localization:
To allow easy change of menus and messages languages.
Scilab multithread:
To disconnect GUI events management and evaluation loop.
Scilab version 5.0 - October 2007 top
1. Recurrent works
- R1: First level assistance
- Answers to the emails and possibly sending to competent people.
- R2: Bugs tracking
- Following the bugs reports and non regression tests.
- R3: Qualification
- Daily compilation and checking.
- R4: Making of Scilab 4.1 release candidate.
- Tests, bug fixing, Web distribution.
- R4: Making of Scilab 4.1 version
- Tests, bug fixing, Web distribution.
- R4: Making of Scilab 5.0 release candidate.
- Tests, bug fixing, Web distribution.
- R6: Making of Scilab 5.0 version
- Tests, bug fixing, Web distribution.
- R7: Web site update
- Bugzilla, contributions repository, news...
- R8: Scilab maintenance
- Maintenance and bugs correction.
2. Main works
- W1: Reorganization and modularity, implementation of dynamic libraries.
- To allow independent development of each Scilab components together with improvement and fixing via patches.
- W2: On line help.
- Integration of the new DTD.
- Reorganize, revise and update all the on-line helps: text, examples, and hypertext links.
- W3: Scilab documentation.
- Make a manual for developers (Scilab internals, incremental link, integration of contributions).
- W4: Matlab to Scilab converter.
- New functions to convert.
- Adapt Scilab functions whenever possible to make translation easier and more efficient.
- W5: Kernel
- Scilab multithread.
- Specification of the internal API for interfacing external code.
- W6: Graphics
- Complete the existing graphics mode (graph, image, legend, text object …).
- Develop OpenGL driver and export format.
- W7: Java
- Architecture, Java Virtual machine.
- Java Graphics windows.
- Java console (with a handle like graphics windows).
- Java classes interface (typed handle).
- Dialog and menus management.
- GUI of graphics windows.
- W8: Improvements
- First step to Scilab localization.
- System call.
- Interface with zlib.
- Update the library (zlib) to work with the Matlab compressed files (v6 and v7).
- Support new graphics mode in EditGraph module.
- COM interface.
- Review demo files
- Numerical algorithms
- Integration of UMFPack for sparse matrices solvers.
- Find and integrate more efficient algorithms.
- Toolbox proposing FFTW (GPL licence).
- License.
- Rewrite and/or replace some files in order to be compatible with the future license.
- W9: Specific platform.
- Scilab 64 bits version for Windows and GNU/Linux.
- GNU/Linux.
- Integration of the Atlas libraries.
- Exceptions Management.
- Rewrite configure and makefile.
- Windows.
- Migration to Visual .NET 2005.
- Migration to Visual C++ Express 2005.
- Rewrite system "unix_*" functions.
- Integration to Vista.
Using Java for GUI architecture and graphics rendering in Scilab top
The main purpose is to have GUI architecture and graphics rendering based on a unique and multiplatform language, i.e. to simplify development with a unique, target independent, source code and to present a common look and feel:
Scilab team choose Java language.
It is important to notice that Java is not only a language but a framework (execution environment platform) belonging to a general approach collecting various fields: standard and methodology, quality, architecture, multimedia, training and, in a sense, project management.
General Java language qualities
- Simple: expressive syntax similar to C and C++.
- Architecture-neutral: portability (write once), Java programs are compiled into machine-independent byte codes.
- Robust: Java platform is rigorously tested.
- Advanced object-oriented language:
- Scalability and reusability, source code for an object can be written and maintained independently of the source code for other objects.
- Public interface and private information of an object.
- Abstract class to define generic behaviour.
- Automatic memory management (built-in garbage collector).
- Common API's and large libraries available: Java's object orientation, components architecture, and many API's let reuse other tested code.
Performance
Java is an interpreted language based on a virtual machine. But today, the gap between Java and C or C++ is reducing.
This is due to two factors:
- The computer performance increases every year.
- Just-in-time compiler is regularly improved.
Other advantages
The following points are important for the future of Scilab:
- Java is now a standard (certainly a de facto standard) recognized by industrials and academics in the whole world.
- Java takes advantage of a worldwide community of developers, well-qualified, working and well-organized.
- Java gives portability for 64 bits platforms.
- Java is multithreaded.
- Java programming is a lot easier than it looks. Today many development platforms or tools make Java programming easier (Eclipse, GUI editors).
For an efficient developer using a GUI editor, there is no need to completely know the API. Then interfacing work of all functions of GUI API with Scilab primitives is not essential.
- Java allows to obtain native “look & feel” of the platform where the application is running with GUI API toolkits (awt, swing, swt) or graphics API (jogl, java3d).
- Java gives easier new version delivery on the fly: you can upgrade programs quickly from a web server.
- Java has many large and powerful libraries available in various areas: GUI, audio, system, database interface, network, numerical computations, etc.
- Java has a JIT compiler (Just In Time) which translates pseudo-code to native code to get the highest execution speed. A compiled java code is platform-independent.
- Java license should change. SUN announced in May it would release an open source version of Java.
- Java is well-known by all young engineers from university and high school. It is now the reference language to learn programming. Lost of skilled programmers are quickly available.
Java in Scilab
In Scilab 5 Family, Java will be used for:
- Development of the new console,
- GUI and graphics rendering,
- Dialog box and UI Control.
Scilab 5 Architecture schema top
Please find hereafter the schema about Scilab 5 architecture with Java integration.
To be informed about Scilab events you can
register
to Sciclub
For more information about Scilab, send an e-mail to Doctor Scilab:
Scilab@inria.fr
The newsgroup comp.soft-sys.math.scilab
is a good place to exchange experience, ideas and Scilab programs.
All the messages of the newsgroup are archived
here.
For suggestions about this Web server, send an e-mail to Scilab@inria.fr
Copyright © 1989-2006. INRIA.
Scilab is a trademark of INRIA.
Other product or brand names are trademarks or registered trademarks of their respective holders.