Journal Squeak, c'est fun

Posté par .
Tags : aucun
0
3
sept.
2004
Un exemple rigolo de la puissance pédagogique de Squeak:

http://languagegame.org:8080/ggame/15(...)

Il s'agit d'un joyeux mélange de ODE (le moteur physique libre) et de E-Toys (le système de manipulation graphique d'objets de Squeak). Les screenshots du site vous donneront quelques aperçus des possibilités, mais sachez que dans un "Force Field", tous les objets (dessins, widgets, autres force fields, ...) sont soumis à la gravitation. A partir de là, et avec quelques outils (notamment les punaises - Hinge - qui permettent de mettre en relation deux objets, ou un objet et le fond), on peut rapidement faire des petites choses très amusantes.
  • # cool

    Posté par . Évalué à 5.

    ouais squeak cest fun , je me souviens en classe de sixieme ( daujourdui seconde donc il y a 5 ans) on lutilisais sous win 98 , et cetait amusant on nous apprenais des codes (la prof cetais la femme dun des principaux developeur de squeak ) et apres on faisait des machins geometriques assez compliqué , dans le style de logo+ de dos.. Mais on pouvait je me souviens jouer de la musique et faire des trucs assez sympa .. pas mal pour les ecoles...
    • [^] # Re: cool

      Posté par . Évalué à 4.

      Meme en dehors des écoles il y a des trucs sypa a faire, en plus le framework est très complet. Par contre je n'ai jamais accroché a l'environement de développement, ni au langage lui-même (dérivé de smalltalk).

      tu as oublié l'adresse su site de squeak :
      http://www.squeak.org(...)
      • [^] # Re: cool

        Posté par . Évalué à 1.

        Qu'est-ce que tu reproches à l'environement de développement ? Je le trouve génial au contraire. Tout est bien classé, on peut faire des recherches, tout est dans la même interface... ça va super vite de développer des trucs. Tu as juste essayé comme ça, ou tu as essayé de passer du temps dessus ?

        A propos du langage, il faut y passer du temps, mais la syntaxe est vraiment simple, en une heure tu connais tout. Après, seul le temps permet de connaitre bien les bibliothèques et les méthodes. Essaye de t'y remettre. En plus la communauté est super sympa, elle t'aide à chaque problème. En fait, je suis débutant en Squeak, et c'est vrai que j'ai eu pas mal de problèmes, mais ça va mieux maintenant.

        Je vous conseille les tutoriaux du net et le super bouquin "Squeak programmation" en français.

        Un bon lien pour commencer : http://minnow.cc.gatech.edu/squeak/377(...)
        • [^] # Re: cool

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

          > Tout est bien classé, on peut faire des recherches

          C'est vrai, le browser et le method finder sont, entre autre, des outils très puissants dont je n'ai jamais trouvé d'équivalent ailleurs. A mon goût, le gros problème de squeak, c'est le manque de prévisibilité de l'ensemble et l'interface playskool capable de rivaliser avec le thème télétubbies de windows XP.

          Entre la quasi absence de partage des ressources de la machine virtuelle pour les différents programmes qui y sont exécutés, les bugs et les corruptions en tout genre que l'on peut rencontrer en file-inant ou en serialisant.... On se marre bien à développer en Squeak, l'avantage, c'est qu'on ne sait jamais ce qui peut arriver, ça donne du piment à la vie.

          Un test assez amusant est de constater qu'un programme executant une boucle infinie freeze l'ensemble de la machine virtuelle avec l'ensemble des programmes fonctionnant dessus.

          Bon, allez pour finir, je ne parlerais que brièvement de sa license Apple non libre, non reconnue par l'OSI... http://www.opensource.org/licenses/(...)

          Donc bon, squeak... ** kopf ** kopf **
          • [^] # Re: cool

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

            Je trouve que l'interface s'est amélioré depuis quelques temps. Tu as la possibilité d'avoir de réutiliser des skins de IceWM directement si tu veux un look "professionnel" : http://www.preeminent.org/squeak/images/newskinswindows.jpg(...)

            Non une boucle infini ne freeze pas la VM. ALT-. permet d'arrêter l'itération.

            La license a des problèmes, mais la communauté travaille à son évolution vers une licence complétemment libre.
            • [^] # Re: cool

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

              Putain que c'est moche! Il vaudrait mieux interdire les skins si ça donne ça comme résultat. Meme un app swing est moins hideuse
              • [^] # Re: cool

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

                En même temps, c'est un macounet, rien d'étonnant à ce qu'il fasse preuve d'un goût plus que douteux.
                Bon d'accord, là ça dépasse les limites du soutenable...
              • [^] # Re: cool

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

                c'est pas parce que t'as un thème moche, que tous les thèmes sont moches...

                Par ailleurs, sais-tu que Squeak supporte l'OpenGL et l'accélération 3D ?
            • [^] # Re: cool

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

              >Tu as la possibilité d'avoir de réutiliser des skins de IceWM directement si tu veux un look "professionnel" :

              Sous windows aussi le look peut être professionnel, il n'empêche que ça reste le thème par defaut.

              > Non une boucle infini ne freeze pas la VM. ALT-. permet d'arrêter l'itération.

              Ça dépends comment on voit les choses... tant que quelqu'un n'est pas venu faire le Alt-. la VM reste "freezée". Cela est vrai tant que celle-ci a suffisamment de mémoire à sa disposition, si le processus se met à consommer de plus en plus de ressources au fur et à mesure de ses itérations infinies, le Alt-. ne suffit plus, la VM est irrécupérable. Astuce : pratique pour détecter les boucles infinies dans les projets (comme à l'IUT par exemple =).

              C'est d'ailleurs rigolo cette méthode permettant de savoir qu'on a consommé toutes les ressources allouées quand squeak commence à avoir des comportements aléatoires...
              • [^] # Re: cool

                Posté par . Évalué à 1.

                Tous les langages qui ont une GUI l'executent ds le même thread, ta remarque sur la boucle qui freeze la vm s'applique aussi à MFC, delphi, Java (...)
                Le truc c'est d'executer ton code ds un autre thread (ou process squeak - nb: même si ca n'est aps du vrai multi-thread), et c'est quelkquefois assez sport.

                Pour ce qui est de la stabilité et de la consommation de ressources, je ne suis pas du tout d'accord avec toi, je trouve l'ensemble impressionnant dez stabilité...
                Il faut peut être aussi chercher les pbms ds ton code ? ... :-)
                Evidemment qd tu file-in des bouts de code tu peux tout planter, mais de la même façon que lorsque tu installes un programme ds un autre environnement.
                C'est plus un pbm de méthode , il faut avoir différents environnements de développement, test etc.

                Le plus gros intérêt pour un développeur est à mon avis le développement incrémental, les outils de classification, refactoring, et surtout le coté 'vivant' du développement, l'inspection à chaud lors de l'exécution du pgm
                voir http://minnow.cc.gatech.edu/squeak/2950(...) : ... most all other computer languages (and certainly all the mainstream ones) build dead programs
  • # Et non accessoirement ...

    Posté par . Évalué à 6.

    Parce que peut être certains vont se demander ce qu'est Squeak, il y a une bonne fiche avec de chouettes liens sur Framasoft

    http://www.framasoft.net/article1790.html(...)

    M
  • # squeak, mais encore?

    Posté par . Évalué à 1.

    En ayant déjà entendu parler et n'ayant toujours pas regarder (trop de boulot), je me pose certaines questions sur squeak:
    - c vrai qu'a priori, et à mon avis (complétement perso et purement subjectif), l'environnement est .... "spécial": est-il possible de ne pas l'utiliser pour développer acvec Squeak ou alors comme Rebol -si mes souvenirs sont bons- il faut lancer un environnement (une vm mais avec gui)???
    - A prioris cela à l'air un peu comme Rebol (comme principe en tout cas, car le langage squeak est pas réelement vu)?? (la partie un peu fermé de Rebol en moins, vu que certains partie du langage de base sont payantes (chez le créateur de Rebol lui-même) c un fonctionnement que je n'aime pas trop quoi).
    - est-ce réelement puissant? je m'explique: sans parler des différences propres au principes des langages (interprété <>compilé, fonctionnel<>évenementiel<>séquenciel ,...), les capacité du langage sont-elle équvalent par rapport par ex. au c++ (sans parler de limitations du par exemple à la différence du nombre de libs existantes), ou alors le langage est il plutôt réservé à certains usages et n'est pas aussipolyvalent que le c++?
    - tout autre choses que vous pourriez expliquez sans forcément renvoyer à des pages web...
    P.S.:pas troll et pas trop de subjectivité (si on aime un langage on le défend c normal) mais essaye de "peser les choses".

    P.S.: est-il possible de réaliser des binding de biblio (C++->squeak par ex. ou n'est ce pas prévu???, pas possible???) genre , et je suis assez subjectif qd je parle, je peux difficilement me passer de Qt, j'aime trop (le principe, la rélisation ...), est-ce possible (théoriquement) de l'utiliser en binding avec squeak, est-ce utile (squeak ayant déjà exacvtement les mêmes fonctionnalités -quoi que en python et perl on a déjà ce qui est proposé dans qt, mais les bindings existes-)
    Blackshack
    • [^] # Re: squeak, mais encore?

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

      L'environnement est "spécial" ? ... ben... disons que c'est une des grandes forces de Squeak (et des environnements Smalltalk en général), au contraire !

      Ceci dit, tu as l'air de mélanger pas mal de choses. Squeak est une implémentation libre de Smalltalk, les e-toys ne sont qu'une partie de ce que propose Squeak lui-même.

      Bon. Prenons ça par le début. Smalltalk est le premier langage véritablement OO, développé dans les années 70 au Xerox Parc, standardisé en 1980. D'ailleurs le terme de programmation orientée objet vient d'Alan Kay (créateur de Smalltalk). Cf. Wikipedia: http://fr.wikipedia.org/wiki/Smalltalk(...)

      Mais plus qu'un langage, Smalltalk est aussi (généralement) un environnement de programmation -- disposant de tous les outils nécessaires : browser de code, débugger, refactoring browser, etc. Différentes implémentations de Smalltalk existent, dont Squeak.

      Squeak en tant que tel mets l'accent sur le multimédia (et dispose ainsi d'une palanquée d'outils/librairies pour jouer avec le son, la 3D, la vidéo, etc.) ainsi que sur son utilisation par des enfants (via les e-toys, qui sont grosso-modo des objets programmables de façon graphique et facilement utilisables par des enfants, ce qui leur permet ainsi de réaliser des programmes sympas sans écrire une ligne de Smalltalk). L'interface graphique sous Squeak est assez puissante (vectoriel, etc.), même si je suis perso pas très fan des morphs (les composants graphiques utilisées pour l'UI)..

      Concernant le langage Smalltalk lui-même, il est vraiment simple à utiliser (Alan Kay a toujours travaillé dans l'optique de transformer un ordinateur en un "expérimentateur d'idées" et non une simple boite à calculs, et entre autre a beaucoup travaillé avec des enfants -- d'ou son travail sur Smalltalk puis Squeak). Malgrès (ou grâce) à cette simplicité, Smalltalk est extrèmement puissant, en particulier grâce à ses capacitiées réflexives (introspection, etc.) et par le fait que TOUT est objet.

      C'est sûr, ça nécessite de réfléchir un peu différemment que ce que l'on ferait avec un langage procédural style C ou Pascal (C++ lui est batard, de toute façon), mais bon, après tout, la POO commence quand même à rentrer dans les moeurs, non ? :-)

      Au niveau des capacitées du langage... bien évidemment Smalltalk est puissant et absolument pas contraint à une utilisation donnée. Par contre, historiquement, le fait que techniquement Smalltalk fonctionne avec une machine virtuelle a sûrement du contribuer à limiter son usage (lenteur, gc..). Mais franchement, c'est du passé, surtout avec les machines actuelles (après tout, certains utilisent bien Java, alors...)

      Je ne connais pas bien Rebol, mais Squeak n'est absolument pas "caché" : Squeak est écrit lui-même en Smalltalk (enfin, un sous-ensemble compilable), et on peut justement jeter un oeil sur le code de toutes les librairies !

      Bref, je n'ai peut être pas échappé aux trolls ^_^ mais en toute honnêteté, Smalltalk est véritablement un langage passionnant et simple à apprendre (et franchement, je pense que jeter un coup d'oeil dessus ne fait pas de mal à un développeur curieux). Squeak lui-même a des contraintes non présentes dans d'autres Smalltalk (comme le fait de ne pas vraiment s'intégrer au système "hôte" en proposant une fenêtre/écran unique ou tout s'exécute...), mais globalement c'est vraiment un projet intéressant.

      Et puis, nombre de choses assez géniales pour développer quand on utilise Smalltalk n'existent pas ou alors de manières réduites dans les autres langages, genre le refactoring browser (permettant de réaliser automatiquement un refactoring donné), ou le fait que la compilation soit incrémentale (genre ton programme bug, ça ouvre le débugger, tu peux corriger l'erreur et cliquer sur continuer, et plaf, la méthode que tu as corrigée est recompilée à la volée et ton programme continue là ou il s'était arrêté -- pas mal pratique et fait gagner beaucoup de temps !), voire même tout simplement l'existence du workspace pour tester rapidement des bouts de code...

      Vraiment, développer avec est agréable et rapide. Comme de plus le langage dispose d'un garbage collector, pas de problèmes de manip mémoire (source de la plupart des erreurs...)

      Il existe des passerelles pour utiliser des bibliothèques externes à partir de Squeak, et des bindings Qt sont théoriquement faisable, mais je ne crois pas qu'il y en ait pour le moment. Ceci dit, ce n'est pas vraiment l'optique de Squeak -- je pense que pour de la prog smalltalk permettant de faire des applis plus "classiques" on peut jeter un oeil au smalltalk de cincom (utilisation gratuite, par contre, aie aie pour une utilisation commerciale...), ou au smalltalk/X (http://www.smalltalk.org/versions/ExeptSmalltalkX.html(...)), gratuit et libre pour une utilisation commerciale (je sais plus s'il est libre tout court par contre, j'ai un doute).

      Un truc que je vous conseille de regarder, c'est Seaside, un serveur d'applications web assez génial (inspiré de WebObjects, mais avec des trucs très cool en plus), et dispo pour Squeak (on peut tout à fait lancer Squeak sans son affichage graphique).

      Voila voila... sinon perso, pour de la prog graphique, j'ai pas vu mieux qu'OpenStep et InterfaceBuilder, mais hein ;-) (et dire qu'il y a même une implémentation FSF avec GNUstep et Gorm et que si peu de gens aident ... snif... ). Mais bon, Qt est pas trop mal (cependant, C++ ...).
      • [^] # Re: squeak, mais encore?

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

        Salut Nicolas, merci pour tes rappels historiques. Dommage que l'histoire de Smalltalk ne soit pas mieux connu car il a influencé bcp de langages qui ont suivis.

        Sinon pour les liaisons avec des librairies externes, oui il y a un projet notamment je crois avec GTK. Il y a un super projet pour utiliser ObjectiveC et Cocoa depuis Squeak. Voir le projet : ObjectiveCBridge sur SqueakSource (http://squeaksource.com/(...)).
        • [^] # Re: squeak, mais encore?

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

          oui, je connais :-)
          d'ailleurs un dev qui bosse sur gnustep était ptet intéressé pour porter ça... on verra bien, c'est vrai que ça serait sympa.
  • # taiste

    Posté par . Évalué à 0.

    taiste

    "Il faut" (Ezekiel 18:4) "forniquer" (Corinthiens 6:9, 10) "avec des chiens" (Thessaloniciens 1:6-9) "morts" (Timothée 3:1-10).

Suivre le flux des commentaires

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