Développeur : Première 'Release Candidate' de Gambas 2
Posté par Benoît Minisini (page perso, ). Modéré le 18 novembre 2007.
Gambas est un environnement de développement libre (licence GPL) basé sur un langage à objets interprété utilisant la syntaxe du BASIC. Après plus de deux ans de développement (sept ans si on compte la première version), la première version candidate à la publication (« release candidate ») de Gambas 2 est disponible. Vous trouverez plus de détails dans la suite de la dépêche ainsi que dans un article plus complet sur le wiki de Gambas.
L'architecture de Gambas s'inspire beaucoup de celle de Java : il y a un compilateur (rapide) qui transforme le code source en fichiers compilés, un interpréteur (petit) qui les exécute et un « archiveur » (serein) qui génère un fichier exécutable unique à partir de l'ensemble des fichiers contenus dans un projet. Il y a aussi un « scripteur », qui permet d'utiliser Gambas comme langage de script.
L'interpréteur est un programme en ligne de commande. Toutes les autres fonctionnalités sont fournies par les composants, qui sont un ensemble de classes écrites en C/C++, ou bien directement en Gambas.
L'architecture de Gambas s'inspire beaucoup de celle de Java : il y a un compilateur (rapide) qui transforme le code source en fichiers compilés, un interpréteur (petit) qui les exécute et un « archiveur » (serein) qui génère un fichier exécutable unique à partir de l'ensemble des fichiers contenus dans un projet. Il y a aussi un « scripteur », qui permet d'utiliser Gambas comme langage de script.
L'interpréteur est un programme en ligne de commande. Toutes les autres fonctionnalités sont fournies par les composants, qui sont un ensemble de classes écrites en C/C++, ou bien directement en Gambas.
Gambas (941 hits)
Article détaillé (614 hits)
Wiki de Gambas (107 hits)
Téléchargement (106 hits)
> Lire la dépêche (23 commentaires, moyenne: 2,4).
Vous avez demandé le commentaire #883177.




