مدخل

في البداية...

هذا المشروع يهدف لإنشاء بيئة تطوير رسومية معتمدا على مترجم بيسك™ , وذلك لنملك لغة مشابهة لـ Visual Basic™ في .

The phenomenal quantity of bugs and inconsistencies that makes Visual Basic so delightful persuaded me to start this project ;-)

It seems that Microsoft was aware of the poor quality of its language, as VB .Net is not backward compatible with older versions of Visual Basic. I think they have thrown away the Visual Basic interpreter source code, and VB .Net is just a .Net runtime compiler whose syntax looks like the old Visual Basic one.

I want to clear up any misunderstanding immediately. *جامباس does not try to be compatible with Visual Basic, and will never be. I'm convinced that its syntax and internals are far better than the one's of its proprietary cousin ;-)

I took from Visual Basic what I found useful : the Basic language, the development environment, and the easiness to quickly make programs with user interfaces. That's all. I could have chosen the syntax of almost any other language, but I was fed with Basic from childhood, so...

I dislike the bad level of common Visual Basic programmers, often due to bad pratices imposed by the bugs and strangeness of this language. So I will try to make *Gambas as coherent, logical and reliable as possible, and I hope that **Gambas** programmers will make effort in return! :-)

The kernel of *Gambas is now stabilized, if not completely well documented. There is a المكوٍّن example to help people learning how to write components.

I hope other people will join me to help to increase the possibilities of the language. There is so much to do!

المميزات

I will try to depict the main features of *جامباس and what sets it from the other languages.

*Gambas is, before all, a Basic language with 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™.

*Gambas is made up of the following programs:

  • A compiler.

  • An interpreter.

  • An archiver.

  • A graphical user interface المكوٍّن.

  • A development environment.

The development environment is written with *Gambas itself, so that I can show the abilities of the language. And it is very useful for debugging! What are the features that set *Gambas from the other languages?

  1. A *Gambas project is stored under one directory. The archiver transforms the project directory structure in one sole executable file.

  2. Compiling a project only requires the compilation of the modified classes. Every external reference of a class is solved dynamically at the execution time.

  3. *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. Component can be written in **Gambas** too. The component architecture is documented in the Wiki encyclopaedia.

  4. 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.

  5. 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.

  6. I have decided to start implementing the graphical user interface with the Qt toolkit, as it is easier for me. The GTK+ component is not finished yet, but it will have almost the same interface as the Qt component.

  7. 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 ;-) ).

  8. *Gambas projects are easily translatable, in any language.

For more details, see Release Notes.

التطلعات

In the very far future (do you hear the Star Trek theme?), many improvements are planned. Some are needed, the others depends on my time and my many occupations!

Task Detail
DBUS المكوٍّن Allow a جامباس program to use external DBUS objects.

Allow a gambas project to export some of its classes or objects as DBUS objects.
Reporting New controls and containers that print themselves as a report.

Allow the user to design a report directly in the IDE.
Enhanced web New controls and containers that generate html Web pages, with maybe some JavaScript. Database component enhancements

New data controls, like a bound TreeView for example.
Development Environment enhancements A better debugger.

Merging the database manager in the IDE.

Support for report forms, Web forms...
Graph component Making graphs in *Gambas.
POP3 component Retrieve mails from a POP3 server.
Object persistence system Make *Gambas objects transparently persistent: you can get rid of a database management system.

Well... I think I must stop dreaming, and go back coding...

عني

Welcome to you, curious! You're going to know almost everything about me...

My name is Benoît Minisini. I am a thirty-six years old french man living in Paris. Programming is one my passion since I was twelve, and is now my job for six years. This passion started with the Basic language on a CPC Amstrad 464, and later on an Atari 520 STE. Of course, now, I am using many other languages, but I never forgot that I have learned and done a lot with Basic.

I was always fond of writing languages, compilers, assemblers, and interpreters. I wrote a Z80 assembler on Amstrad and an interpreted language that consumed all its memory.

Later, during my studies at the E.P.I.T.A., I wrote a Lisp interpreter under Windows 3.1. During six months, I discovered Windows, its stupid memory model, the Microsoft C compiler, and its numerous bugs.

Today, I keep on raging with the *جامباس language, contributing with my own experience to the free software world.

Thanks to my boss, I have a half-time job, so I have worked actively on *Gambas for three years.

But I have other passions too, that burn a lot of time. There is music - I'm playing flute for a long time - and theatre now...

So, the development of *Gambas is not as fast as it could be.

I hope your curiousity was satisfied... :-)

شكر وتقدير

*جامباس is build on top of many free softwares, and could not exist without them.

So I would like to thank every people involved in the following projects:
*
* KDE
* GCC and all of the GNU tools, of course.
* The [../../comp/gb.qt4/qt] toolkit.
* The GNU [../../comp/gb.image/image] Manipulation Program and its toolkit GTK+.
* Open Office.
* The  and PostgreSQL database management systems.
* And any other libraries used by ***Gambas***.

Some pieces of code of *Gambas are based on third party software:
* The hash tables management routines are heavily based on the Glib ones.
* The date management routines are heavily based on the Glib ones as well.
* The ***Gambas*** syntax highlighting editor is based on the QMultiLineEdit code of Qt.
* The image information المكوٍّن is based on source code from PHP.

And last but not least, I would like to thank every people who help me out with programs, patches, program examples, bug tracking, help writing, financial support, judicious remarks, and so on...