Pharo 1.2

Posté par  (site web personnel) . Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
28
6
avr.
2011
Technologie

Le projet Pharo est fier d’annoncer la sortie de Pharo 1.2 — troisième version majeure d’un environnement Smalltalk libre, qui se veut innovant et de qualité.

Révision # 12345

Le mardi 29 mars 2011, la révision #12345 (sans blague) a été promue version finale de Pharo 1.2, branche débutée en juin 2010 et gelée en janvier 2011. La communauté a vu une évolution majeure de l’infrastructure de développement avec la mise en place de serveurs d’intégration continue. Les images Smalltalk Pharo Core (environnement minimal) et Pharo (environnement de développement complet) sont maintenant construites et testées automatiquement.

Pharo Core 1.2 passe 7836 tests unitaires, Pharo 1.2 pas moins de 10 760 tests. Une communauté internationale de développeurs a travaillé dur plusieurs mois pour s’assurer de la compatibilité de Pharo avec plusieurs bibliothèques et plates‐formes, dont Seaside 3.0.3 avec ses 1599 tests qui passent.

Évolutions de Pharo Core

En accord avec la philosophie de Pharo, cette version résulte de nombreuses petites modifications, refactorisations, nettoyages et corrections de bogues qui améliorent la qualité globale du système.

Interface graphique

  • Nettoyage de la hiérarchie de classes Pluggable
  • Nettoyage des classes Morph et PasteUpMorph
  • Nouvelle gestion des annulations / restaurations
  • Ajout de DummyUIManager qui permet le fonctionnement de Pharo sans interface graphique
  • Ajout de NewTextMorph, version nettoyée de TextMorph
  • Suppression des restes de MVC : PopUpMenu, SelectionMenu et CustomMenu

Outils

  • Correction des outils d’exploration des références / pointeurs sur objet
  • Débogage des blocs amélioré
  • Finder remplace les outils Method Names et Messages Finder. Recent Changes remplace Recent Submissions.
  • Nettoyage de Utilities, Preferences et TheWorldMenu
  • Amélioration de SpaceTally
  • Nouveaux thèmes graphiques : Glamorous, Glamorous Orange et GUI Pro
  • Intégration de SimpleMorphic (version légère et nettoyée de Morphic) en « preview »
  • Ajout de TextEditor et SmalltalkEditor

Sous le capot

  • Séparation de SmalltalkImage et SystemDictionary
  • Amélioration de la compatibilité avec la machine virtuelle Cog
  • Suppression des anciennes expérimentations de JIT
  • Suppression des classes vides
  • Correction des dépendances cycliques et illogiques entre paquetages, ce qui facilite la création d’images à faible empreinte mémoire (kernel images)
  • Migration des outils utilisant le « hack » MethodReferenceWithSource
  • Intégration de SUnit 4

Aide

  • Ajout de la documentation sur les expressions régulières et le framework d’évènements Announcements
  • Plus de classes sont commentées

Structure

  • Intégration continue : Hudson construit et teste automatiquement les images, et compile les VM.

Au total, résolution de 693 tickets.

Évolutions de Pharo

L’image de développement complète est automatiquement construite en chargeant la configuration Metacello ConfigurationOfPharo (Metacello permet de gérer les dépendances entre paquetages, à l’instar d’APT pour les paquets Debian)

  • Mise à jour de toutes les configurations utilisées par Pharo — utilisation de versions symboliques
  • Ajout de nouvelles configurations : Metacello Browser, Memory Monitor, XMLSupport, Autotest.
  • Suppression de NewInspector
  • Mise à jour de Shout, RoelTyper, OCompletion, OmniBrowser, AutomaticMethodCategorizer, RefactoringBrowsers, Nile, ProfStef
  • Nouvelles documentations : Autotest, raccourcis clavier, Metacello, Smalltalk terse guide.

Au total, résolution de 57 tickets.

Téléchargements

