Journal en vue d'une dépêche, commentaires appréciés.
Quatre mois après la version 1.0, voici Pharo 1.1. Comme c'est l'habitude dans la communauté Smalltalk, Pharo est à la fois un compilateur, une machine virtuelle et un environnement de développement. Pharo est sous licence MIT.
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. Il est disponible sous licence Creative Commons by-sa en version pdf et une version imprimée peut-être commandée.
La suite de cette dépêche détaille les avancées de Pharo 1.1 par rapport à Pharo 1.0
Annonce de la version 1.0 : http://linuxfr.org/2010/04/16/26738.html
Site web du projet : http://pharo-project.org/
Copies d'écran : http://pharo-project.org/about/screenshots
Vidéos : http://pharocasts.blogspot.com/
Livre Pharo by Example : http://pharobyexample.org/
* Settings framework
Settings est un nouveau framework modulaire de gestion des préférences. Il permet de s'abstenire d'avoir une classe Preference 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 chargera de faire appel aux méthodes annotées pour construire l'interface utilisateur.
* Nouveau World Menu
A 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 rejectées.
* Nettoyage et simplifications
Nettoyage du package Traits: 17 classes et 240 méthodes supprimées. Le code a été repackagé 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.
La lecture des images PNG a vu ses performances multipliées de 50 à 200 fois selon les cas.
* Exceptions
Ajout de l'exception OutOfMemory signalée lorsque 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.
* 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.
Une communauté active contribue au développement de packages pour Pharo via la plateforme Squeaksource (http://squeaksource.com/).
Quelques projets utilisant Pharo:
Les framework web Seaside (http://seaside.st), Illiad (http://www.iliadproject.org/)
Les CMS Cmsbox (http://www.cmsbox.com/en/cms), Pier (http://www.piercms.com/), Odyssey (http://www.objectfusion.fr/pages/Odyssey-CMS)
La suite d'analyse logicielle Moose (http://www.moosetechnology.org/)
Le logiciel de géométrie interactive DrGeo? (http://www2.ofset.org/drgeo)
L'application iPhone Call A Bike pour la réservation de vélos (http://2denker.de/callabike/)
# Faro
Posté par Matthieu M. (site web personnel) . Évalué à 2.
Moi aussi, je me suis sorti une petite faro de derrière les fagots... Mais là on est loin de la version 1.1...
git commit suicide
[^] # Re: Faro
Posté par laurent laffont (site web personnel) . Évalué à 2.
# mieux structurer
Posté par ZeroHeure . Évalué à 4.
la première partie est un peu courte, hors c'est elle qui donne envie de lire toute la dépêche (et qui est visible dans les flux RSS) ; tu pourrais y résumer les principales nouveautés (en 3 lignes) et ajouter un mot sur la diversité des projet utilisant Pharo, voire ajouter tout le paragraphe "Pourquoi utiliser Pharo" qui est le plus alléchant.
Il y a un an et un jour sortait une dépêche sur VisualGST, un autre environnement http://linuxfr.org/2009/07/26/25762.html - dans les commentaires on y mentionnait Pharo entre autres, tu pourrais compléter ta dépêche avec des projets semblables.
Ah puis tant que j'y suis, ça manque un peu dans la dépêche:
A qui est-ce destiné: programmeur expérimentés, débutants, etc.?
Qui est derrière Pharo?
C'est une variante de Smalltalk?
Comment ça se compare à Smalltalk, VisualGST, etc.?
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
[^] # Re: mieux structurer
Posté par laurent laffont (site web personnel) . Évalué à 1.
[^] # Re: mieux structurer
Posté par ZeroHeure . Évalué à 2.
peut-être que tu devrais donner qq détails sur "Pharo by example":
par exemple que c'est un _livre_ (pas juste un site web), libre, et indiquer un peu ce qu'il contient.
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
[^] # Re: mieux structurer
Posté par laurent laffont (site web personnel) . Évalué à 3.
[^] # Re: mieux structurer
Posté par ZeroHeure . Évalué à 2.
Je note:
Comme il est d'usage en Smalltalk, plutôt en fin de phrase, non? après ta courte description de Pharo.
Tu as mis le même niveau de titres pour chacune des nouvautés, "Pharo by example" et "Quelques projets...". Ce serait plus lisible avec un titre de niveau inférieur pour les nouvautés.
Quelques fautes:
Les sélecteurs peuvent maintenant contenir un caractère -.
un caractère "-".
Certaines expressions mal formulées sont maintenant rejectées.
rejetées
Nettoyage du package Traits ... repackagé
paquet, empaqueter
D'ailleurs en général s/package/paquet/
La lecture des images PNG a vu ses performances multipliées de 50 à 200 fois selon les cas.
C'est un peu lourd et ambigu! :-) je te suggère:
Performances améliorées pour la lecture des images PNG (50 à 200 fois selon les cas)
lorsque une
lorsqu'une
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
[^] # Re: mieux structurer
Posté par laurent laffont (site web personnel) . Évalué à 1.
# OpenBSD
Posté par パパフラクス . Évalué à 1.
Plus exactement en desactivant et en modifiant certaines choses, on arrive à compiler, mais pas a lancer une image. Il y a manifestement un problème avec le code lié à l'affichage. Quelqu'un par hasard aurait essayé et réussi?
Pour ajouter un coté trollesque, le jdk compile et fonctionne parfaitement :P
[^] # Re: OpenBSD
Posté par laurent laffont (site web personnel) . Évalué à 2.
Etant donné que la VM est dispo sous FreeBSD et NetBSD, je suppose que le problème peut être vite résolu.
A noter qu'une nouvelle VM (Cog) bien plus performante (JIT) est en cours de développement.
Le JD quoi ?
[^] # Re: OpenBSD
Posté par パパフラクス . Évalué à 1.
Dans les ports OpenBSD, il y a aussi une vm plus ancienne qui fonctionne pour squeak, mais qui n'est pas assez récente pour Pharo (l'image ne load pas).
Tout ça laisse effectivement penser qu'une correction doit être possible.
Je ne connais pas Cog, c'est utilisable, ou pas encore?
Le JDK, c'est utile dans mon cas pour travailler ;) désolé!
[^] # Re: OpenBSD
Posté par laurent laffont (site web personnel) . Évalué à 1.
Benchmark Python / Ruby / VW / SqueakVM / Cog / C http://bit.ly/ac8dms sur un algo pour calculer la suite de Fibonacci
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.