Squeak By Example

Posté par . Modéré par j.
Tags :
0
16
sept.
2007
Culture
Squeak est un environnement de développement moderne et libre pour le langage Smalltalk. Squeak by Example est un nouveau livre libre et en anglais écrit par Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz et Damien Pollet, avec des contributions de Marcus Denker et moi-même.

Ce manuel est destiné aux étudiants et aux développeurs. Grâce à lui, le lecteur découvrira le langage et l'environnement de développement avec une série d'exemples et d'exercices. Il est possible de télécharger le livre au format PDF gratuitement ou d'acheter une version imprimée qui vous sera livrée. Il est même possible d'acheter le format électronique (PDF :-).

Les sources LaTeX sont disponibles librement sous licence Creative Commons Attribution-ShareAlike 3.0. Une version française est déjà en cours de réalisation.
  • # Version en français

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

    On s'organise pour faire une version en français du livre. Voir ici : http://doesnotunderstand.free.fr/?p=400
  • # pas d'indication du nombre de pages ou de la taille du PDF

    Posté par . Évalué à 3.

    mais http://www.lulu.com/content/1171965 est plus prolixe :

    Printed: 300 pages (blablabla 6" x 9", perfect binding, black and white interior ink)

    PDF (3634 kb)
    • [^] # Re: pas d'indication du nombre de pages ou de la taille du PDF

      Posté par . Évalué à 2.

      en haut à droite (à moins que cela ait été rajouté depuis ce commentaire) :

      Download latest version
      (300 pp., 3.5MB pdf)


      sinon je vais regarder cela avec attention, Squeak m'a toujours intrigué, on va voir si ces exemples seront plus parlants...

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Squeak et son utilisation au quotidien

    Posté par . Évalué à 5.

    Périodiquement je teste Squeak qui m'a toujours intrigué, et j'ai toujours une drôle d'impression à chaque fois. Sans vouloir paraître méprisant ou suffisant, quel est l'intérêt et la finalité de Squeak ? Est-ce que c'est vraiment utilisable comme un autre langage de programmation, je veux dire non pas pour la réalisation de programme, mais pour son utilisation finale ? Car une fois dans la machine virtuelle, est-ce qu'il est possible d'avoir un programme qui peut tourner hors de cette fenêtre un peu bizarre ? Existe-t-il des programmes 'd'envergure' qui utilisent squeak ? (par exemple il me semble j'avais entendu parler d'une chaîne d'hôtel ou je ne sais quoi qui l'utilisait comme terminal pour la gestion des réservations etc)

    En tout cas je ne suis pas programmeur et j'ai des notions vagues en programmation, mais les 40 premières pages que j'ai lues de cet ouvrage sont très bien passées, félicitation pour ce gros travail et la facilité de lecture car cela me semble très pédagogique. Le concept de Squeak semble vraiment très étonnant par rapport à ce que l'on peut voir ailleurs, et cela me semble très puissant et je dirais presque 'abordable' pour tout un chacun, c'est très imagé comme utilisation, on peut toucher les objets et les manipuler. Par contre la machine virtuelle qu'est-ce que c'est lent ! :( D'où ma question sur son utilisation au quotidien. Du peu que j'ai vu, on dirait que c'est surtout employé dans la recherche ou auprès des l'initiations des enfants, mais c'est tout, alors est-ce qu'il y a d'autres cas que je n'aurais pas perçus ? Sans vouloir paraître vexant, est-ce que c'est vraiment "utilisable" ? L'ensemble semble vraiment très novateur (pourtant cela semble assez vieux), dans la lignée de que l'on peut trouver chez Apple ou NeXT, pourtant on a l'impression qu'il manque encore quelque chose de plus accrocheur par exemple pour que cela soit plus diffusé, et notamment des facilités pour sortir l'ensemble de cette boîte virtuelle pas forcément très sexy.

    Bref, vous pouvez nous en dire plus à ce sujet :)

    Tant que j'y suis, j'ai trouvé cela qui semble basé sur squeak, pourtant cela ne tourne pas (encore) sous linux, savez-vous pourquoi ? Est-ce que c'est une machine virtuelle modifiée ?

    http://scratch.mit.edu

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

    • [^] # Re: Squeak et son utilisation au quotidien

      Posté par . Évalué à 4.

      tu devrais pouvoir ouvrir le .zip et faire ouvrir le Scratch.image par Squeak (j'avais réussi)

      le bazar marchera très bien modulo que tu ne pourras pas... l'empêcher de tourner (comme le mettre en pause ou acceder au source) car tu n'as que l'image dans l'archive.

      je pense aussi que certains effets multimedias te pèteront peut-être à la figure : une bibliothèque fournie pour Windows est nommée mpeg3plugin.dll, les fonctions associées vont manquer (quand à savoir si tu vas te prendre une erreur fatale d'execution ou si elles seront simplement ignorées, ça...)

      voir aussi http://linuxfr.org/comments/836951.html#836951

      concernant la lenteur de Squeak, c'est dû en partie à l'utilisation de Morphic, une "nouvelle" génération de bidules graphiques, les interfaces de style MVC (style préhistorique) sont très rapides. apparement il y a quelques grosses boulettes du genre recalculer le dessin de tout l'écran quand on ajoute un caractère à une zone de texte. ça gène.

      concernant les applications il y a outre l'apprentissage de Smalltalk (toujours bien) et Seaside http://www.seaside.st/about un serveur d'applications Web qui présente une toute autre façon de faire que PHP ou RoR.

      enfin, on peut jeter un coup d'oeil à http://en.wikipedia.org/wiki/Croquet_Project qui est aussi basé sur Squeak (mais a un autre système de fenètres)
      • [^] # Re: Squeak et son utilisation au quotidien

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

        Pour l'environnement "étrange" le seul truc c'est que le toolkit graphique de base marche dans sa fenêtre... il y a des plugins pour ouvrir plusieurs fenêtres de l'OS ou pour utiliser GTK ou Cocoa, simplement il n'y a pas beaucoup de main d'oeuvre pour maintenir tout ça donc c'est peu utilisé/connu.

        Pour la lenteur il y a besoin d'un peu de nettoyage par endroit... les autres smalltalks sont dans le même bac que Java en performances, et bien plus rapide que python perl et ruby. Comme tout est objet, il y a également beaucoup moins de temps perdu à traduire des formats et convertir des structures de données etc.

        D'autre part il y a un projet de compilateur optimisant pour Squeak qui devrait à terme donner des perfs équivalentes à C: Exupery
        http://wiki.squeak.org/squeak/3842

        Pour les applications, il y a Scratch et Plopp qui sont des jeux/programmes éducatifs, et évidemment Seaside, l'application la plus visible étant http://www.dabbledb.com
        • [^] # Re: Squeak et son utilisation au quotidien

          Posté par . Évalué à 4.

          juste pour dire qu'on peut aussi exporter l'affichage d'une fenetre ou de tout l'espace par VNC

          beaucoup de choses existent et marchent plutot bien, peut-être qu'il faudrait les regrouper et les rendre plus accessibles au commun des mortels : on a beau dire qu'une ligne de 3 mots suffit à faire des choses grandioses (comme ici exporter le display par VNC), il faut encore dire laquelle
    • [^] # Re: Squeak et son utilisation au quotidien

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

      Le gros "probleme" de squeak c'est son interface graphique, qui fait fuir enormement de gens. J'avoue que la premiere fois qu'un copain m'a montre squeak il y a 7 ou 8 ans, j'ai trouve ca sympa, morphix (le toolkit graphique) assez puissant (avec la demo du texte contenu dans une bulle/chemin) mais completement "gadget" et j'ai passe mon chemin. Belle erreur !

      Smalltalk est un langage/environnement vraiment fabuleux, qui permet de developper a une vitesse folle, et avec une souplesse inimaginable. Pour un programmeur, c'est un pur regal (oui, je suis un fan, ca se voit?)

      Ca t'amene aussi a changer assez radicalement la facon dont tu abordes la programmation, et puis, ca permet de comprendre vraiment ce que c'est la POO :)

      Maintenant, morphix, je peux pas piffrer comme toolkit, y'a de bonnes idees a la base mais le resultat actuel est un salmigondi de code... cocoa/gnustep est a cent coudees au dessus je trouve.

      Par contre la machine virtuelle qu'est-ce que c'est lent !

      Heu... non, du tout ! la VM squeak en tant que telle est plutot veloce ! Par contre, l'interface graphique des dernieres VM rame bien plus que du temps de la 3.6/3.7 ... j'avoue ne pas avoir trop suivi le pourquoi du comment, et puis bon, les fois ou j'utilise squeak je reste cantonne au browser de classe + transcript + workspace :D donc ca va...

      Sans vouloir paraître vexant, est-ce que c'est vraiment "utilisable" ?

      Ca depends pour quoi. Pour du prototypage, c'est proche de l'ideal. Pour faire une appli cliente, eventuellement pourquoi pas, mais tu peux oublier une integration avec le reste des applis de ton ordi (quoi que, il me semble qu'il y avait un bridge wxWidgets, donc je dit ptet des betise).

      Reste le web -- si tu ne connais pas, essaie http://www.seaside.st , c'est le meilleur serveur d'application web que je connaisse, c'est absolument monstrueux :) -- tu as tous les avantages de smalltalk (expressivite du code, concis, le debugger, refactoring browser, etc.) associe avec une framework de dev hyper bien foutu. C'est phenomenal, particulierement quand on compare avec le reste des "offres" dispos pour developper des applis web. C'est bien simple, Seaside permet de developper une appli web aussi simplement -- voire plus simplement, ca depends de quelle plateforme on parle ;-) -- qu'une appli desktop. Et tout les problemes que peux avoir Squeak du point de vue UI passent evidemment a l'As vu qu'on fait du HTML+CSS...

      Associe a Magritte (un framework permettant de decrire tes objets et qui du coup peut generer automatiquement un tas de trucs pour toi, ce qui est une bonne chose vu qu'on est paresseux) c'est assez genial..

      Un exemple d'application seaside: http://www.dabbledb.com (qui en soit est aussi tres, tres interessant, d'ailleurs ;-)
  • # Tweak ...

    Posté par . Évalué à 1.

    J'en profite pour poser une question:

    A propos de l'interface graphique, Morphix devait etres remplacé par Tweak ...
    Quel est l'état du projet ? (le site de Tweak ne semble plus répondre).

Suivre le flux des commentaires

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