Première 'Release Candidate' de Gambas 2

Posté par (page perso) . Modéré par Florent Zara.
Tags :
0
18
nov.
2007
Linux
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. 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.
Les spécificités de Gambas par rapport aux autres environnements de développement sont les suivantes :
  • 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.
Ses défaut principaux sont :
  • 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é.
Je suis bien sûr disponible pour répondre à toutes les questions.

Aller plus loin

  • # On n'est jamais si bien servi que par soit même !

    Posté par . Évalué à -1.

    Excellente dépêche néanmoins même si elle est l'oeuvre de l'auteur du logiciel. Bravo Benoît pour ce travail !
    • [^] # Re: On n'est jamais si bien servi que par soit même !

      Posté par (page perso) . Évalué à 6.

      Merci.

      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 (page perso) . Évalué à 6.

    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

      Posté par (page perso) . Évalué à 4.

      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

        Posté par (page perso) . Évalué à 2.

        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

          Posté par (page perso) . Évalué à 1.

          ...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

            Posté par (page perso) . Évalué à 5.

            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

              Posté par (page perso) . Évalué à 2.

              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

                Posté par (page perso) . Évalué à 1.

                >> 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

            Posté par . Évalué à 2.

            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

        Posté par . Évalué à 2.

        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

          Posté par (page perso) . Évalué à 2.

          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...
  • # sur Wikipedia.org

    Posté par (page perso) . Évalué à 4.

    Super et bravo !.. C'est du beau boulot... Je vais en parler dans mon lug car il y a beaucoup de gens qui aimeraient bien savoir faire des petits programmes comme ils le faisaient sous Windows avec Delphi ou VB...

    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 . Évalué à 1.

      Super et bravo !.. C'est du beau boulot... Je vais en parler dans mon lug car il y a beaucoup de gens qui aimeraient bien savoir faire des petits programmes comme ils le faisaient sous Windows avec Delphi ou VB...

      Comme équivalent libre de Delphi, il y a Lazarus : http://www.lazarus.freepascal.org/
  • # multiplateforme ?

    Posté par . Évalué à 2.

    Bonjour,

    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 (page perso) . Évalué à 2.

      Théoriquement oui.

      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 . Évalué à 0.

        merci pour toutes ces réponses .

        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 . Évalué à 3.

          Si l'interpréteur était réécrit pour windows, dans ce cas les projets gambas pourrait être aussi développés sur cette plateforme. Gambas est un langage interprété et l'ide est écrite en gambas... je vous laisse le soin donc de conclure :)

          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 . Évalué à 1.

            hé bien , l'heure est venue de l'apprentissage !

            N.B: Les Exemples fournis aide vraiment beaucoup à la compréhension ...
  • # Félicitation

    Posté par . Évalué à 2.

    Tout d'abord j'aimerais félicité l'auteur de ce langage de programmation. Celà n'as pas être du facile à mettre en place. Ca du vraiment être un gros travail. J'ai vu un commentaire qui disais que la page de wikipedia été presque vierge, c'est vrai qu'il n'y pas grands chose, c'est dommage c'est vrai qu'il n'est pas très complet, pourtant Benoît Minisini est un utilisateur de wikipedia. Sinon, j'aurais quelques questions.

    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 . Évalué à 3.

      Bon je vais laisser Benoit répondre a la majorité de tes questions... Mais j'aurais une mise au point a propos de du visual basic... oui goto est une commande qui existe encore... mais il y a combien de temps que tu n'a pas touché a un vb like ? ça fait belle lurette que cette commande n'est plus utilisée ou alors dans des cas extrêmement rares.

      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 (page perso) . Évalué à 2.

      ... je suppose qu'il faut utiliser goto ...

      Ç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 . Évalué à 3.

      Je vais finir la réponse...

      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 à ceux qui les ont postés. Nous n'en sommes pas responsables.