Pharo | |
![]() | |
Auteurs | l'équipe du Projet Pharo |
---|---|
Paradigmes | POO |
Typage | dynamique |
Influencé par | Simula, Sketchpad, LISP, Squeak |
Implémentations | Pharo |
Système d'exploitation | Multiplate-forme |
Licence | MIT |
Site Web | http://www.pharo-project.org/ |
Pharo est une implémentation libre créée en 2009 sous licence MIT du langage de programmation Smalltalk. La version 1.0 de Pharo est sortie le 15 avril 2010.
Pharo est un environnement de programmation dynamique. C'est une implémentation performante du langage Smalltalk, basée sur une machine virtuelle écrite en large partie en Smalltalk elle-même.
Pharo étant un fork de Squeak est donc comme tout Smalltalk 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.
Lancé en 2008, le Projet Pharo se propose de supprimer tout ce qui n'est pas essentiel dans le code de Squeak et aussi de devenir l'implémentation de référence de Seaside, un framework web pour développer des applications web en Smalltalk.
Pharo a une politique qui oblige ses contributeurs à accepter de publier leur code sous licence MIT
Comme dans Squeak, on trouve dans Pharo une implémentation de Morphic. Mais plusieurs des paquetages qui sont intégrés dans Squeak sont optionnels dans Pharo (comme par exemple E-Toys). En revanche et contrairement à Squeak, Pharo gère en natif les fontes TrueType
Il est notoire que la communauté Smalltalk de Pharo comme celle de Squeak (un autre dialecte de Smalltalk) est très conviviale.
Pharo est un environnement de développement dans lequel tout est objet (au sens de la Programmation Orientée Objet)
Pharo est reflexif (il permet de modifier sa structure et son comportement lors de l’exécution)
Pharo utilise 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...). En typage dynamique, les variables peuvent prendre n'importe quelle valeur.
Dans Pharo comme dans tout Smalltalk l'héritage est simple
Pharo (comme Lisp) utilise un ramasse-miettes (le garbage collector).
Il est notoire que les durées de développement (pour de gros projets) sont nettement réduites avec Smalltalk. Quelques points à souligner :
La page (en anglais) "Success Stories" liste un ensemble de sociétés utilisant Pharo dans des projets commerciaux ou libre. Ils s'appuient notamment sur :