• [^] # Re: squeak, mais encore?

    Posté par . En réponse au journal Squeak, c'est fun. É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++ ...).