Introduction

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 bogues 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 rétrocompatible 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'autres personnes me rejoindront pour aider à améliorer les possibilités du langage. Il y a encore 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, puis 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 archiveur.

  • 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 répertoire. L' archiveur transforme la structure du répertoire du projet en un seul fichier exécutable.

  2. La compilation d'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 natives à l'interpréteur. Les composants peuvent être eux-mêmes écrits 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 uniquement textuel. L'architecture de composant est utilisée pour écrire la partie de l'interface graphique utilisateur du langage.

  5. Comme l'interface graphique utilisateur est implémentée en tant que composant, Gambas pourra ê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, car 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 Qt4.

  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 un peu de magie du JavaScript.
Amélioration des composants de base de données De nouveaux contrôles de données, comme un TreeView lié par exemple.
Un composant de graphe. Faire des graphiques en Gambas.
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. La programmation 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, des compilateurs, des assembleurs et des interpréteurs. J'ai écrit 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 écrit 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 bogues.

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 meilleur de beaucoup de logiciels libres, et ne pourrait pas exister sans eux.

Donc j'aimerais remercier tous les gens impliqués dans les projets suivants : Certaines parties du code de Gambas sont basées sur des logiciels tiers :
  • Les routines de gestion de tables de hachage sont basées fortement sur celles de Glib.

  • Les routines de gestion de date sont basées fortement sur celles de Glib également.

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

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

  • La routine de comparaison de tri naturel est basée sur l'algorithme écrit par Martin Pol.

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