My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Pharo11FrenchAnnoucement  
Updated Jul 27, 2010 by laurent....@gmail.com

Pharo 1.1

Quatre mois après la version 1.0, Pharo 1.1 est annoncé. Pharo est à la fois un compilateur, une machine virtuelle et un environnement de développement, comme il est d'usage en Smalltalk. Pharo est diffusé sous licence MIT.

Pourquoi utiliser Pharo ?

Pharo est une implémentation moderne, libre et complète du langage Smalltalk et de son environnement. Il vise à offrir une plateforme stable, robuste, épurée et open source pour le développement de logiciels professionnels, la recherche dans le domaine des langages objets et environnement dynamique.

Pharo est extrêmement portable (même sa machine virtuelle est entièrement écrite en Smalltalk) ce qui facilite son débogage, son analyse et les modifications à venir. Pharo est le véhicule de tout un ensemble de projets innovants, des applications multimédias et éducatives aux environnements de développement pour le web.

Smalltalk reste la référence en matière de programmation dynamique, réflexive et orientée objet, d'outils de debuggage et de refactoring, source d'inspiration des systèmes Java, Objective-C et Ruby entre autres.

Une communauté active contribue au développement de packages pour Pharo via la plateforme Squeaksource (http://squeaksource.com/).

La suite de cette dépêche détaille les modifications apportées par Pharo 1.1 par rapport à la version 1.0, ainsi que des informations complémentaires pour toute personne désirant se lancer dans l'aventure !

Nouveautés

Settings framework

Settings est un nouveau framework modulaire de gestion des préférences dans Pharo. Il permet d'éviter d'avoir une classe de préférence globale à laquelle toutes les classes qui veulent déclarer des préférences doivent faire référence. Avec Settings, les méthodes qui déclarent des préférences sont annotées avec le pragma

<systemsettings>
. Le framework lui-même se charge de faire appel aux méthodes annotées pour construire l'interface utilisateur de modifications des préférences.

Nouveau World Menu

À l'instar des préférences, les entrées de menus sont déclarées en utilisant des pragmas. Chaque package peut ainsi étendre facilement le menu.

Classes noyau

La hiérarchie des collections a été remaniée. Set et Dictionary sont maintenant des sous-classes de HashedCollection, avec un meilleur identityHash distribué.

StandardFilestream utilse maintenant un tampon en lecture, amenant un gain de performance important sur nombre d'opérations. "Object compileAll" prends par exemple deux fois moins de temps (provient de Squeak).

Introduction d'une nouvelle hiérarchie extensible de parseurs de nombres depuis des chaînes de caractères et flux.

Variables Smalltalk globales et requêtes système

Remaniement de SystemDictionary et SmalltalkImage. Smalltalk est maintenant une instance de SmalltalkImage, une façade pour les requêtes et actions globales du système.

Corrections et améliorations du compilateur

Les sélecteurs peuvent maintenant contenir un caractère "-".

Certaines expressions mal formulées sont maintenant rejetées.

Nettoyage et simplifications

Nettoyage du paquet Traits: 17 classes et 240 méthodes supprimées. Le code a été empaqueté et mis à disposition sur SqueakSource.

Un nouveau protocole de nettoyage a fait son apparition (cleanUp). Un paramètre indique si on désire un nettoyage aggressif qui implique des actions destructives ou seulement un nettoyage des caches et de la mémoire.

Amélioration de la modularité, image de production de taille moindre

Plusieurs changements dans l'objectif d'obtenir une image minimale amorçable. Les packages stockant les icônes et les polices ont été remaniés. L'image résultante après évaluation de "ScriptLoader new cleanUpForProduction" fait 6.2 Mo.

Optimisation des performances

Amélioration des hash, conversions d'encodages, collections, rendus des polices et éléments graphiques.

Performances améliorées pour la lecture des images PNG (50 à 200 fois selon les cas).

Exceptions

Ajout de l'exception OutOfMemory signalée lorsqu'une allocation mémoire échoue.

Amélioration de la méthode des closures #ensure: (provient de Squeak).

SUnit

TestCase#assert: ne prends maintenant que des booléens.

CompilerMethodFormat

L'implémentation des méta-informations des méthodes compilées a été clarifiée.

Support natif des menus sous Mac OSX

Le world menu est disponible dans la barre des menus natifs.

Pharo by Example

Le livre "Pharo by Example", sorti en fin d'année dernière, décrit le langage Smalltalk et les outils de l'environnement de développement Pharo. Il est disponible sous licence "Creative Commons by-sa" en version pdf et une version imprimée peut également être commandée. A l'attention des étudiants et développeurs qui veulent se lancer dans Smalltalk et Pharo, le livre introduit la syntaxe des messages, le modèle objet de Smalltalk, les environnements de développement et de test (SUnit), les classes de bases, collections, flux, système graphique Morphic. Les développements d'une application graphique Morphic et d'une application web Seaside servent d'exemples.

Une traduction française est en cours de finition. Une seconde édition enrichie est en cours d'écriture (certains chapitres sont déjà disponibles sur le site pour évaluation).

Quelques projets utilisant Pharo


Sign in to add a comment
Powered by Google Project Hosting