Vraiment sympa
Avant de commencer mes compliments, je précise juste à la base que je déteste le basic et ayant malheureusement déjà eu affaire a du VBA, je préfère de loin des solutions complètes et réelement puissantes (C++/Qt, Python, Java)
Cependant, j'ai quand même par curiosité testé Gambas. Et là j'ai été surpris :
- réelement rapide : a dire vrai je vois pas, à première vue, la différence avec un programme C++/Qt
- indépendance du toolkit graphique : voila qui va permettre de coder des petites applications pour n'importe quel bureau sans facher l'un ou l'autre parti.
- environnement complet : autocomplétion, facilité de programmation graphique, de déployement d'application. Ce n'est pas parfait, mais tout de même bien abouti.
Bref, personnellement je n'utiliserai pas Gambas pour des gros projets, par contre il a vraiment sa place pour un programme courant relativement simple. (légèrement dommage que je n'aime pas la syntaxe du basic)
Bref, je n'ai pas tout testé en détail et il y a sans doute des avantages/inconvénients que je n'ai pas vu, mais Gambas mérite bel et bien qu'on s'y attarde un peu plus.
[^]Re: Vraiment sympa
Avant de commencer mes compliments, je précise juste à la base que je déteste le basic et ayant malheureusement déjà eu affaire a du VBA, je préfère de loin des solutions complètes et réelement puissantes (C++/Qt, Python, Java)
D'accord pour le C++/Qt, mais en ce qui concerne Python et Java, en quoi Gambas est-il moins puissant ?
Bref, personnellement je n'utiliserai pas Gambas pour des gros projets, par contre il a vraiment sa place pour un programme courant relativement simple...
Gambas m'a permis de développer l'IDE de Gambas, son gestionnaire de base de données, et (pour le boulot) une sorte de frawework web permettant de gérer un peu tout et n'importe quoi (réseaux d'assainissement, centre d'appel, pipelines) depuis un navigateur.
J'ai, en outre, de plus en plus envie de faire un débogueur C/C++ (un front-end à gdb) car aucun ne me convient actuellement.
Donc il peut servir à faire de gros projets - enfin tout dépend ce qu'on entend par "gros" évidemment.
...(légèrement dommage que je n'aime pas la syntaxe du basic)
Bon, je reconnais que je suis tombé dans le Basic quand j'étais petit : Victor Lambda, Hector Lambda, Amstrad, Atari. Tout était programmable en Basic à cette époque. :-)
Par contre j'ai surement autant souffert que n'importe qui de l'amoncellement de bugs et d'incohérences connu sous les doux noms de Visual Basic ou VBA.
C'est une des raisons de l'existence de Gambas d'ailleurs.
[^]Re: Vraiment sympa
Quand je disque je n'utiliserais pas Gambas pour un gros projet, c'est notamment dû au fait que l'on perd le côté multiplatforme de Qt, que l'on a pas accès au même nombre de fonctionnalités de la bibliothèque Qt et que, à l'heure actuel, je ne supporterai pas d'utiliser un langage BASIC à longueur de journée ^^. Peut-être qu'une utilisation plus poussé de Gambas pourra m'enlever le dernier point.
Python et Java possède tout deux une grosse librairie complète et peuvent, de surcroit, utiliser Qt (tout en restant, normalement, multiplatforme).
Après, je ne le nie pas, les fonctionnalités de Gambas restent impressionnantes. J'ai peut-être parler un peu rapidement en ne prenant en compte que mes besoins/envies et le peu que je connais de Gambas.
[^]Re: Vraiment sympa
...je ne supporterai pas d'utiliser un langage BASIC à longueur de journée ^^.
Et s'il y avait un second compilateur utilisant la syntaxe du C ? Ça doit être faisable... :-p
[^]Re: Vraiment sympa
Quitte à ajouter une autre syntaxe (ceci n'est qu'une proposition de ma part, tu fait évidemment ce que tu veux) : le python
autant il y a des truc en python qui me dérange, autant leur syntaxe (bloc délimité par l'indentation, les foreach, les range...) est très agréable. Et ça à l'avantage de forcer le programmeur a bien indenter son programme, chose que tout les langages ne font pas. Et il n'y a pas, comme en basic, de délimitation de ligne par ; , chose qu'on a tous oublié une fois dans sa vie et qu'on a eu du mal à trouver d'où venait le problème.
En fait, un des truc qui me soule en Basic (ou ADA, ou Bash, ou VHDL, ou ...) c'est la délimitation des blocs... un coup c'est END, ENDIF, ENDLOOP (et encore, le bash est très peu cohérent avec des FI, ESAC et ENDLOOP).... Ok c'est (parfois) logique, mais c'est chiant d'écrire tout ça et je finis par me mélanger les pinceaux entre toutes les variantes syntaxiques des langages semblables... De plus, après les IF il y a un THEN qui sert à rien et que j'oublie tout le temps ^^
PS : ceci n'est pas un troll, juste une conséquence de ma trop grande habitude au C-like
[^]Re: Vraiment sympa
Quitte à ajouter une autre syntaxe (ceci n'est qu'une proposition de ma part, tu fait évidemment ce que tu veux) : le python
Aarghhh !
autant il y a des truc en python qui me dérange, autant leur syntaxe (bloc délimité par l'indentation, les foreach, les range...) est très agréable. Et ça à l'avantage de forcer le programmeur a bien indenter son programme, chose que tout les langages ne font pas.
Je préfère pouvoir indenter comme je veux. Et les blocs délimités par l'indentation m'ont fait immédiatement fuir la première fois que j'ai mis le nez dans Python.
...Et il n'y a pas, comme en basic, de délimitation de ligne par ; , chose qu'on a tous oublié une fois dans sa vie et qu'on a eu du mal à trouver d'où venait le problème.
Euh, non ça c'est en C. Il n'y a pas de délimiteur de fin de ligne dans Gambas, si ce n'est le passage à la ligne, à condition qu'aucun opérateur n'attende d'argument.
En fait, un des truc qui me soule en Basic (ou ADA, ou Bash, ou VHDL, ou ...) c'est la délimitation des blocs... un coup c'est END, ENDIF, ENDLOOP (et encore, le bash est très peu cohérent avec des FI, ESAC et ENDLOOP).... Ok c'est (parfois) logique, mais c'est chiant d'écrire tout ça et je finis par me mélanger les pinceaux entre toutes les variantes syntaxiques des langages semblables.
Ca je l'admet. Il faut connaître: IF / END IF, SELECT / END SELECT, DO / LOOP, WHILE / WEND, REPEAT / UNTIL et FOR / NEXT.
D'un autre côté, ça rend la structure du code parfois plus lisible.
De plus, après les IF il y a un THEN qui sert à rien et que j'oublie tout le temps
En Gambas le THEN de fin de ligne est facultatif ! :-)
[^]Re: Vraiment sympa
>> Je préfère pouvoir indenter comme je veux. Et les blocs délimités par l'indentation m'ont fait immédiatement fuir la première fois que j'ai mis le nez dans Python.
Ben moi ça m'a fait tout l'effet inverse (^_^). En plus, ça limite les styles différents (style C Gnu, style C K&R etc...), tout le monde a le même en python (ou presque). Au moins c'est consistant. Ensuite, tu n'écris pas 15 000 caractères inutiles et ça facilite le travail à plusieurs. De plus, en python, tu peux tout de même choisir de mettre une instruction sur plusieurs lignes avec le \
>> Euh, non ça c'est en C. Il n'y a pas de délimiteur de fin de ligne dans Gambas, si ce n'est le passage à la ligne, à condition qu'aucun opérateur n'attende d'argument.
C'est ce que je disais. Le "comme en basic" veut dire que le basic resemble au python sur ce point. Mais il est clair que la phrase est tendancieuse.
>> Ca je l'admet. Il faut connaître: IF / END IF, SELECT / END SELECT, DO / LOOP, WHILE / WEND, REPEAT / UNTIL et FOR / NEXT.
D'un autre côté, ça rend la structure du code parfois plus lisible.
Justement, ceci rajoute pour moi une difficulté inutile car l'apport en lisibilité est somme toute AMHA assez minime, rentre en conflit avec les mots clés d'autres langages et fait écrire des caractères en trop (^_^).
Bon après, tout ça c'est des détails de syntaxe et ça n'a pas beaucoup d'importance par rapport à la qualité des différentes librairies utilisables et des propriétés intrinsèques du langage (fortement typé, OO, etc.....).
[^]Re: Vraiment sympa
La ca me depasse j'ai du mal a comprendre l'architecture de Gambas !
Pour moi c'etait tres Basic dependant !
Deuxieme point, sur lequel je suis assez d'accord, c'est quitte a ajouter des languages
autant ajouter des languages "plus facile a manipuler" que le C.
Python, Ruby, .... (meme si je ne suis pas fan de Python ;-) )
[^]Re: Vraiment sympa
Pas possible pour les "gros projets" ???
Avec Gambas, je ne sais pas mais je vais essayer. Dans un autre monde (commercial, fermé, propriétaire, monopolistique, ....) avec un produit très proche de Gambas, j'ai réalisé un projet en V.B6 qui comportait plus de 14 000 lignes (quatorze mille) qui fonctionne encore aujourd'hui alors qu'il y a 3,5 ans que je suis à la retraite, qui utilisait une base de données et faisait appel a un paqutes importants d'API Win 32. Alors , gros projet ou pas ???
[^]Re: Vraiment sympa
Je n'ai pas dis que ce n'était pas possible, j'ai dis que JE ne le ferais pas (et sous aucun prétexte) ! nuances !
Après les goûts, les couleurs, toussa toussa...