Documentation de Gambas - /doc/intro

/doc/intro
Le page anglaise est plus récente.

# Introduction

- Au début...

- Caractéristiques

- Prospective

- A propos de moi

- Remerciements

## Au début...

### Ce projet vise à la création d'un environnement de développement graphique basé sur un interpréteur Basic, de sorte que nous ayons, sous Linux™. , un langage aussi facile que Visual Basic™

La quantité phénoménale de bugs et d'incohérences qui rend Visual Basic si charmant m'a persuadé de démarrer ce projet ;-)

Il semble que Microsoft était conscient de la pauvre qualité de son langage, car VB .Net n'est pas compatible avec les anciennes versions de Visual Basic.

Je veux dissiper les malentendus immédiatement. *Gambas n'essaye pas d'être compatible avec Visual Basic, et il ne le sera jamais. Je suis convaincu que sa syntaxe et tout ce qui est interne sont, de loin, meilleurs que ceux de son cousin propriétaire!

J'ai pris de Visual Basic ce que j'ai trouvé utile : le langage Basic, l'environnement de développement, et la facilité de faire des programmes rapidement avec des interfaces graphiques. C'est tout. J'aurais pu choisir la syntaxe de presque n'importe quels autres langages, mais j'étais nourri au Basic depuis l'enfance, donc...

Je n'aime pas le mauvais niveau de la plupart des programmeurs Visual Basic, souvent dû aux mauvaises pratiques imposées par les bogues et l'étrangeté de ce langage. Donc j'essayerai de rendre *Gambas aussi cohérent, logique et fiable que possible, et j'espère que les programmeurs **Gambas** feront des efforts en retour! :-)

J'espère que d'autre gens me rejoindront pour aider à améliorer les possibilités du langage. Il y a tellement à faire et à améliorer!

## Caractéristiques

J'essayerai d'illustrer les caractéristiques principales de *Gambas et ce qui le distingue des autres langages.

Gambas est, avant tout, un langage Basic avec des extensions objet. Un programme écrit avec Gambas est un ensemble de fichiers. Chaque fichier décrit une classe, en termes de programmation objet. Les fichiers de classe sont compilés, ensuite exécutés par un interpréteur. De ce point de vue, c'est très inspiré par Java™.

Gambas est composé des programmes suivants:

- Un compilateur.

- Un interpréteur.

- Un archiviste.

- Un composant d'interface graphique utilisateur.

- Un environnement de développement.

L'environnement de développement est écrit avec Gambas lui-même, de sorte que je peux montrer les capacités du langage. Et c'est très utile pour déboguer!

Quelles sont les caractéristiques qui distinguent Gambas des autres langages?

1. Un projet Gambas est enregistré dans un dossier. L' archiviste transforme la structure du répertoire de projet en un seul fichier exécutable.

2. Compiler un projet requiert seulement la compilation des classes modifiées. Chaque référence externe d'une classe est résolue dynamiquement à l'exécution.

3. Gambas possède une architecture de composants qui permet d'étendre le langage. N'importe qui peut écrire des composants en tant que bibliothèques partagées qui ajoutent dynamiquement de nouvelles classes native à l'interpréteur. Un composant peut être lui même écrit en Gambas. L'architecture des composants est documentée dans l'encyclopédie Wiki.

4. Par défaut, l'interpréteur Gambas est un programme texte-seul. L'architecture de composant est utilisée pour écrire la partie interface graphique utilisateur du langage.

5. Comme l'interface graphique utilisateur est implémentée en tant que composant, Gambas peut être indépendant de toute bibliothèque graphique! vous serez en mesure d'écrire un programme, et choisir la bibliothèque graphique plus tard : GTK+, Qt4, etc.

6. J'ai décidé de démarrer l'implémentation de l'interface utilisateur graphique avec la bibliothèque qt, parce qu’elle est plus simple pour moi. Le composant Gtk+ n'est pas encore fini, mais il aura presque la même interface que le composant Qt.

