Pharo

Un article de Wikipédia, l'encyclopédie libre.

Pharo
Logo.
Capture d'écran de l'environnement Pharo
Capture d'écran de l'environnement Pharo

Date de première version 2008
Paradigme Objet
Auteur l'équipe du projet Pharo
Développeur Pharo board[1]
Dernière version 11.0 ()
Version en développement 8.0[3]Voir et modifier les données sur Wikidata
Typage dynamique
Influencé par Smalltalk, Squeak, Simula
Implémentations Pharo
Écrit en SmalltalkVoir et modifier les données sur Wikidata
Système d'exploitation Multiplate-forme
Licence MIT, licence Apache
Site web pharo.org
Extensions de fichiers .st, .mcz

En informatique, Pharo est un langage de programmation dynamique, épuré et sous licence MIT, créé en 2009.

Introduction[modifier | modifier le code]

Pharo est un langage de programmation largement inspiré de Smalltalk. Il est basé sur une machine virtuelle, écrite en large partie en Pharo lui-même, ce qui lui permet d'être multiplateforme (Mac OS X, Windows, Linux, iOS, Android). Pharo a été créé par S. Ducasse et M. Denker le .

La politique de Pharo oblige ses contributeurs à accepter de publier leur code sous licence MIT. Pharo possède les principales caractéristiques de Smalltalk :

Tout est objet, au sens de la programmation orientée objet. La syntaxe tient sur une carte postale. Toutes les méthodes sont virtuelles publiques, les attributs protégés. Il y a de l'héritage simple et des traits (ensemble de méthodes) peuvent composer les classes.

Le système est réflexif : un programme peut modifier sa structure et son comportement lors de l’exécution,

Le typage est un typage dynamique : contrairement à certains langages à typage statique, qui forcent le développeur à indiquer de quel type est chaque variable (entier, chaîne de caractères…), les variables peuvent prendre n'importe quelle valeur,

L'héritage est simple. Une classe hérite d'une seule autre. Une classe peut être aussi composée de traits (ensemble de méthodes).

La gestion de la mémoire est automatique : Pharo utilise un ramasse-miettes (garbage collector)[4], comme d'autres langages par exemple Lisp ou Java.

Un des intérêts principaux de Pharo est qu'il n'est pas nécessaire de recompiler tout le code dans le cas de la modification d'une méthode. Il est par exemple possible de modifier ou de créer une méthode au sein du débogueur et de reprendre le flot d'exécution juste avant la modification. Certains appellent cela la méthode edit and continue au lieu de la traditionnelle méthode edit compile and run.

Communauté[modifier | modifier le code]

600 personnes sont abonnés à la liste de diffusion de Pharo.

Le dernier vendredi de chaque mois, des membres de la communauté se retrouvent durant une journée pour améliorer Pharo au cours d'un sprint.

Chaque année une conférence Pharo a lieu. Les utilisateurs de Pharo se réunissent au cours de cette conférence pour partager à la fois leurs projets de recherche et professionnels. En 2010, elle s'est déroulée à Annecy (France). En 2011 et 2012, elle a eu lieu à Lille en France. Enfin, en 2013, la conférence Pharo s'est déroulée à Berne en Suisse.

Régulièrement, des vidéos de programmation avec Pharo sont postés sur PharoCast[5] ou sur la chaine youtube de Pharo.

Plus d'une vingtaine d'entreprises utilisent aujourd'hui Pharo pour leurs développements logiciels. Les principales applications développées sont d'une part liées au développement d'application web (en utilisant par exemple le framework Seaside) et d'autre part à l'analyse et à la visualisation de système logiciel (en utilisant le framework Moose).

La communauté Pharo s'organise autour d'un consortium[6] rassemblant des industriels, des partenaires académiques utilisant la plateforme. Pharo dispose également d'une association[7] à but non lucratif.

Historique[modifier | modifier le code]

Pharo est un fork de Squeak, un Smalltalk open source développé par des membres de l'équipe originelle de Smalltalk-80 (Dan Ingals et Alan Kay).

Se démarquant de l'aspect plus ludique de Squeak, les concepteurs de Pharo (chercheurs à l'INRIA) souhaitent développer un Smalltalk moderne tourné vers les besoins des entreprises et de la recherche en génie logiciel. Pharo est devenu l'implémentation de référence de Seaside, framework web pour développer des applications web en Smalltalk[8]. Aujourd'hui, Pharo est soutenu par un consortium regroupant les utilisateurs industriels et une association pour les particuliers.

Fork en 2008.

Le tableau suivant montre la date de sortie des différentes versions de Pharo.

version Date de sortie
1.0
1.1 [9]
1.2 [10]
1.3
1.4
2.0 [11]
3.0 [12]
4.0 [13]
5.0 [14]
6.0 [15]
6.1 [16]
7.0 [17]
8.0 [18]
9.0 [19]
10.0 [20]
11.0 [21]

Le planning actuel prévoit une nouvelle version par an.

Enseignement et Recherche[modifier | modifier le code]

Enseignement[modifier | modifier le code]

Avec sa communauté active, sa licence MIT, son noyau stable et son fonctionnement multiplateforme, Pharo est un environnement idéal pour apprendre le langage Smalltalk.

Un livre en français, Pharo par l'exemple, est disponible en ligne[22]. Il est gratuit et permet d'apprendre les bases de Pharo. Un second volume est en préparation[23].

