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

Le , par Gordon Fowler, Expert éminent sénior
Comme vous le savez, Smalltalk est un langage interprété. Pour s'y mettre, il existe plusieurs environnements, comme Visualworks, ou un des plus connus : Squeak.

Mais le moins que l'on puisse dire, c'est que Squeak ne fait l'unanimité.

En dépit de la qualité indéniable de l'environnement, ses petits bugs, son UI et d'autres défauts ont eu raison de la motivation de nombreux développeurs qui ont voulu s'essayer au Samltalk avec lui.

Des anciens membres impliqués dans le projet Squeak (les responsables de Squeak 3.9) ont donc décidé de lancer un fork. « Nous avons senti le besoin de reconsidérer les choix faits [dans Squeak] . Nous voulons créer un meilleur Smalltalk (sic) »

Le fruit de leur travail s'appelle Pharo, un « environnement propre, gratuit et open-source ».

Et effectivement, force est de constater que par rapport à son "modèle", Pharo est simple, presque épuré, et plutôt esthétique (bien que les goûts et les couleurs...).



Mais le projet n'est pas qu'un simple toilettage de l'UI.

Pharo, par le support qu'il entend apporter à ses réalisations, se veut également (et surtout) « une plate-forme pour développer et déployer des missions critiques en Smalltalk ».

L'équipe précise cependant que Pharo 1.0 n'est pas encore exempt d'erreurs. « nous ne visons pas la réalisation parfaite du premier coup », avoue l'équipe de développement.

L'application n'en vaut pas moins le détour.

Pharo est sous licence MIT. La version 1.0, sortie la semaine dernière, est la première officielle.

Elle est disponible en téléchargement ainsi que la liste complète de ses fonctionnalités sur cette page.



Lire aussi :

Introduction à Smalltalk par hiko-seijuro

Les rubriques (actu, forums, tutos) de Développez :

Langages de programmation

Et vous ?

Smalltalk, ça vous tente ?
Pourquoi ?

Un outil comme Pharo peut-il vous convaincre d'essayer un peu plus le langage ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de maske maske - Membre éprouvé http://www.developpez.com
le 22/04/2010 à 20:53
Il existe par ailleurs le livre pharobyexample, un guide, une documentation et un immense tutoriel pour prendre en main Smalltalk avec Pharo (en anglais). Il n'existe pas de meilleur tutoriel pour Pharo Smalltalk (il existe un équivalent SqueakByExample pour Squeak).

Pour rappel, Smalltalk est un langage pur objet crée en 1972 dans sa première version par Alan Kay (Turing Award dans les années 2000 pour ces travaux sur Smalltalk).

Smalltalk tourne sur une machine virtuelle et son code est précompilé en bytecode interpreté par cette dernière. De nos jours, un environnement Smalltalk s'approche par l'idée d'un système d'exploitation, propose des vues sur toutes ses classes (qui sont des objets puisque tout est objet) et stocke le tout sous la forme d'une image. C'est cette image, lue par la machine virtuelle, qui donne vie au Smalltalk.

Pour apprendre Smalltalk, il suffit de comprendre les principes de la conception et du développement objets. Sa syntaxe, simple, tient sur une carte postale et sa grammaire tient sur quelques pages.

Quelqu'un a récemment fait une remarque à un ami : " J'aime pas le Smalltalk parce qu'il faut faire des phrases, je préfère le C".

Smalltalk est un langage de très haut niveau, et l'utiliser revient en effet presque à parler anglais (dans une certaine mesure).

Je conseille vivement à ceux qui désirent apprendre un nouveau langage d'essayer Smalltalk, pourquoi pas avec Pharo. Contrairement à certaines fausses idées qu'on peut trouver ici et là, avec Smalltalk, on peut TOUT faire, les mêmes librairies que l'on trouve dans les autres langages sont disponibles, et on peut arriver aux mêmes performances qu'avec des langages comme Java.

Surtout, à tous ceux qui essaient, ne pas hésiter à venir poser des questions sur le forum Smalltalk de developpez.com.

D'un point de vue personnel, et de l'utilisation que je fais de Pharo au quotidien (ou presque), je trouve l'UI parfois lente, le fait d'avoir des fenêtres bloquées dans la fenêtre principale du programme est parfois un peu lassant (à la différence de Visual Works).

Malgré tout c'est un Smalltalk très agréable à utiliser, puissant et qui dispose d'un bon nombre de librairies (notamment sous forme de packages disponibles sur les serveurs officiels). Existe en version Linux, Mac et Windows.
Avatar de aurelman aurelman - Membre actif http://www.developpez.com
le 23/04/2010 à 10:11
Un collègue m'avait déja parlé de Pharo il y a un petit moment, j'avais pas eu le temps de tester à l'époque, mais ça semblait déja prometteur.

Smalltalk est un language qui gagnerait à être plus connu.
La facilité de son apprentissage est impressionnante !

On peut regretter parfois que certaines choses ne peuvent être écrite de manière plus concises, il n'y a pas de sucre syntaxique...

Mais c'est ce qui fait sa force, sa syntaxe est on ne peut plus facile a appréhender... Probablement une des plus faciles qui existe, les mots-clé doivent se compter sur les doigts d'une main (et je pense qu'une personne à laquelle il manquerait un ou deux doigts s'en sortirait aussi ).