7. Les projets Gambas sont facilement traduisibles, dans n'importe quelle langue.

8. Son modèle objet est simple mais puissant.

## Prospective

Dans un futur très lointain (Vous entendez le thème Star Trek?), beaucoup d'améliorations sont planifiées. Elles dépendent de mon temps libre et de mes nombreuses autres occupations!

Tâche | Détail
--- | ---
Un composant web amélioré | Des nouveaux contrôles et conteneurs qui génèrent des pages web html, avec peut-être du JavaScript. Des améliorations du composant Database De nouveaux contrôles de données, comme un TreeView lié par exemple.
Un composant de graphe. | Faire des graphiques en Gambas.
Un composant POP3 | Récupérer des mails depuis un serveur POP3.
Système de persistance objet | Rendre persistants les objets Gambas de manière transparente : vous pouvez vous débarrasser d'un système de gestion de base de donnée.

## A propos de moi

Bienvenue à toi, curieux! Tu es sur le point de savoir presque tout de moi...

Mon nom est Benoît Minisini. Je suis un français né en 1972, vivant à Paris. Programmer est une de mes passions depuis que j'ai 12 ans, et c'est maintenant mon travail depuis de nombreuses années. Cette passion a démarré avec le langage Basic sur un Amstrad CPC 464, et plus tard sur un Atari 520 STE. Bien sûr, maintenant, j'utilise beaucoup d'autres langages, mais je n'ai jamais oublié que j'ai appris et fait beaucoup avec le Basic.

J'ai toujours aimé écrire des langages, compilateurs, assembleurs, et des interpréteurs. J'ai écris un assembleur Z80 sur Amstrad et un langage interprété qui consommait toute sa mémoire.

Plus tard, durant mes études à l'E.P.I.T.A., j'ai écris un interpréteur Lisp sous Windows©®™ 3.1©®™. Durant six mois, j'ai découvert Windows©®™, son modèle de mémoire stupide, le compilateur C de Microsoft©®™, et ses nombreux bugs.

Aujourd'hui, je continue avec acharnement avec le langage *Gambas, contribuant par ma propre expérience au monde du logiciel libre.

Grâce à mon patron, j'ai un travail à mi-temps, donc j'ai travaillé activement sur Gambas pendant ces dernières années.

Mais j'ai d'autres passions aussi, qui me prennent beaucoup de temps. Il y a la musique - Je joue de la flûte depuis longtemps - et le théâtre …

Donc, le développement de Gambas n'est pas aussi rapide qu'il pourrait être.

J'espère que ta curiosité a été satisfaite... :-)

## Remerciements

*Gambas est construit avec le meilleurs de beaucoup de logiciels libre, et ne pourrait pas exister sans eux.

Donc j'aimerais remercier tout les gens impliqués dans les projets suivants:

- Linux

- KDE

- GCC et tout les outils GNU, bien sur.

- La bibliothèque Qt.

- GIMP et sa bibliothèque GTK+

- Libre Office.

- Les systèmes de gestion de base de données PostgreSQL et MySQL.

- Les systèmes de gestion de base de données MySQL, PostgreSQL et SQLite.

- Et d'autre bibliothèques utilisées par Gambas

Certaines parties du code de Gambas sont basées sur des logiciels tiers:

- Les routines de gestions de tables de hachage sont basées fortement sur la Glib.

- Les routines de gestion de date sont basées fortement sur la Glib également.

- La coloration syntaxique de l'éditeur Gambas est basé sur le code QMultiLineEdit de Qt3.

- Le composant d'information d'image est basé sur un code source de PHP.

- La routine naturelle de tri de comparaison est basée sur l'algorithm fait par Martin Pol.

Et les derniers mais non les moindres, j'aimerais remercier tout les gens qui m'aident par des programmes, correctifs, exemples de programmes, rapports de bogues, écriture d'aide, support financier, remarques judicieuses, etc...