Pharo est de plus en plus utilisé dans le cadre de l'enseignement. Smalltalk est enseigné sous la forme de Pharo notamment à :

  • l'université de Buenos Aires (Argentine)
  • l'université de Bern (Suisse) [24]
  • l'université de Bruxelles (Belgique) [25]
  • l'IMT Lille Douai (France) [26]
  • l'université de Lille 1 (France) [27]
  • l'université de Savoie (France) [28]
  • l'université de Lviv (Ukraine)
  • l'université Northern Michigan (États-Unis) [29]
  • l'université Catholique d'Argentine (Argentine) [30]
  • l'université de Santiago (Chili) [31]
  • l'université polytechnique de Catalunya (Espagne) [32]
  • l'université de Maroua, École Nationale Supérieure Polytechnique (Cameroun) [33]

Recherche[modifier | modifier le code]

Des équipes de recherche travaillent avec Pharo, notamment les équipes :

  • Lafhis (université de Buenos Aires, Argentine)
  • Software Composition Group (Université de Bern, Suisse) [24]
  • CAR (IMT Lille Douai, France) [34]
  • RMOD (Inria, France) [35]
  • Ummisco (IRD, France) [36]
  • Reveal (université de Lugano, Suisse)
  • Lysic (université de Bretagne Occidentale, France) [37]
  • Pleiad (université de Santiago, Chili)
  • CEA-List

La Pharo association a été récemment créée et regroupe tous les indépendants souhaitant soutenir le projet[38].

Performance et machine virtuelle[modifier | modifier le code]

Pharo est basé sur une machine virtuelle écrite en large partie en Smalltalk elle-même. Depuis 2008, une nouvelle machine virtuelle avec un niveau de performance comparable aux dialectes Smalltalk les plus rapides est disponible[39]. Cette machine virtuelle performante fonctionne sur Mac OS X, Windows et Linux. Une version simplifiée et un peu moins rapide fonctionne sur iOS et Android.

Articles connexes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. Pharo board
  2. « https://pharo.org/news/2024-04-26-pharo12-released.html »
  3. « http://forum.world.st/ANN-Pharo-8-0-development-started-td5091798.html#a5092113 »
  4. http://www.unixgarden.com/index.php/programmation/smalltalk-le-pouvoir-et-la-simplicite-du-tout-objet
  5. (en) « Home », sur PharoCasts (consulté le ).
  6. (en) « Web : Pharo Consortium », sur pharo.org (consulté le ).
  7. (en) « Pharo Association - Home », sur pharo.org (consulté le ).
  8. (en) « Google Code Archive - Long-term storage for Google Code Project Hosting. », sur google.com (consulté le ).
  9. « Sortie de Pharo 1.1 - LinuxFr.org », sur linuxfr.org (consulté le ).
  10. (en) « Google Code Archive - Long-term storage for Google Code Project Hosting. », sur google.com (consulté le ).
  11. « Pharo - Download », sur pharo-project.org (consulté le ).
  12. Annonce de Pharo3.0 http://pharo.org/news/pharo-3.0-released
  13. Annonce de Pharo4.0 http://pharo.org/news/pharo-4.0-released « Copie archivée » (version du sur Internet Archive)
  14. Annonce de Pharo5.0 http://pharo.org/news/pharo-5.0-released « Copie archivée » (version du sur Internet Archive)
  15. Annonce de Pharo6.0 https://pharo.org/news/pharo6.0-released
  16. Annonce de Pharo6.1 https://pharo.org/news/pharo6.1-released
  17. Annonce de Pharo7.0 https://pharo.org/news/pharo7.0-released
  18. Annonce de Pharo8.0 https://pharo.org/news/pharo8.0-released
  19. Annonce de Pharo9.0 https://pharo.org/news/pharo9-released.html
  20. Annonce de Pharo10.0 https://pharo.org/news/pharo10-released.html
  21. Annonce de Pharo11.0 https://pharo.org/news/pharo11-released
  22. (fr) Pharo par l'exemple, de Andrew Black, Stéphane Ducasse, Oscar Nierstrasz et Damien Pollet, traduit par Martial Boniou, René Paul Mages et Serge Stinckwich. Licence Creative Commons paternité, version 3.0
  23. Il est d'ores et déjà possible d'accéder à certains chapitres de la version anglaise sur le site http://rmod.lille.inria.fr/pbe2/ « Copie archivée » (version du sur Internet Archive)
  24. a et b (en) « SCG : SCG », sur unibe.ch (consulté le ).
  25. « Home / Software Languages Lab », sur ac.be (consulté le ).
  26. « IMT Nord Europe - For the world of today and the one of the future », sur IMT Nord Europe (consulté le ).
  27. « Accueil - Université de Lille », sur univ-lille1.fr (consulté le ).
  28. « IMUS - Université Savoie : LMD », sur univ-savoie.fr via Wikiwix (consulté le ).
  29. (en) « Home / Northern Michigan University », sur Northern Michigan University (consulté le ).
  30. (en) « UCA », sur edu.ar (consulté le ).
  31. « Universidad de Chile », sur uchile.cl (consulté le ).
  32. « UPC », sur UPC Universitat Politècnica de Catalunya (consulté le ).
  33. (en) « ENSPM - Ecole Nationale Supérieure Polytechnique de Maroua », sur univ-maroua.cm (consulté le ).
  34. (en) « CAR : Components, Agents, and Robots « with Dynamic Languages », sur imt-lille-douai.fr (consulté le ).
  35. (en) « RMoD : RMoD », sur inria.fr (consulté le ).
  36. http://www.ummisco.ird.fr/index.php « Copie archivée » (version du sur Internet Archive)
  37. http://www.lisyc.univ-brest.fr/
  38. (en) « Pharo Association - Home », sur pharo.org (consulté le ).
  39. « Cog Blog », sur mirandabanda.org (consulté le ).

Liens externes[modifier | modifier le code]