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 vous permet entre autres de:
- Développer votre interface graphique en utilisant indifféremment QT ou GTK+.
- Accéder aux systèmes bases de données MySQL, PostgreSQL, SQLite, Firebird, ainsi qu'à toute base de données disposant d'une interface ODBC.
- Piloter des applications KDE par DCOP.
- Traduire votre application en n'importe quel langage.
- Créer des applications réseaux, et utiliser directement les protocoles HTTP, FTP, DNS, SMTP.
- Créer des applications OpenGL et SDL.
- Créer des "applications Web" avec gestion de sessions.
- Créer des applications en ligne de commandes.
- Un héritage entièrement dynamique qui permet de : créer une version plus spécialisée d'une classe déjà existante ; surcharger les méthodes ou les propriétés d'une classe existante ; ré-implémenter une classe et l'étendre.
- Le mécanisme précédent s'applique aussi bien aux classes écrites en Gambas qu'aux classes natives écrites en C/C++.
- Un faible nombre de classes (environ 350) et de symboles à maîtriser relativement au nombre de fonctionnalités offertes.
- Les composants d'accès aux bases de données permettent d'écrire un code indépendant du SGBD utilisé.
- Les composants d'interface graphique permettent de concevoir une interface graphique indépendante du toolkit (QT ou GTK+). A terme, c'est une indépendance complète vis-à-vis du bureau qui est visée.
- Et surtout, un environnement de développement intégré complet.
- L'absence de version 64 bits - pour l'instant.
- Quelques fonctionnalités manquantes dans le langage, comme les structures ou les énumérations.
- le composant GTK+ qui n'est pas entièrement terminé.
Aller plus loin
- Gambas (8 clics)
- Article détaillé (22 clics)
- Wiki de Gambas (2 clics)
- Téléchargement (10 clics)
# On n'est jamais si bien servi que par soit même !
Posté par xavier philippon . Évalué à -1.
[^] # Re: On n'est jamais si bien servi que par soit même !
Posté par Benoît Minisini (site web personnel) . Évalué à 6.
Pour ce qui est d'avoir fait la dépêche moi-même :
J'ai le problème que Gambas est systématiquement vu à travers le filtre de Visual Basic, alors que le côté "Basic" n'est finalement que du sucre syntaxique. L'habit ne fait pas toujours le moine !
Donc je me suis dit, pourquoi ne faire un court article moi-même en essayant de recenser toutes les fonctionnalités du langage ?
# Vraiment sympa
Posté par HoloAddict (site web personnel) . Évalué à 6.
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
Posté par Benoît Minisini (site web personnel) . Évalué à 4.
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
Posté par HoloAddict (site web personnel) . Évalué à 2.
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
Posté par Benoît Minisini (site web personnel) . Évalué à 1.
Et s'il y avait un second compilateur utilisant la syntaxe du C ? Ça doit être faisable... :-p
[^] # Re: Vraiment sympa
Posté par HoloAddict (site web personnel) . Évalué à 5.
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
Posté par Benoît Minisini (site web personnel) . Évalué à 2.
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
Posté par HoloAddict (site web personnel) . Évalué à 1.
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
Posté par xeuzuex . Évalué à 2.
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
Posté par polo3565 . Évalué à 2.
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
Posté par HoloAddict (site web personnel) . Évalué à 2.
Après les goûts, les couleurs, toussa toussa...
# sur Wikipedia.org
Posté par Space_e_man (site web personnel) . Évalué à 4.
Par contre, j'ai été voir sur Wikipedia.org, et je trouve dommage que l'article ne soit pas plus complet... Je ferais bien un copier coller de celui-ci (de LinuxFr.org vers Wikipedia.org) mais j'ai peur de faire une gaffe :d..
Peut-être quelqu'un qui connait bien Gambas pour le faire ?
http://fr.wikipedia.org/wiki/Gambas_%28langage%29
[^] # Re: sur Wikipedia.org
Posté par Frédéric Lopez . Évalué à 1.
Comme équivalent libre de Delphi, il y a Lazarus : http://www.lazarus.freepascal.org/
# multiplateforme ?
Posté par LeVulcain . Évalué à 2.
Gambas est-il destiné à être multi plateforme ?
Je pense qu'un support d'au moins windows et accessoirement de MacOS ouvrirait de larges horizons à Gambas ....
en ce qui me concerne , je suis comme beaucoup , sous linux à la maison et sous windows au bureau : je n'utilise donc que des applis qui existent sur les 2 plateformes . ..
En tout cas, encore bravo pour cet excellent travail !
[^] # Re: multiplateforme ?
Posté par Benoît Minisini (site web personnel) . Évalué à 2.
En pratique, le portage vers Windows est relativement compliqué, il ne m'intéresse pas, mais je suis prêt à aider quiconque veut se lancer là-dedans.
Pour ce qui est des processeurs grand-indien, c'est prévu mais ça n'a jamais vraiment été testé, car je ne dispose pas de quoi. Concrètement, ça ne marche pas, même si ça devrait.
Pour ce qui est des systèmes 64 bits, ça ne marche pas en natif. Mais j'ai prévu de m'y attaquer en priorité après la sortie de la version 2 finale.
Sinon pour les Windoziens, il y a toujours possibilité de faire tourner Gambas dans une machine virtuelle et d'utiliser le client et le serveur NoMachine pour l'exécuter à distance. :-)
[^] # Re: multiplateforme ?
Posté par LeVulcain . Évalué à 0.
pour windows , je pensait surtout à la possibilité de produire des applis multi plateforme : le développement se faisant ééééviiiidement sous linux ;o) .
[^] # Re: multiplateforme ?
Posté par Fabien Bodard . Évalué à 3.
Il y a beaucoup d'outils natif et ou multi_plateforme pour windows.. et beaucoup de développeurs se concentrant sur windows. Je ne pense pas qu'il faille se plaindre pour une fois que le développement d'un langage de programmation se concentre se concentre avant tout sur des plateformes libres... Et est intégré réellement a celles-ci... (des interfaces en pyQT c'est pas toujours ça)
La plateformes windows a déja un basic portable j'ai nommé vb.net porté actuellement via mono... c'est lourd... Nous serions nous aussi confronté au problème de la langue de bois courante de chez m$ et je ne connais pas encore de développeur ayant la volonté réelle de se lancer dans le développement d'un interpréteur pour une plateforme aussi muette...
[^] # Re: multiplateforme ?
Posté par LeVulcain . Évalué à 1.
N.B: Les Exemples fournis aide vraiment beaucoup à la compréhension ...
# Félicitation
Posté par calvin5 . Évalué à 2.
1) Combien il y a t'il de librarie disponible ?
2) Est ce que des contribuers aide à ce projet?
3) A combien est estimer un peu près le nombre d'utilisateur ?
4) Est ce que il y aura pas de la doc est un site en francais?
Par contre, je ne comprends pas pour quel raison tu n'aime pas python, moi je le trouve très pratique, et gain de temps les codes etc. Mais après chacun son avis.
Ah oui, une autre question vu que le langage est base sur vb, je suppose qu'il faut utiliser goto ce que je prefére éviter, mais bon c'est pas trop grave.
En tous cas, j'essayerais prochainement ce langage est je vous en dirais des nouvelles.
Cordialement
Félicitation encore
[^] # Re: Félicitation
Posté par Fabien Bodard . Évalué à 3.
Je met une info ici aussi: Il y a un channel irc francophone pour toute aide :
#gambas-fr sur freenodes. Pour la doc en français, c'est en cour sur le site de documentation de gambas:
http://gambasdoc.org/help/?fr
[^] # Re: Félicitation
Posté par Space_e_man (site web personnel) . Évalué à 2.
Ça en aura fait sourire plus d'un :)
Mais plus sérieusement, à propos du Goto, même s'il y a de nos jours de nombreuses autres manières de gérer le "flux d'exécution"(ou "flot de contrôle") d'une programme (souvent plus "élégantes"), il est encore parfois pertinent d'utiliser un bon vieux goto :)
De nombreux langages possèdent cette instruction (Assembleur, BASIC, C, C++, C#, Cobol, Fortran, Pascal, Perl, ...) sans pour autant que l'on soit jamais "obligé" de l'utiliser !..
Cf. http://fr.wikipedia.org/wiki/Goto
[^] # Re: Félicitation
Posté par Fabien Bodard . Évalué à 3.
1) hum... 40 a première vue sans compter le composant natif.
Il faut fusionner certains de ces composants car il ne sont que des compléments. (par ex gb.kde spécialise gb.qt, idem pour gb.net et gb.net.curl).
2) oui ... j'en fait modestement parti... Je contribus pricipalement a certains composants en gambas et à la doc (traduction).
Pour avoir la liste des contributeurs :
http://gambas.sourceforge.net/halloffame.html
3)... LEVEZ LES MAINS QUE JE VOUS COMPTE !
4) la réponse existe déja
Pour python... ben essayez gambas...
Essayez de faire des applications fenêtré avec python... c'est pas mal non plus.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.