Vous pouvez télécharger Pharo 1.2 sous plusieurs formes :

  • Pharo 1.2.1 One-Click est la solution la plus facile pour commencer : cela inclut tous les composants (images, fichiers « .changes » et « .sources », VM Cog) en un seul paquetage fonctionnant sous GNU/Linux, Mac OS X et MS Windows.
  • Pharo 1.2.1 : l’image de développement.
  • Pharo Core 1.2.1 : l’image minimale (pour des déploiements en production)

Success Stories

Pharo a une base de plus en plus large d’utilisateurs à travers le monde. Un nombre croissant de projets utilisant Pharo sont annoncés publiquement. Les suivants ont récemment été ajoutés :

  • DrGeo — une application innovante de géométrie interactive utilisée en enseignement primaire et secondaire.
  • Issys Tracking — une plate-forme de gestion des procédures dans l’activité médicale pour une importante organisation de santé en Argentine.
  • Inceptive’s Custom ERP — application de gestion de ressources et de planification d’évènements pour un centre culturel en Flandre.

Aller plus loin

  • # ah non alors

    Posté par  . Évalué à 6.

    si c'était la troisième version majeure, il fallait l'appeler Pharo 3.0

    • [^] # Re: ah non alors

      Posté par  . Évalué à 2.

      je suiçs déçu... ce projet ça n'a rien à voir avec la bière...

      (d'ou l'art de de faire moinsser :-D)

  • # difference avec Squeak ?

    Posté par  . Évalué à 3.

    Hello,

    il y a quelques jours j'ai testé Squeak, avec l'image qui correspond au livre "Squeak par l'exemple". C'est quoi les differences avec Squeak? Ca a l'air de se ressembler furieusement.

    En tout cas, je conseille au gens d'essayer, c'est assez fun et déroutant (tout est objet, on peut interagir avec l'environnement de dev, systeme de distribution de l'environnement, ...).
    Je voulais écrire un petit jeu. Pour l'instant je ne suis pas assez avancé en smalltalk pour ça, mais je compte bien perseverer. Je pense pas faire du smalltalk mon langage principal, mais pour le fun, ca vaut le coup d'essayer.

    • [^] # Re: difference avec Squeak ?

      Posté par  (site web personnel) . Évalué à 3.

      Pharo est un fork de Squeak, suite à une divergence d'intérêts entre des développeurs qui voulaient continuer à développer une plateforme multimedia un peu fourre-tout (Squeak) et ceux qui voulaient que se développent un Smalltalk avec de meilleures pratiques logicielles (tests unitaires, découplage des modèles et de l'UI, intégration continue des modifications, ...). Pharo vise une cible plus professionnelle avec notamment le développement web avec Seaside.

    • [^] # Re: difference avec Squeak ?

      Posté par  (site web personnel) . Évalué à 3.

      Il y a aussi un livre "Pharo by example" : http://pharobyexample.org/ et une traduction en français en cours de finalisation: https://github.com/SquareBracketAssociates/PharoByExample-french

    • [^] # Re: difference avec Squeak ?

      Posté par  . Évalué à 3.

      Transcript show: 'hello' ; cr.

      Je m'étais lancé dans l'aventure d'un petit jeu en 2D
      avec Squeak, un peu avant Pharo.

      La communauté francophone est vraiment sympa,
      et il est facile d'avoir de l'aide.

      Côté jeu, j'ai été séduit par le framework Morphic qui dispose
      de plein de bonnes choses pour la gestion du clavier,
      des évènements, les sprites.

      Seul problème, si on veut rester à haut niveau
      et seulement utiliser le framework Morphic on perds la possibilité
      d'avoir quelque chose de fluide car on partage la boucle d'évènement avec le système.

      Du coup si tu veux pouvoir te déplacer pixel par pixel,
      c'est un déplacement toutes les 0,5 secondes si ma mémoire
      est bonne.

      J'ai pas eu le courage d'aller plus loin et de créer ma propre
      boucle et de tout gérer derrière.

      Bon courage à toi.

      • [^] # Re: difference avec Squeak ?

        Posté par  . Évalué à 2.

        ben c'est un peu (beaucoup) le problème des Morph par rapport à l'ancienne architecture MVC : depuis que le premier est apparu, ça RAME.

        • [^] # Re: difference avec Squeak ?

          Posté par  (site web personnel) . Évalué à 3.

          Au passage PharoCore 1.2 intègre une preview de SimpleMorphic en vue de baser l'UI sur ce framework. SimpleMorphic viens de Cuis http://www.jvuletich.org/Cuis/Index.html

          D'ailleurs dans la dernière release note http://www.jvuletich.org/Cuis/CuisReleaseNotes.html:

          Super fast Morphic world display.

          About ten times faster when many windows are open.
          Makes the whole UI feel much more responsive.
          Simpler code
          
          • [^] # Re: difference avec Squeak ?

            Posté par  . Évalué à 1.

            ah, et bien tant mieux, car si, comme Volfoni le dit plus haut, il faut 0,5 secondes pour avancer des pixels, c'est mort pour un jeu (même si c'est un petit jeu en 2D, moi je suis resté très Amtrad CPC dans ma tête!). Merci pour l'info.

            • [^] # Re: difference avec Squeak ?

              Posté par  . Évalué à 1.

              Amstrad CPC , classe !!

              ça explique l'image Cauldron :)

              C'est amusant, le jeu que j'avais commencé a écrire en smalltalk c'était Sorcery :)

              J'ai écrit un morceau de code, pas du tout finalisé, pour extraire les images
              des ROMS, ça m'a permit d'avoir une partie des sprites originaux.

              Si ça t'intéresse fabricius, je peux toujours essayer de voir si je retrouve le code.

              En tout cas bon courage pour ton développement.

              • [^] # Re: difference avec Squeak ?

                Posté par  . Évalué à 1.

                Hello,

                Désolé de ma réponse tardive, je reviens de vacances.
                Je sais pas pourquoi ton message a été moinssé. Je te plussoie du coup.
                Pour extraire les images originales, l'emulateur WinAPE permet de faire ça, malheureusement il est sous windows (comme la plupart des bon émulateurs de vieilles machines). Mais ça ne marche pas pour tous les jeux, ou en tout cas il faut un peu de réglage.

                Si tu retrouve le code, je veux bien, surtout que je vois pas du tout comment on peux faire ce que tu dis. Mais ne cherche pas des heures, tant pis si tu ne sais pas ou c'est.

                Sorcery, c'est aussi un de mes jeux préférés sur CPC!

  • # Vendredi?

    Posté par  . Évalué à 4.

    C'est un projet libre? Parce qu'ils utilisent Hudson pour leur intégration continue alors qu'il faudrait utiliser jenkins...

  • # Processus de développement

    Posté par  (site web personnel) . Évalué à 2.

    La dernière dépêche sur Smalltalk m'avait donné envie de regarder de plus près ce langage. J'ai fait un peu joujou avec Squeak puis Pharo et voici une question à laquelle je n'ai pas trouvé de réponse (par simple utilisation) :

    Comment s'organise le processus de développement ?

    Imaginons que je veuille démarrer un projet développé sous Pharo avec quelques développeurs.

    • Comment s'organise le partage des sources ?
    • Comment faire de l'intégration continue ?
    • Comment faire de la livraison continue ?

    La mise en place d'hudson/jenkins sur le projet Pharo prouve que cela est faisable, mais je n'ai pas trouvé (pas cherché longtemps non plus, je l'avoue) d'information sur ce genre de mise en œuvre.

    Si jamais de bonnes âmes averties ont des infos, je suis preneur :D.

    p.s:première fois que je poste un commentaire avec la nouvelle interface.... SYMPA !

    Alexandre COLLIGNON

  • # Et Pharo par l'exemple ?

    Posté par  . Évalué à 0.

    Bonjour,

    ou en est la traduction Française de Pharo by examples ?

    Merci.

Suivre le flux des commentaires

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