home

=Squeak=


 * Squeak** es una implementación [|libre] de languaje de programación [|Smalltalk].


 * ==Introduction== ||
 * L'environnement Squeak est basé sur une [|machine virtuelle]. Squeak est issu de travaux menés d'abord au [|Xerox PARC], puis chez [|Apple] puis enfin chez [|Disney Interactive] par une équipe constituée autour de [|Dan Ingals] et [|Alan Kay]. Initialement conçu à l'adresse de publics jeunes ou novices en informatique, il est aujourd'hui l'objet de plusieurs contributions qui dépassent le cadre de l'éducation à proprement parler. On peut citer, parmi d'autre, [|Croquet], un projet d'environnement 3D complet ou encore [|Kedama], un outil de simulation multi-agent. ||

Capture d'écran de l'environnement Squeak

L'environnement Squeak est basé sur une [|machine virtuelle]. Squeak est issu de travaux menés d'abord au [|Xerox PARC], puis chez [|Apple] puis enfin chez [|Disney Interactive] par une équipe constituée autour de [|Dan Ingals] et [|Alan Kay]. Initialement conçu à l'adresse de publics jeunes ou novices en informatique, il est aujourd'hui l'objet de plusieurs contributions qui dépassent le cadre de l'éducation à proprement parler. On peut citer, parmi d'autre, [|Croquet], un projet d'environnement 3D complet ou encore [|Kedama], un outil de simulation multi-agent. 

Squeak et l'éducation [[|modifier]]
Squeak est l'héritier du **[|Logo]** dans l'approche qu'il propose de l'interaction informatique-éducation. Il s'inscrit dans les cadres théoriques de la [|psychologie du développement] et des idées de gens comme [|Baldwin], [|Piaget] ou [|Vygotski]. C'est un environnement informatique de type [|micromonde]. [|Alan Kay], l'un des pères fondateurs de Squeak, concepteur du [|Dynabook], emboîte ainsi le pas à [|Papert] et [|Minsky] pour proposer un environnement de programmation à destination des enfants : l'idée de cet outil est d'offrir un grand espace de liberté, facilement accessible, et dans lesquel les enfants pourront exprimer leurs idées et en explorer les conséquences (voir aussi [|constructivisme], [|théorie de l'activité]). L'un des aspects particulier à l'environnement Squeak est le concept d'E-Toys, une concrétisation, sous forme de dessins que l'on crée soi-même, de la notion d'[|objet]. Squeak a été retenu pour [|One Laptop per Child]. 

Aspects techniques [[|modifier]]
Squeak est entièrement programmé en Squeak, dialecte de [|Smalltalk]. La [|machine virtuelle] sous-jacente est écrite en Slang (un sous-ensemble moins orienté objet de Smalltalk) puis traduite en C par un programme Squeak et compilée pour la plate-forme ciblée. Dans Squeak, on trouve une implémentation de [|Morphic], la structure architecturale graphique de manipulation directe d'objets du langage de programmation [|Self]. Morphic est une alternative à l'interface « Model View Controller » ([|MVC]) traditionnelle de Smalltalk-80, qui reste cependant disponible dans Squeak. D'autre part, Squeak est orienté multimédia. Il intègre lecteurs de formats wav, mp3, flash, prend en charge le midi, la synthèse sonore et vocale, les API 2D et 3D, reconnaissance de caractères, mais gère également le réseau : serveur et navigateur web, prise en charge du format XML, lecteur de mail, etc. Squeak est disponible sur Linux, Windows (win32), BSD, Mac OS X, Be, Amiga, ainsi que sur certains PDA. 

Environnement de développement [[|modifier]]
Squeak propose un [|environnement de développement] qui comportant des outils dont certains étaient inédits. MethodFinder methodFor: #( ('Squeak is a programming environment' 6) 'Squeak')Résultat retourné :'(data1 truncateTo: data2) '→ Il faut donc utiliser la méthode truncateTo: pour avoir le début d'une chaîne de caractères.MethodFinder methodFor: #( #(#(4 2 3 1)) #(1 2 3 4))Résultat retourné :'(data1 asSortedArray) (data1 sort) '→ Il existe donc deux méthodes pour trier un tableau. 
 * //**[|Refactoring Browser]**// : permet de visualiser facilement tout le code source de Squeak rangé en paquets, classes, protocoles et méthodes. Il possède des fonctions pour les transformations de code :
 * Renommage d'une [|classe], d'une [|méthode] ou d'une [|variable] automatiquement répercutée sur toutes les occurences du nom de cette classe dans le code source.
 * Création en un clic des [|accesseurs] à l'ajout d'une variable d'instance.
 * Extraction d'une partie d'une méthode dans une autre méthode (factorisation du code).
 * //**Method Finder**// : permet de retrouver une méthode dans tout le code en lui donnant une liste de paramètres (ordre non nécessaire) et un résultat attendu. Exemples :
 * //**Workspace**// : permet de s'entraîner en tapant des commandes Smalltalk et en voyant immédiatement leurs résultats.
 * Navigateur pour les tests unitaires, navigateur pour la gestion de version des paquets, etc.

Liens externes [[|modifier]]

 * **(fr)** [|La communauté Squeak en français] ([|télécharger la dernière version francisée de Squeak])
 * **(en)** [|www.squeak.org], le site anglophone officiel
 * **(en)** [|Squeak Swiki], une source d’information très complète
 * **(en)** [|Squeakland], orienté sur les questions liées à l’éducation