Gambas 3 est sorti le 31 décembre 2011

Posté par  (site web personnel) . Édité par baud123, Benoît Sibaud et claudex. Modéré par Malicia. Licence CC By‑SA.
29
1
jan.
2012
Technologie

Après quatre années de développement depuis la dernière version, j'ai le plaisir d'annoncer la sortie de la version 3 de Gambas.

Gambas est un langage de programmation objet et une plate-forme de développement pour Unix basée sur un interpréteur BASIC. Il est distribué sous licence GNU GPL.

Il se compose d'un compilateur, d'un interpréteur, d'un ensemble de modules d'extensions appelés composants, d'un environnement de développement intégré complet, et d'une mascotte.

Voici la mascotte :
Mascotte

Énumérons quelques-unes des caractéristiques distinctives du langage :

  1. C'est donc du BASIC. Ceux qui ont débuté la programmation sur ZX, Victor Lambda, ou Amstrad avec (au mieux) 64K de RAM, un lecteur cassette et un manuel plus ou moins bien imprimé comprendront qu'on n'oublie pas facilement ses premières amours. Qui plus est, je n'ai jamais vraiment accroché à Python, Perl et Java.
  2. C'est un langage à objet dont l'héritage est résolu dynamiquement. Ceci permet de ré-implémenter les classes et les contrôles déjà existants, même lorsqu'ils sont natifs.
  3. L'interface des composants graphiques et bases de données est une abstraction des interfaces fournies par les bibliothèques sous-jacentes. Autrement dit, vous pouvez écrire en Gambas des programmes graphiques en utilisant indifféremment Qt ou GTK+ sans ré-écrire une ligne de code - hormis quelques bugs et différences, soyons honnêtes. De même, vous pouvez accéder à tout serveur de bases de données (MySQL, PostgreSQL, SQLITE, ODBC) avec un code indifférencié.
  4. L'environnement de développement est complet : coloration syntaxique, complétion automatique, fragments de code, éditeur de formulaires, éditeur d'états, gestionnaire de bases de données, gestionnaire de traduction, support de Subversion, génération de paquetages RPM/DEB/Slackware/Arch.
  5. Sur des tests stupides et peu significatifs, et en pure interprétation, Gambas est plus rapide que Perl et Python.

Sinon une question revient souvent : « Est-ce que Gambas est viable pour faire de "gros" ou de "vrais" projets ? »

La réponse est... OUI ! Pour preuve :

  • L'environnement de développement est intégralement réalisé en Gambas. Un peu comme l'histoire de l’œuf et de la poule.

  • Domotiga est une logiciel libre de domotique. Je n'y connais rien, mais ça a l'air costaud et sympa.

  • Laurux est un logiciel libre de gestion de petites entreprises.

  • Je vis indirectement de Gambas. Le projet que j'ai développé et que je maintiens dans le cadre de mon travail est un genre de MS Access Web développé en Gambas. Il est dédié à la manipulation de tous types d'objets localisés géographiquement. Il est utilisé par une grosse société qui gère la pose de signalisations routières (panneaux, marquages au sol) et de dispositifs de retenue pour la ville de Paris, la ville d'Annecy, des sociétés d'autoroute, etc. Il est utilisé par un autre grand groupe pour suivre sa flotte de véhicules, et va être utilisé par le même groupe pour gérer l'ensemble de ses propositions commerciales.

Pour l'avenir, les développement suivants sont envisageables :

  • Réaliser un bureau léger (c'est à la mode en ce moment) entièrement en Gambas, qui pourra utiliser indifféremment Qt ou GTK+.

  • Faire tourner Gambas sous Android. L'interpréteur de Gambas 2 tourne sous ARM. Celui de Gambas 3 devrait donc tourner aussi, mais à ma connaissance ceci n'a jamais été testé.

  • Beaucoup de composants manquent encore. Par exemple, ceux qui permettraient d'accéder aux bibliothèques suivantes : GStreamer, GNU Scientific Library, POP3, Fuse…

Enfin pour terminer, une petite fierté. :-) Gambas et Perl sont, que je sache, les deux seuls langages dont les algorithmes de hachage sont « randomisés ». Pour plus de détails, se reporter à la dépêche : Le colonel Moutarde sur la table de hachage avec un livre de maths.