Je n'avais aussi jamais vu un langage aussi facile à débugger !
Modifier le code, les valeurs des variables tout ça pendant son exécution... tout simplement énorme.

Je vais essayer de regarder plus en profondeur un coup d'œil sur ce Smalltalk
.

Smalltalk :à mettre entre toute les mains (même avec des doigts en moins ).
Avatar de romain537 romain537 - Membre à l'essai http://www.developpez.com
le 23/04/2010 à 11:33
l'environnement de développement est lui aussi écrit en smalltalk, on peut l'adapter à ces besoins (agencement des fenêtres, coloration syntaxique, ...) et tout ceci en live !

un truc marrant pour ce rendre compte des possibilités du langage (et qu'on montre lors des premiers cours) est d'échanger les méthodes de la classe 'True' avec les méthodes de la classe 'False' ! Plantage assuré

je trouve le langage très puissant pour créer des interface client lourd, enfin l'utilisation des BlockClosure permet d'écrire du code lisible, succinct, puissant et réutilisable !

je suis passé au java mais je regrette la souplesse du smalltalk (comme le typage dynamique, le mode debug, les IHM, les blocks, ...)
Avatar de gmotw gmotw - Membre confirmé http://www.developpez.com
le 23/04/2010 à 11:39
Moi c'est surtout la gestion des collections qui me manque sur le java.
(par contre les 30000 popup de bug, ça ne me manque pas du tout.. )
Avatar de romain537 romain537 - Membre à l'essai http://www.developpez.com
le 23/04/2010 à 11:43
c'est vrai qu'on a vite fait avoir une palanquée de fenêtre ouverte et qu'on s'y perde rapidement ...

mais on peut changer la couleur ou la restitution des titres des fenêtres en fonction de son type (c'est ce que je me rappelle avoir fait quand je pratiquais encore)

edit: ah oui ! je me souviens aussi des fenêtres 'Message Not Understood' qui souvrent en boucle !
Avatar de SpiceGuid SpiceGuid - Rédacteur http://www.developpez.com
le 23/04/2010 à 13:07
Il y a en gros 3 types de langages :
  1. Code : Sélectionner tout
    1
    2
    Invalid access, address $C0DEBEEF 
    GURU Meditation number  #00000203
  2. Code : Sélectionner tout
    Message Not Understood
  3. Code : Sélectionner tout
    the expression ... has type 'a -> 'b -> ('a,'b) list trie but is here used with type 'a 'b. 'a -> 'b -> ('a,'b) list trie
Avatar de gmotw gmotw - Membre confirmé http://www.developpez.com
le 23/04/2010 à 13:39
On dirait du Caml le dernier (mon langage préféré *nostalgie*)

edit: Je viens de voir la signature
Avatar de SpiceGuid SpiceGuid - Rédacteur http://www.developpez.com
le 23/04/2010 à 16:12
[hors sujet]
Citation Envoyé par gmotw
On dirait du Caml le dernier (mon langage préféré *nostalgie*)

J'ai une conjecture au sujet des erreurs en OCaml:
Citation Envoyé par SpiceGuid
Quand l'abstraction d'un code OCaml tend vers l'infini, la compréhensibilité des messages d'erreurs tend vers zéro.

[/hors sujet]
Avatar de maske maske - Membre éprouvé http://www.developpez.com
le 23/04/2010 à 18:30
un truc marrant pour ce rendre compte des possibilités du langage (et qu'on montre lors des premiers cours) est d'échanger les méthodes de la classe 'True' avec les méthodes de la classe 'False' ! Plantage assuré

Je ne sais pas si c'est toujours d'actualité, mais dans Pharo on peut (ou pouvait) faire "Object class = nil" ou quelque chose du genre. Je vous laisse deviner le résultat

Cela dit, il faut vraiment le faire exprès...

En ce qui concerne les popups, on s'habitue vite et dès qu'on maitrise l'environnement, en général, ça devient très rare. Je trouve par exemple que Visual Works ou Pharo sont bien plus efficaces et puissants à utiliser qu'un Eclipse.
Avatar de mathk mathk - Membre actif http://www.developpez.com
le 26/04/2010 à 15:36
Citation Envoyé par maske  Voir le message
Je ne sais pas si c'est toujours d'actualité, mais dans Pharo on peut (ou pouvait) faire "Object class = nil" ou quelque chose du genre. Je vous laisse deviner le résultat

Tu veux dire
Code : Sélectionner tout
Object := nil
une facon de la faire c'est

Code : Sélectionner tout
Smalltalk at: #Object put: nil
Avatar de deathiop deathiop - Candidat au Club http://www.developpez.com
le 19/06/2010 à 22:24
Normalement ceci a été fixé.

Ceci étant, Pharo est actuellement en bêta dans sa version 1.1 rc2, mais ça vaut vraiment le coup de migrer vers cette version.
Take a look! http://www.pharo-project.org/pharo-download

Deathiop.
Offres d'emploi IT
Ingénieur technologies cognitive H/F
ATC - Rennes - Bretagne - Rennes (35000)
Evaluation d'un système de détection de l'hypovigilance
Renault - Ile de France - Guyancourt (78280)
Développeur Symfony h/f
altima - Nord Pas-de-Calais - Roubaix (59100)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil