Selon sa documentation, Pharo est un langage de programmation purement orienté objet et un environnement puissant, axé sur la simplicité et le retour d'information immédiat. Il est entièrement open source : la pile complète de Pharo est publiée sous licence MIT. Le langage ne dispose pas de constructeurs, pas de déclaration de types, pas d'interfaces, et pas de types primitifs. Selon ses auteurs, c’est un langage puissant et élégant avec une syntaxe complète qui tient dans une carte postale. L'environnement Pharo comprend aussi un débogueur.
Ce dernier vous permet de parcourir le code, de relancer l'exécution des méthodes, de créer des méthodes à la volée, et bien plus encore. Le système est réflexif, car un programme peut modifier sa structure et son comportement lors de l’exécution. C’est un langage à typage dynamique par opposition aux langages à typage statique, qui forcent le développeur à indiquer de quel type est chaque variable. L'héritage avec Pharo est simple. Une classe hérite d'une seule autre et une classe peut être aussi composée de traits (ensemble de méthodes).
C’est un langage de programmation qui fait une gestion automatique de la mémoire. Il utilise un ramasse-miettes (ou garbage collector), comme les langages tels que LISP ou Java le font. Par ailleurs, un autre avantage de Pharo est qu'il n'est pas nécessaire de recompiler tout le code lors de la modification d'une méthode. Il est 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 ».
Voici les fonctionnalités les plus mises en avant dans cette nouvelle version du langage :
- Iceberg, le client git pour Pharo, a atteint sa version 1.6.5 avec plusieurs améliorations et corrections de bogues ;
- Calypso, le navigateur système de Pharo, a de nouvelles et meilleures intégrations de refactoring et des suggestions basées sur AST pour les définitions de classes.
- l'interface de fonction étrangère unifiée (UnifiedFFI) a été améliorée avec plus de support pour les objets littéraux, de meilleures coercions de type et plus de documentation.
- Pharo 8.0 contient de nombreuses améliorations de la vitesse de recherche et de compilation du code ;
- un nouveau moteur de complétion de code ;
- amélioration de la documentation du processus d'amorçage ;
- une meilleure intégration des créneaux horaires ;
- une mise en œuvre plus rapide des collections ;
- accélération des requêtes du système et de l'accès aux sources ;
- des recherches Spotter plus rapides ;
- une meilleure performance de construction de classe ;
- flux de lecture-écriture compatibles SSD ;
- etc.
En outre, cette version comprend plusieurs aperçus de nouveaux outils tels que le framework d'interface graphique Spec2 avec intégration native de widgets et le nouvel outil d'analyse des tests DrTests. Pharo 8.0 ouvre la porte aux prochaines machines virtuelles pour les serveurs et les FFI (Foreign Function Interface) non bloquantes. Environ 2805 problèmes ont été résolus dans cette version, y compris 1500 correctifs et améliorations. La page GitHub du projet contient encore plus d’informations sur les modifications apportées à Pharo 8.0.
Sources : Pharo, GitHub
Et vous ?
Que pensez-vous de Pharo 8.0 ?
Voir aussi
Pharo 5 : la nouvelle version du langage
Pharo 1.0, un environnement simple et épuré pour se mettre à Smalltalk
Quels sont les langages de programmation les plus utilisés par les développeurs ? Une analyse des évènements publics sur GitHub
Microsoft Research lance Bosque, un nouveau langage de programmation sans boucles et open source, inspiré par TypeScript