Questions fréquemment posées (FAQ)

Pourquoi as-tu nommé ce projet "Gambas" ?

Il me semble que les noms de projets libres sont souvent des animaux, particulièrement les langages de programmation comme : Python, Camel, Bonobo, etc. Et je voulais avoir un acronyme récursif avec le mot "Basic" dedans. Donc, Gambas Almost Means BASic !

Est-ce que Gambas est compatible avec Visual Basic™ ?

Non, et il ne le sera jamais ! Heureusement, il y a beaucoup de ressemblances, mais ne vous attendez pas à prendre votre ancien code Visual Basic et à l'exécuter avec Gambas sans y apporter de changement. Vous pouvez aller à la page de dépannage pour trouver certains exemples des différences entre ces deux langages.

Voir aussi : Différences avec Visual Basic

Gambas sera t-il compatible avec Java ou .Net ?

Jamais, j'en ai bien peur. Il y a beaucoup de raisons, bonnes et mauvaises :
  • Je ne suis pas Sun Oracle, Microsoft ou Sauron.. Je ne veux pas imposer un langage unique à tout le monde. C’est stupide, n'est-ce pas ? :-)

  • Je veux un langage simple mais puissant, pas nécessairement destiné à des professionnels ou des geeks.

  • Je l'avais fait pour le fun aussi ! J'aime bien écrire des compilateurs, interpréteurs, machines virtuelles... Donc je n'ai pas utilisé les spécifications Java ni .Net. l'IDE Gambas est écrit en Gambas.

Gambas est-il multiplateforme ?

Dans l'avenir, j'espère que la réponse sera un simple : "Oui!". :-) Actuellement, il y a des gens qui compilent Gambas sous BSD et Win32/Cygwin.

Pourquoi ne fusionnes-tu pas ton projet avec HBasic, MonoBasic, Parrot... ?

Il y a beaucoup trop de différences techniques entre ces projets et le mien pour penser à une fusion.

Un autre problème est que l'interpréteur Gambas suit de très près les caractéristiques du langage dont j'ai besoin. Les caractéristiques de .Net/Parrot sont très différentes de celles de Gambas. Ce n'est pas juste un problème d'interprétation du bytecode. Par exemple, il y a le compteur de référence par rapport au problème du ramasse-miette. Qu'est-ce qui se passerait pour le système de gestion des composants ? Pour la gestion des héritages de classes ? etc.

Comment compiler, construire et installer Gambas ?

Voir Compilation et installation

Comment puis-je désinstaller Gambas ?

Si vous avez installé Gambas en utilisant le gestionnaire de paquets de votre distribution, il devrait être facile d'utiliser la procédure normale de désinstallation. Si vous l’avez installé à partir des sources en root, supprimez simplement le dossier d'installation. Par exemple, si vous avez installé Gambas dans /opt/gambas3, faites simplement en tant qu’administrateur (root) :

  $ rm -rf /opt/gambas2

Si le préfixe d'installation est /usr, ou /usr/local (ce dernier est celui par défaut) alors vous devez supprimer chaque dossier un par un.

  $ rm -f /usr/local/bin/gbx2 /usr/local/bin/gbc2 /usr/local/bin/gba2 /usr/local/bin/gbi2
  $ rm -rf /usr/local/lib/gambas2
  $ rm -rf /usr/local/share/gambas2

Puis-je accéder à mes bases de données PostgreSQL, MySQL, etc. avec Gambas ?

Vous pouvez actuellement accéder aux bases de données PostgreSQL, MySQL et SQLite dans la version stable, et plus dans la version de développement. Si vous voulez développer un autre driver pour un autre système de base de données, dites-le moi. Vous êtes les bienvenus !

Je suis un programmeur C/C++. Comment puis-je t'aider ?

Vous êtes les bienvenus pour aider !
  • Premièrement vous pouvez vous enregistrer à la liste de diffusion des développeurs et vous présenter.

  • Ensuite, vous devez essayer de comprendre l'architecture de Gambas : le compilateur, l'interpréteur, l'environnement de développement, les composants et comment ils vivent ensemble.

  • Ensuite vous pouvez lire la documentation du développeur sur le wiki : il vous expliquera comment programmer des composants.

Vous trouverez l’exemple de composant nommé gb.example qui est très richement commenté. En lisant les sources de cet exemple, vous comprendrez comment écrire un composant.

Si vous voulez écrire un driver de base de données pour le composant base de données, le driver PostgreSQL est commenté, de sorte que vous puissiez plus facilement savoir comment faire.

Bien sûr, je répondrai à n'importe quelle question et vous aiderai autant que je peux, à condition que vous ayez passé plus d'une année scolaire à apprendre le C/C++ :-)

Je ne suis pas un programmeur C/C++. Comment puis-je t'aider ?

N'importe quelle aide sur les tâches suivantes est bienvenue. Aucune compétence en programmation en C/C++ n'est requise !
  • Jouer avec Gambas et signaler des bogues.

  • Faire des exemples de programmes pour les débutants, et me les envoyer pour que je les mette dans le paquet source.

  • Faire un tutoriel pour montrer aux débutants comment écrire leurs premiers programmes Gambas. Ce serait une super idée ! :-)

  • Traduire Gambas dans votre propre langue, si ce n'est pas encore fait. Voir Comment traduire l'IDE de Gambas pour plus d'informations.

Puis-je développer des logiciels propriétaires avec Gambas ?

Oui, vous pouvez.

La licence publique générale (GPL) dit que, par lui-même, Gambas est libre (comme "dans liberté"). Il n’y a pas d’exigence sur les programmes écrits avec Gambas, mais certaines bibliothèques ont des exigences explicitement différentes.

Par exemple, les composants Gambas suivants nécessitent que votre logiciel distribué soit publié sous GPL :

Est-ce que tu porteras Gambas sur Windows™ ?

Je ne le ferai pas, mais j'aiderai n'importe quelle personne qui essayera de le faire.

Gambas fonctionne déjà sous Cygwin. Notez qu'il y a beaucoup de choses à porter, si vous voulez faire un portage natif : gestion des processus, composant gb.qt4, et ainsi de suite... C'est un travail énorme. Le compilateur cible le plus prometteur serait Mingw-w64, qui permet également la compilation croisée sur un système de type unix.

Gambas fonctionnera-t-il sur les systèmes utilisant Wayland ?

Oui, mais Wayland manque de nombreuses fonctionnalités sur lesquelles une application gambas GUI peut ou non s'appuyer.

Les applications sans interface graphique devraient fonctionner comme prévu.

Les applications GUI peuvent manquer de certaines fonctionnalités ou ne pas s'ouvrir comme prévu à cause de contraintes comme le placement des fenêtres. Contrairement aux systèmes x11, c'est Wayland qui contrôle l'endroit où la fenêtre s'ouvre et non l'application. Ainsi, un programme qui devrait ouvrir sa fenêtre à une position spécifique ne le fera pas sur Wayland. Les applications qui dépendent de leur propre placement de fenêtre ne fonctionneront pas comme elles le devraient sur wayland.

Il existe également d'autres problèmes mineurs. En résumé, la réalisation d'une application conforme à wayland impliquera principalement l'utilisation d'un nombre réduit de fonctionnalités de la boîte à outils du GUI et si vous développez le projet sur un système wayland, il devrait être clair que certaines choses (en particulier le positionnement de la fenêtre) ne fonctionneront pas comme prévu sur un système x11.