Bonne année à tous les libristes !

Aller plus loin

  • # Eating your own dog food

    Posté par  . Évalué à 2.

    L'environnement de développement est intégralement réalisé en Gambas. Un peu comme l'histoire de l’œuf et de la poule.

    J’aurais plutôt fait référence au dogfooding.

  • # Gambas viable pour de gros projets ?

    Posté par  (site web personnel) . Évalué à 10.

    Sinon une question revient souvent : « Est-ce que Gambas est viable pour faire de "gros" ou de "vrais" projets ? »

    Je confirme ce fait et après 6 ans de développement sur un projet entièrement écrit en Gambas v2 (bientôt version 3), quelques 80 000 lignes de codes, tout fonctionne pour le mieux et bien au delà de ce que j'espérais.

    Il est important de dire que Gambas, outre ces possibilités est le langage qui pour moi a été le plus simple et le plus rapidement productif pour ce que je souhaitais réalisé. L'interface de développement RAD est simple, efficace et complète. Ce langage est aussi un très bon apprentissage du développement orienté objet pour les débutants comme pour les développeurs confirmés.

    Il est aisé d'étendre les possibilités de ce langage en créant vous même vos composants, soit purement en langage Gambas, soit en C/C++ ou en manipulant directement des librairies C sous Linux ou Mac au travers de Gambas.

    Enfin, la compilation d'un projet lors de son exécution, même sur une petite machine, est tout bonnement incroyable d'efficacité.

    Nota: le site web de la communauté française est aussi un très bon exemple des nombreuses possibilité de Gambas dans le domaine Web (cgi, base de données, etc...)

  • # Génial mais ...

    Posté par  . Évalué à 2.

    Super boulot mais je n'arrive toujours pas à installer gambas sur ma Mageia 1.0 :-(
    Bonne année 2012.

  • # Positionnement de Gambas

    Posté par  . Évalué à 4.

    Pour moi, Gambas se situe dans la droite ligne de VisualBasic, Delphi, Powerbuilder, Windev, etc...

    Ces environnements qu'on a appelé des AGL (Ateliers de Génie Logiciel) ou L4G (même si ça ne répond sans doute pas aux définitions "officielles" de ces termes), et qui ont périclité depuis l'avènement des applications web, ont-ils encore une place dans l'avenir de l'informatique ? C'est une vraie question, pas une affirmation.

    Personnellement, je suis resté très nostalgique de Delphi : un IDE visuel, du vrai code, un vrai compilateur, etc.

    Pour moi, le monde se divise désormais en deux familles. Les environnements "à la dure", avec assembleur, C/C++, pour tout ce qui est système, temps réel, super optimisé, etc... Et les environnements web pour le reste (applications métiers en entreprise et petits logiciels personnels).

    Ne reste que quelques miettes pour les Gambas et autres : frontaux à des outils en ligne de commande et/ou petits utilitaires.

    Je vois qu'il y a des exemples pour me contredire (cf. commentaires plus haut), mais quelle est la nature de ces projets ? Pourquoi est-ce qu'un outil comme Gambas a été retenu plutôt qu'une application RoR / PHP / JavaEE / GWT / etc... ?

    • [^] # Re: Positionnement de Gambas

      Posté par  . Évalué à 6.

      Une troisième famille : les programmes de traitement des données de masse (type "batch") : extraction, conversion, calcul scientifique, etc. Ça peut par exemple alimenter des bases de données pour du web. Mais ça n'est pas du web. Et ce n'est pas du petit utilitaire. Ces programmes se font en Python, Perl, C, etc.

      Je pense qu'on peut encore trouver de nombreuses autres grandes familles...

      • [^] # Re: Positionnement de Gambas

        Posté par  . Évalué à 2.

        Le monde se sépare en deux type de personnes. Ceux qui catégorisent les gens en deux et les autres

        Tout ça pour dire qu'effectivement, mon propos était caricatural pour me focaliser sur ce qui constitue l'essentiel du "travail" de nos jours.

        Dans ce que j'ai eu à faire jusqu'ici, tout le travail batch est assimilable à "de petits utilitaires" qui s'appuient eux-même sur des outils "systèmes".

        Genre un gros shell qui appelle de la base de données, fait des greps, et alimente un fichier de log. Donc, du "*sh/perl/python/..." qui s'appuie sur du "C/C++/Assembleur" dans beaucoup de cas.

        Mais peu importe. La question demeure : quels sont les gros projets pour lesquels un outil comme Gambas, qui est quand même pas mal orienté GUI si je ne me trompe pas, trouve sa place face aux applications web ?

        • [^] # Re: Positionnement de Gambas

          Posté par  . Évalué à 6.

          Mais peu importe. La question demeure : quels sont les gros projets pour lesquels un outil comme Gambas, qui est quand même pas mal orienté GUI si je ne me trompe pas, trouve sa place face aux applications web ?

          Tu te trompes :-) Gambas est un interpréteur console tout comme python,perl,tcl, et autres.

          Nous avons écrit par exemple http://gambasforge.org entièrement en gambas. Bon allez je l'admet il y a un appel a convert (application imagemagick). Un composant nous permet de travailler le site sous forme de structure tout comme on le manipule ensuite en js. Donc toute la réalisation du site est sous la forme d'arbre et de nodes html. (composant gb.html disponible ici: http://gambasforge.org/code-41-gbhtml.html)

          Gambas permet aussi des accès rapide et simple aux bdd... je veux bien entendu parler de la syntaxe.

          On peut aussi utiliser de la fenêtre sdl.

          On peut faire de tout avec Gambas, mais il n'est certes pas adapté a tout. Les calculs de masses par exemple ... ce n'est ni pour python ni pour gambas... on choisira plutôt un langage compilé type C, n'est-ce pas. Mais pour le reste ...

          Gambas a deux possibilité pour les cgi... soit en générant l’exécutable et en l'exécutant sur le server (cas de gbforge) pour plus de vitesse, Soit via des Gambas Server Pages (http://gambasdoc.org/help/doc/serverpage?fr&v3), qui sont un peu un php/asp sauce gambas. Ça sonne faux mais ça marche pas mal( En interne gbw3 génère un exécutable qui est ensuite exécuté), sur les bench avec python... tout va bien pour nous.
          Pour ma part je préfère travailler mes pages avec tout les atouts de l'ide.

          Pour résumer... Gambas, il faut l'essayer pour comprendre. Si vous faites comme tout le monde a vous arrêter devant le mot Basic (finalement j'aurais du faire une tête de mort en logo), il est sûr que vous ne saurez jamais apprécier toute l'envergure de ce projet qui fête pratiquement ses onzes années d’existence.

    • [^] # Re: Positionnement de Gambas

      Posté par  (site web personnel) . Évalué à 5.

      Ne reste que quelques miettes pour les Gambas et autres : frontaux à des outils en ligne de commande et/ou petits utilitaires.
      
      

      Et les applications?

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: Positionnement de Gambas

      Posté par  . Évalué à 9.

      Pourquoi est-ce qu'un outil comme Gambas a été retenu plutôt qu'une application RoR / PHP / JavaEE / GWT / etc... ?

      Parce que faire un client "lourd" c'est démodé et que faire une "app" web facilite certaines tâches comme le déploiement, en attendant le store officiel pour Windows.
      Or une IHM native est à mon avis plus agréable, réactive et intégré pour le user qu'une IHM en web. Cependant l'autre problématique est le stockage des données qui est local, l'idéal étant d'utiliser une API REST pour centraliser les données sur un serveur mais cela nécessite un développement web coté serveur. Mais il n'est pas encore dans la culture des dev de maitriser le dev natif et le dev web malheureusement...

      A mon avis les environnements Mac et Windows proposeront un jour des API pour le stockage des datas utilisateurs vers leur cloud respectif, ce qui permettra d'avoir les avantages du natif et ceux du web-Internet.

      Pour l'instant ce sont 2 mondes qui se regardent en chien de faïence or tout le monde aurait à y gagner de mixer les technos.

      • [^] # Re: Positionnement de Gambas

        Posté par  . Évalué à 3. Dernière modification le 02 janvier 2012 à 19:38.

        Or une IHM native est à mon avis plus agréable, réactive et intégré pour le user qu'une IHM en web. Cependant l'autre problématique est le stockage des données qui est local, l'idéal étant d'utiliser une API REST pour centraliser les données sur un serveur mais cela nécessite un développement web coté serveur. Mais il n'est pas encore dans la culture des dev de maitriser le dev natif et le dev web malheureusement...

        C'est bien résumé. Mais faut avouer que l'architecture 3-tiers reste quand même toujours aussi lourde à développer/maintenir/déployer à moins de disposer d'une équipe web (qui gère le stockage/accès) et d'une autre qui développe conjointement la gui en client lourd.

        Quelques rares projets tentent une percée (ex: Tryton, mais je le trouve encore trop couplé avec son d'origine usine à gaz).

        Si bien qu'au final, et par simplicité, on retrouve régulièrement des clients lourds en partage sur un réseau avec le fichier de conf "grand ouvert" vers la base de base de données et qui balancent ses requêtes directement (et connecté en dba parce qu'on est des hommes).

        • [^] # Re: Positionnement de Gambas

          Posté par  . Évalué à 4.

          Mais faut avouer que l'architecture 3-tiers reste quand même toujours aussi lourde à développer/maintenir/déployer à moins de disposer d'une équipe web (qui gère le stockage/accès) et d'une autre qui développe conjointement la gui en client lourd.

          Oui c'est plus complexe si l'on doit développer tout soit même, c'est pourquoi il est nécessaire d'avoir une stack qui propose un backend + API générique, out of the box, pour tout type de gui (cli, gui, smartphone, web, ...). Sur mon projet nodecast je développe en ayant en tête cette idée, j'utilise monngodb qui est schemaless et un serveur applicatif en C++ qui intègre un serveur HTTP et un serveur XMPP pour exposer l'API. L'intelligence métier du backend est dans les workers, et comme j'utilise zeromq pour la com entre le serveur et les workers, ces derniers peuvent être développé dans les nombreux langages qui possèdent une lib zeromq.
          Mon challenge actuel est de rendre ce serveur décentralisé et connectable à d'autres instances via XMPP, pour avoir un backend générique en P2P sur lequel n'importe quelle application puisse s'appuyer.

      • [^] # Re: Positionnement de Gambas

        Posté par  (site web personnel) . Évalué à 3.

        Si je mets de côté le fait que jamais je n'aurais pu développer mon application sous Windows (d'une part parce que le résultat aurait été trop lourd, et d'autre part parce que je préfère être chômeur que devoir redévelopper sous Windows un jour), je pense que le critère du déploiement est le meilleur atout des applications Web.

        Je me souviens encore de programmes d'installation générés par VB qui fonctionnaient correctement sur un poste Windows 2000, et qui refusaient de se lancer sur le poste voisin identique (même os, même version, mêmes applications).

        Bref, le déploiement sur les postes clients demande du temps et pose des problèmes techniques, voire même politiques au sein de grosses sociétés au service informatique centralisé, déporté, et apathique.

        Avec l'application Web, ils peuvent passer de 50 à 500 utilisateurs sans qu'on ait à intervenir de notre côté (enfin si, il faudra peut-être booster un peu la vm).

        Cela dit, pour être honnête, il faut quand même un an pour convaincre ces mêmes grosses sociétés qu'il faut autre chose qu'Internet Explorer 6 pour faire tourner notre application Web. « ...passer à une autre version oulala faut qu'on fasse des tests c'est tout ou rien vous n'y pensez pas quoi Mozilla non c'est trop dangereux vous aurez Internet Explorer 8 à la rigueur. » :-)

    • [^] # Re: Positionnement de Gambas

      Posté par  . Évalué à 8.

      Pourquoi est-ce qu'un outil comme Gambas a été retenu plutôt qu'une application RoR / PHP / JavaEE / GWT / etc... ?

      Pour son logo.

      Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

    • [^] # Re: Positionnement de Gambas

      Posté par  (site web personnel) . Évalué à 2.

      Je vois qu'il y a des exemples pour me contredire (cf. commentaires plus haut), mais quelle est la nature de ces projets ? Pourquoi est-ce qu'un outil comme Gambas a été retenu plutôt qu'une application RoR / PHP / JavaEE / GWT / etc... ?

      Je vais parler de ce qui me concerne : RoR, je connais très mal; JavaEE, je connais mal; GWT, je ne connais pas du tout. PHP, par contre, je connais : berk. Pour moi c'est une horreur cosmique, comme l'ASP. Je ne supporte pas de mélanger le HTML et le code. Qui a dit "javascript" ?!

      L'avantage de développer mon application Web sous Gambas, c'est :

      1. Chaque serveur est virtualisé, donc un Linux en mode texte avec 512 Mo de RAM, ça le fait. 512 Mo qui sert surtout de cache disque, les accès disques étant ce qui ralentit le plus. J'admets que cet argument est valable quel que soit le langage.

      2. La table de hachage et le traitement de chaînes de caractères (miam les conversions de casse en UTF-8) est ce qui consomme le plus de temps CPU (merci valgrind). Gambas a l'air assez doué là-dessus.

      3. Nous sommes une petite boite, je suis quasiment le seul à développer et maintenir cette application. Gambas possède un IDE complet, il est interprété, il compile très rapidement, et l'application Web est compilée en un seul fichier. Le temps de développement, de maintenance et de déploiement (une copie de fichier en SFTP) sont réduits d'autant.

      4. Lorsqu'il y a un bug dans Gambas qui impacte le projet, il est fatalement corrigé assez vite. J'ai utilisé dans le passé suffisamment d'outils de Microsoft archi buggés (Visual Basic m'entends-tu ?) pour apprécier de contrôler la chaîne de développement de A à Z. Regardez le bug sur les tables de hachage non "randomisées" : j'ai pu le corriger en 15 minutes (ça a pris un peu de temps car l'article sur linuxfr explique bien le problème, mais moins bien la solution). Pour les applications basées sur un langage où ce bug n'est pas corrigé, elles peuvent trembler...

      5. Le démarrage de l'interpréteur est rapide (disons que pour l'instant je ne sais pas faire mieux). Sachant que mon application Web est un script CGI, c'est important ! Et, en dépit du fait que c'est un script CGI, les temps de réponses sont largement satisfaisants. Si j'ai le temps, je mettrais le serveur HTTP dans l'interpréteur (ou le contraire), pour gagner du temps au linkage dynamique. Là ça devrait dépoter...

      J'invite d'ailleurs tous les développeurs qui gèrent un projet et qui ont une petite douzaine d'années devant eux à créer leur propre langage pour leur propre besoin. :-)

    • [^] # Re: Positionnement de Gambas

      Posté par  . Évalué à 1.

      Bonjour,
      Désolé de te contre-dire un peu mais au boulot j'utilise VB.net express pour écrire des applications et des automates de test. Ce n'est pas exactement du code compilé.
      Je pilote des cartes d'entrées/sortie selon des séquence déterminées, des alimentions et j'enregistre des résultats dans des fichiers CSV.
      Je suis un électronicien de formation et personnellement, je ne sais pas le faire avec une application web ...
      Tout ça pour dire que si je savais interfacer Gambas avec mes cartes d'E/S et piloter le port série, je passerai illico à Linux et à Gambas.
      Slts,

      • [^] # Re: Positionnement de Gambas

        Posté par  (site web personnel) . Évalué à 2.

        Bonjour,

        Tout ça pour dire que si je savais interfacer Gambas avec mes cartes d'E/S et piloter le port série, je passerai illico à Linux et à Gambas.

        Je pense qu'a ce stade de ta réflexion tu peux déjà faire chauffer l'installation d'un PC sous Linux et te lancer.

        En effet plusieurs personnes utilisent déjà Gambas pour piloter des cartes d'E/S et pourront surement t'aider dans ta migration si tu le souhaites.

        Voici le lien du Forum ou tu pourra te renseigner et poser des questions.

        http://gambasforge.org/

  • # Les benchs c'est stupide...

    Posté par  (site web personnel) . Évalué à 4.

    ... mais on aime ça! :)

    Je me suis amusé avec le premier benchmark, dont voici le code original :

    #!/usr/bin/python
    
    n = 500000
    x = 0.2
    
    def t(x):
        mu = 10.0
        pu = 0.0
        pol = [0] * 100
        r = range(0,100)
    
        for i in range(0,n):
            for j in r:
                pol[j] = mu = (mu + 2.0) / 2.0
            su = 0.0
            for j in r:
                su = x * su + pol[j]
            pu = pu + su
        return pu
    
    for i in range(0,10):
      print t(x)
    
    

    J'ai fait de très mineures modifications histoire que ça soit plus pythonique :

    #!/usr/bin/python
    
    n = 500000
    x = 0.2
    
    def t(x):
        mu = 10.0
        pu = 0.0
        pol = [0] * 100
        r = range(0, 100)
    
        for i in xrange(0, n): #Ici xrange pour pas allouer une grosse liste pour rien
            for j in r:
                pol[j] = mu = (mu + 2.0) / 2.0
    
            su = 0.0
            
            for val in pol: #ici j'itère sur la liste histoire de ne pas passer inutilement par un indice
                su = x * su + val
    
            pu += su # += pour faire bô
    
        return pu
    
    for i in range(0, 10):
        print t(x)
    
    

    Je passe sur ma machine de 231.824s à 209.599s, soit presque 10% de gain. Gambas reste donc bien plus rapide, ce qui montre bien que le typage statique permet des optimisations intéressantes, même avec un simple interpréteur.

    Puis j'ai rajouté ceci après le shebang:

    try:
        import psyco
        psyco.full()
    except ImportError:
        print 'No "psyco" module'
    
    

    Et (après avoir installé Psyco !) le code s'exécute en 84.306s, soit presque 3 fois plus rapidement. Évidemment Psyco c'est que x86 et plus trop maintenu, mais ça donne une idée de ce qu'on va avoir avec PyPy qui est annoncé comme 5 fois plus rapide que CPython.

    L'équipe de Gambas relèvera-t-elle le défi en implémentant du JIT (le suspens est à son comble) ?? :)

    J'en profite au passage pour féliciter ladite équipe pour son travail.

    • [^] # Re: Les benchs c'est stupide...

      Posté par  . Évalué à 1.

      peut t'on comparer l'équipe gambas ... a celle d python ... elle est égale a celle de python après ses 10 premières années ...

      Gambas aura t'il autant de chance que python en trouvant sa place et des utilisateurs près a mettre la main a la poche ? , Car oui c'est ce qui a fait de python ce qu'il est aujourd'hui... pas forcément les qualité que nous lui connaissons aujourd'hui et qui sont là grace a cet engouement pour ce langage.

      Faire du neuf n'est pas évident, et je dois l'avouer assez ingrat au final. On est systématiquement mis au défit et comparé aux gros du moment.Les moyens mis en oeuvre ne sont cependant pas les mêmes. Et si on arrive ne serait-ce qu'a effleurer un dieux ... on en est déja bien content.

      Comme le disait Benoit, l'important c'est la maitrise de l'outil, sa compréhention, son adaptabilité. C'est a ce jeu que gambas est bon.

      Ce qui est bon aussi, c'est l'ide, pas forcément révolutionnaire mais de plus en plus complète et j'oserais a ce titre dire unique dans le monde du libre.

      Pour ce qui est de la vitesse d'excution, a l'affichage en gui on attend moins un programme gb qu'un py. Voila un ressenti :-)

      • [^] # Re: Les benchs c'est stupide...

        Posté par  (site web personnel) . Évalué à 1.

        peut t'on comparer l'équipe gambas ... a celle d python ... elle est égale a celle de python après ses 10 premières années ...

        C'était une boutade hein, je me doute que l'équipe de Gambas est petite et a mieux à faire. Ceci dit le typage statique de Gambas faciliterait peut-être la compilation, comparé à des langages comme JavaScript ou Python (mais ça reste un gros travail).

        On est systématiquement mis au défit et comparé aux gros du moment.

        Ah ben ça c'est tout à fait normal. Du moment que tu dis aux gens d'utiliser ton logiciel, ils vont forcément se demander pourquoi le tien et pas un autre. C'est d'autant plus vrai pour un langage de programmation : il est assez facile de changer de navigateur Web ou de lecteur multimédia, mais quand on se lie à un langage cela a plus de conséquences. Ce n'est pas pour rien qu'il y a des tas de langages (libres) de qualité avec une faible communauté.

        Comme le disait Benoit, l'important c'est la maitrise de l'outil, sa compréhention, son adaptabilité. C'est a ce jeu que gambas est bon.
        Ce qui est bon aussi, c'est l'ide, pas forcément révolutionnaire mais de plus en plus complète et j'oserais a ce titre dire unique dans le monde du libre.

        Il faudrait peut-être rentrer plus dans les détails sur ces qualités (être "vendeur", ce n'est pas péjoratif).

        • En quoi un utilisateur de Gambas maîtrise plus Gambas q'un utilisateur Python maîtrise Python ?
        • Qu'entends-tu par "adaptabilité" par exemple ? Tu parles de modifier l'interpréteur lui-même ?
        • Pour l'IDE, quelles sont ces qualités par rapport à QtDesigner (pour ne citer que la référence libre) ?

        Pour ce qui est de la vitesse d'excution, a l'affichage en gui on attend moins un programme gb qu'un py. Voila un ressenti :-)

        Pour avoir fait du python embarqué temps réel, je dirais que la façon de coder importe plus que le langage. Par exemple un langage rapide ne dispense pas de jouer avec l’asynchronisme pour rendre une application vraiment réactive.

        • [^] # Re: Les benchs c'est stupide...

          Posté par  . Évalué à 0.

          Pour avoir fait du python embarqué temps réel, je dirais que la façon de coder importe plus que le langage. Par exemple un langage rapide ne dispense pas de jouer avec l’asynchronisme pour rendre une application vraiment réactive.

          Vrai

          Sinon décrire le reste de Gambas me prendrais un peu trop de temps :)... Rien que pour l'IDE

        • [^] # Re: Les benchs c'est stupide...

          Posté par  (site web personnel) . Évalué à 2.

          Ce n'est pas pour rien qu'il y a des tas de langages (libres) de qualité avec une faible communauté
          
          

          Il y a qualité et qualitai: combien compte-t-on de langages libres à typage statique avec un IDE, un designer et un debugger?

          Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: Les benchs c'est stupide...

      Posté par  (site web personnel) . Évalué à 4.

      Il faut savoir que je n'ai pas écrit le code Python (ni le code Perl). Je les ai récupérés sur Internet puis traduit en Gambas. Je ne connaissais pas assez Python ni Perl pour améliorer le code récupéré - même si je me posais des questions sur le range(0,n).

      Au niveau JIT, je suis forcément moins motivé, parce que dès que j'ai besoin de vitesse, je ponds du C moi-même. Et puis je soupçonne le JIT d'être gourmand en mémoire, je ne sais pas pourquoi.

      Par contre, je suis convaincu de pouvoir améliorer la vitesse de l'interpréteur en basant le bytecode sur des manipulations de registres plutôt que sur des manipulations de pile.

      Sinon quelqu'un m'a dit aussi qu'il travaillait sur un émetteur de code LLVM pour Gambas, mais je n'ai pas plus de détails, et je ne sais pas si ça va donner quelque chose.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.