IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La version 9 de Pharo, un langage de programmation appartenant à la famille Smalltalk, est disponible
Avec un nouvel inspecteur centré sur les objets et la prise en charge de l'ARM 64bits

Le , par Bill Fassinou

59PARTAGES

12  0 
L'équipe de développement de Pharo, un langage de programmation orienté objet et axé sur la simplicité et le retour d'information immédiat, a publié la version 9 au cours de la semaine dernière. Pharo 9 apporte plusieurs améliorations au langage comme la refonte complète de l'interface utilisateur Spec (nouvelle logique, application, style, back-end GTK3) et de nouvelles fonctionnalités, notamment un nouvel inspecteur centré sur l'objet, un nouveau débogueur centré sur l'objet, le support pour ARM 64bits, la prise en charge de l'Apple M1, etc.

Qu'est-ce que le langage de programmation Pharo ?

Pharo est un langage de programmation moderne, simple et facile à apprendre qui appartient à la famille Smalltalk. En termes simples, le langage de programmation Pharo est un dialecte complet du langage de programmation Smalltalk. Il est purement orienté objet et il suit tous les concepts de cette approche comme les classes, l'héritage, l'abstraction, le polymorphisme et l'encapsulation, etc. Il est dynamique et réfléchi et fonctionne sur la plateforme Xerox Alto. En matière de systèmes d'exploitation, les programmeurs peuvent utiliser Pharo sous différents systèmes d'exploitation comme Windows, Linux, macOS et autres.



Pharo est un langage de programmation open source, et il est sous licence MIT et partiellement sous licence Apache 2.0. Il a une syntaxe simple, concise et facile à assimiler. En outre, il fournit diverses fonctionnalités de programmation en direct à ses utilisateurs, comme la recompilation à chaud, la mise à jour en direct et la manipulation immédiate des objets. Pharo est utilisé dans différents domaines tels que l'apprentissage automatique, le traitement du langage naturel (NLP – Natural processing language), le traitement des réseaux naturels, etc.

Pharo a été conçu et développé par la communauté Pharo en 2008. Le mot Pharo est tiré du mot français "Phare" qui signifie "phare". La première version du langage de programmation Pharo a été publiée le 16 mars 2008 et la dernière version de Pharo, à savoir la version 8.0, a été rendue publique le 20 janvier 2020.

Améliorations et nouveautés apportées à Pharo 9

  • refonte complète du framework Spec UI (nouvelle logique, application, style, back-end GTK3).
  • ajout d'un nouveau playground ;
  • ajout d'un nouvel inspecteur centré sur l'objet;
  • ajout d'un nouveau débogueur centré sur l'objet ;
  • des améliorations et de nouveaux refactorings ;
  • les commentaires de classe sont maintenant écrits au format Microdown (compatible Markdown) ;
  • les classes peuvent maintenant être définies en utilisant une API "fluide" (fonctionnalité disponible en avant-première) ;
  • un nouveau framework de complétion qui s'adapte mieux aux contextes d'édition et est personnalisable ;
  • une FFI (foreign function interface) universelle rapide et non bloquante qui utilise maintenant libFFI comme back-end ;
  • ajout de la prise en charge d'Idle VM ;
  • ajout de la prise en charge de l'ARM 64bits ;
  • ajout de la prise en charge de l'Apple M1 ;
  • ajout du support de plusieurs distributions Linux, telles que : Ubuntu 18.04, 19.04, 20.04, 21.04, 21.10 ; Debian 9, 10, Testing ; Fedora 32, 32, 34 ; openSUSE 15.1, 15.2, Tumbleweed ; Manjaro ; Arch ;
  • prise en charge de SDL 2.0 comme back-end par défaut. Il supporte la gestion étendue des événements, y compris le support du trackpad ;
  • accélération générale : Pharo 9 a bénéficié d'une accélération générale due à la vitesse de Pragma, aux améliorations du compilateur et à la simplification du cadre de l'interface utilisateur.


Quelques comparaisons entre Python et Pharo

Python est largement considéré comme un langage de programmation facile pour les débutants. Cependant, beaucoup de développeurs estiment que Pharo, une des variantes modernes de Smalltalk, est beaucoup plus simple et doté de capacités bien plus intéressantes. Voici ci-dessous quelques points de comparaison :

Simplicité, concision et élégance

« Pharo est beaucoup, beaucoup plus simple que Python », a déclaré un développeur. En effet, le langage ne comporte que six mots réservés et la syntaxe complète tiendrait sur une carte postale. Vous ne pouvez certainement pas faire cela avec Python. Selon certains, il est possible d'apprendre le langage entier en 15 minutes, ce qui n'est pas le cas avec Python. Pharo serait étonnamment concis et élégant.



Règle de l'indentation

