Gambas is, before all, a Basic language with object extensions. A program written with Gambas is a set of files.
Each file describes a class, in terms of object programming. The class files are compiled, then executed by an interpreter. From this point of view, it is very inspired by Java.
The development environment is written with Gambas itself, so that I can show the abilities of the language. Gambas 2 is very useful for debugging!
Here are some key features of "Gambas 3":
· A Gambas project is stored under one directory. The archiver transforms the project directory structure in one sole executable file.
· Compiling a project only requires the compilation of the modified classes. Every external reference of a class is solved dynamically at the execution time.
· Gambas has a component architecture that allows to extend the language. Anyone can write components as shared libraries that dynamically add new native classes to the interpreter. The component architecture is documented in the Wiki encyclopaedia.
· By default, the Gambas interpreter is a text-only program. The component architecture is used for writing the graphical user interface part of the language.
· As the graphical user interface is implemented as a component, Gambas will be able to be independent of any toolkit ! You will be able to write a program, and choose the toolkit later : GTK , Qt, etc.
· I have decided to start implementing the graphical user interface with the Qt toolkit, as it is easier for me. Later, I will write a GTK component that will have almost the same interface as the Qt component. I think GTK 2.0 will have enough features to be as powerful as Qt 3.0
· Any window or dialog box can be used like a control. You cannot do such a thing with Visual Basic without using ActiveX (bless you ! I know, I'm a bit allergic too).
· Gambas projects are easily translatable, in any language. Well, to be honest, I'm not sure for Arabic, Japanese and Chinese...
What's New in This Release: [ read full changelog ]
· The special mathematical functions of glibc are correctly detected and used now.
· Floating point numbers should be printed in a better way.
· French, Czech and Catalan translations were updated.
And two security holes were closed:
· String hashing algorithm has been randomized. See that document for the details.
· In the IDE, you cannot get the project version by running a program (what a stupid idea!). Now you get it from a text file located in a parent directory of the project.