SqueakGtk

Posté par  . Modéré par rootix.
Étiquettes :
0
11
août
2008
Gnome
Dans le cadre du google summer of code j'ai été amené à re-développer un binding de Gtk pour Squeak qui est une implémentation du langage Smalltalk.

Smalltalk est un langage de programmation objet, tout est objet dans ce langage : les chaînes de caractères, les entiers, les booléens, les définitions de classes, les blocs de code, les piles et la mémoire sont représentés en tant qu'objets.

Le portage est complet, il manque peut-être certains événements ou bien certaines méthodes mais vous pouvez développer un programme sans avoir à souffrir de ces manques. J'en ai profité pour rajouter un support de WebKit-Gtk et de Cairo il y a déjà une ébauche d'un mini-browser SqueakZilla.

Le seul gros problème est que vous ne pouvez pas pour le moment sauver l'état de l'image. Pour ceux qui ne connaissent pas Smalltalk, une image peut être vue comme une persistance. Quand vous quittez l'environnement Squeak l'état est sauvegardé - un peu comme le mode veille - et quand vous rechargez l'image vous retrouvez l'environnement tel qu'il était.

Aller plus loin

  • # Potentiellement très utile pour le projet Squeak

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

    Je ne sais pas si ça existe déjà, mais il me semble que ça aidera beaucoup le projet Squeak : si pour certains le fait que tout Squeak dans une image, un peu comme un OS dans QEMU est un avantage, il est pour beaucoup un frain.

    Un tel portage permet aux applications Squeak de dialoguer avec l'extérieur tout en profitant du formidable éco système offert.

    Ca peut faire beaucoup avancer le projet.

    Bravo en tout cas ! :-)

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

    • [^] # Re: Potentiellement très utile pour le projet Squeak

      Posté par  . Évalué à 3.

      Merci ;)

      Le fichier image n'est qu'une partie du problème mais pas la seule le gros problème est que l'interface actuelle de Squeak les Morphs bien que potentiellement intéressante, c'était d'ailleurs un projet de recherche chez Sun avec le langage Self mais ce n'est pas du tout terminé et loin d'être professionnel comme Gtk ou Qt d'ailleurs essaie de faire un simple menu ou une barre d'outils tu vas t'amuser, c'est pas impossible mais rien n'est fini dans les Morphs -_-'

      Mais tout n'est pas noir avec des projets comme Seaside Smalltalk reprend du poil de la bête :)
      • [^] # Re: Potentiellement très utile pour le projet Squeak

        Posté par  . Évalué à 2.

        ah ça, je regrette l'interface classique en MVC et son look des années 80 parce que les Morphs, outre que c'est toujours en projet et pas bien documenté, ça rame de façon dramatique. enfin, ça fait ramer toute l'image donc Squeak...
      • [^] # Re: Potentiellement très utile pour le projet Squeak

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

        Bon aller je vais prêcher ma chapelle (et me faire moinsser au passage). Si tu aimes les librairies graphiques dans des langages objet à prototype, il en existe une en Lisaac ( http://isaacproject.u-strasbg.fr/li.html ).

        Elle est en quelque sorte à sa troisième version. On essaye là aussi d'innover et de proposer une librairie simple et puissante, sinon complète (ça c'est plus dur) et utilisant toutes les fonctionnalités du langage.

        Pour le moment, on a un système de composition d'interface basé sur les opérateurs : tu compose tes widget avec des +, /, etc... qui gère l'orientation des widget entre eux.

        Ya même deux étudiants qui ont réalisé GUII (tu le trouveras sur le dépôt du projet) : une interface qui se réadapte automatiquement en fonction de la taille de la fenêtre en choisissant le meilleur arrangement entre widget. J'essaye d'attraper le rapport de TER et j'en reparlerai.

        Bref si t'as des idées, on est preneur....


        Seaside c'est assez génial c'est vrai, mais j'ai pas l'impression que ça casse des briques par rapport à Ruby on Rail.

        « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Démarche utilisée ?

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

    Concernant la démarche, as-tu opté pour une génération automatique du binding ou une écriture manuel du 'binding' ? (note: je ne connait pas squeak)

    La tendance actuelle pour les 'binding' est de faire une recherche des composants par introspection [1][2]. En ayant regardé rapidement l'introduction sur squeak, on retrouve un 'Object Inspector' les propriétés de chaque objet Gtk+ sont elle visibles (même partiellement) ?.

    Et enfin un dernière question, si je veux utiliser une librairie GObject existante es ce facilement faisable (en relation avec le premier point) ?

    Félicitation pour ton travail, il va peut-être permettre d'utiliser réellement un programme squeak dans la vie de tous les jours ;) .

    [1] : http://live.gnome.org/PyBank
    [2] : http://live.gnome.org/Vala

Suivre le flux des commentaires

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