L'utilisation par Python de l'indentation comme syntaxe est très controversée. C'est la principale raison pour laquelle certains développeurs n'aiment pas Python. L'un des problèmes avec cette approche est qu'un mauvais alignement accidentel du code peut provoquer un bogue très subtil et difficile à trouver. La syntaxe de Pharo est beaucoup plus simple.

Programmation orientée objet

Pharo est purement orienté objet. Certains développeurs vont jusqu'à affirmer que « la clarté et la cohérence de Pharo à cet égard sont inégalées par n'importe quel autre langage ». « Python, en revanche, a une implémentation improvisée de la POO qui semble avoir été ajoutée. Par exemple, il n'y a pas de véritable encapsulation en Python : les variables d'instance et les méthodes sont "cachées" ou rendues "privées" en faisant précéder leur nom d'un trait de soulignement.

C'est extrêmement maladroit », ont-ils déclaré. Python exige que vous passiez explicitement "self" comme premier argument à toutes les méthodes d'instance. Pharo ne comporte pas ce type d'obligation.

Programmation fonctionnelle

Pharo aurait une implémentation plus fluide des lambdas dans ses "blocs". Cela confèrerait à Pharo une capacité de programmation fonctionnelle intéressante. En fait, la bibliothèque de classes de Pharo contient de nombreuses constructions fonctionnelles. Python peut aussi faire de la programmation fonctionnelle d'une certaine manière. Toutefois, ses lambdas seraient limités à une seule expression, au lieu de permettre plusieurs lignes de code. Python serait le seul langage de programmation au monde à avoir cette restriction.

EDI (environnement de développement intégré)

Pharo dispose d'un EDI de codage en direct intégré qui est aussi simple et facile à utiliser que le langage lui-même.En effet, le codage en direct vous permet d'inspecter et de modifier le code et les données de votre programme pendant son exécution. Cette technique puissante élimine pratiquement le cycle traditionnel d'édition-compilation-test-débogage qui a gêné les développeurs pendant plus d'un demi-siècle. Selon une étude menée par Namcook Analytics, c'est la principale raison pour laquelle Pharo (Smalltalk) est le langage de programmation polyvalent le plus productif au monde.


Le meilleur EDI pour Python est PyCharm. Bien qu'il s'agisse d'un environnement de développement intégré complet, les critiques estiment qu'il est indéniable qu'il est beaucoup, beaucoup plus grand et complexe que celui de Pharo. Il faudrait beaucoup de temps pour maîtriser ce programme. Et PyCharm ne prend pas encore en charge le codage en direct. Il est toutefois possible d'installer un plug-in permettant de coder en direct.

Productivité et facilité de développement

Python a la réputation d'être productif. Mais selon l'étude de Namcook Analytics, Pharo (Smalltalk) est deux fois plus productif que Python. Dans de nombreux cas, Pharo serait beaucoup plus productif. «Tout simplement, Pharo est beaucoup plus facile à utiliser pour la programmation. Le langage et son environnement de développement ne présentent pratiquement aucune charge cognitive pour le développeur », a déclaré un critique.

Écosystème et multithreading

Python dispose d'un écosystème de bibliothèques enviable. C'est un point faible pour Pharo. Malgré cela, Pharo est étonnamment polyvalent. Il est utilisé pour de nombreux types d'applications différentes. Par exemple, Pharo est utilisé pour le développement Web, grâce au framework Web Seaside et au micro framework Teapot. Il prend également en charge le développement front-end, grâce à PharoJS ; la science des données, grâce à PolyMath et Roassal ; la réalité virtuelle, la visualisation de données à grande échelle ; le traitement du langage naturel ; l'apprentissage automatique et le traitement des réseaux neuronaux.

Si Pharo est désavantagé par son écosystème, cela ne semble vraisemblablement pas le ralentir. Pour certains, Pharo est plus polyvalent que Python. Enfin, Pharo et Python peuvent tous deux faire du multithreading. Cependant, l'on estime que Python serait gêné par le GIL (global interpreter lock), dont se plaignent depuis longtemps la plupart des programmeurs.

Source : Pharo 9, Page GitHub de Pharo

Et vous ?

Que pensez-vous du langage de programmation Pharo ?
Que pensez-vous des améliorations et nouvelles fonctionnalités de Pharo 9 ?
Pensez-vous que le langage de programmation Pharo est plus adapté en milieu scolaire que Python ?

Voir aussi

Cours complet Pharo par l'exemple

Pharo 8.0 est disponible avec un nouveau moteur de complétion de code, le langage s'annonce épuré et orienté objet avec un environnement immersif

Pharo 1.0, un environnement simple et épuré pour se mettre à Smalltalk

Une erreur dans cette actualité ? Signalez-nous-la !