Next: , Previous: , Up: Top   [Index]


6 Script Pharo Dr.Geo

Dr.Geo est une application dynamique écrite en Pharo. Cela signifie qu’il est possible de le modifier alors qu’il est en cours de fonctionnement. Nous exploitons cette possibilité pour définir dans Dr.Geo des items de la figure qui sont en fait des scripts Pharo – des bouts de codes, Cela permet d’étendre dynamiquement, à l’infini, les possibilités de Dr.Geo. Mais qu’est-ce que Pharo ?

Pharo est un langage de programmation orienté objet, réflexif et dynamiquement typé. Il est une implémenation et extension de Smalltalk. Ce dernier fut l’un des premiers langages de programmation à disposer d’un environnement de développement intégré complètement graphique. Il a été créé en 1972. Il est inspiré par Lisp et Simula. Il a été conçu par Alan Kay, Dan Ingals, Ted Kaehler, Adele Goldberg au Palo Alto Research Center de Xerox. Le langage a été formalisé en tant que Smalltalk-80 et est depuis utilisé par un grand nombre de personnes. Smalltalk est toujours activement développé.

Smalltalk a été d’une grande influence dans le développement de nombreux langages de programmation, dont : Objective-C, Actor, Java et Ruby.

Un grand nombre des innovations de l’ingénierie logicielle des années 1990 viennent de la communauté des programmeurs Smalltalk, tels que les Design Patterns (appliquées au logiciel), l’Extreme Programming (XP) et le refactoring. Ward Cunningham, l’inventeur du concept du Wiki, est également un programmeur Smalltalk.

Wikipedia, Smalltalk, 2 janvier 2011

Cet extrait de la préface du livre Pharo By Example décrit précisément la plate forme Pharo utilisée pour Dr.Geo :

Pharo est une implémentation moderne, libre et complète de l’environnement et langage de programmation Smalltalk.

Pharo s’attache à offrir une plate forme robuste et stable pour du développement professionnel en langages et environnement dynamiques.

Pharo By Example, introduction

Dr.Geo exploite l’environnement Pharo pour proposer, d’une part, un environnement convivial d’écriture de scripts et, d’autre part, pour donner accès à l’interface des items géométriques ou numériques constitutifs d’une figure. L’interface est en fait l’ensemble des méthodes d’instance – fonctions de classe – de ces items.

Ainsi l’utilisateur peut écrire des scripts pour manipuler les items des figures ; et puisque ces scripts sont des items de figure au même titre que d’autres, ils n’ont pas besoin d’être dans un fichier séparé, ils sont enregistrés dans le fichier de la figure.

L’autre grande force des scripts est de s’appuyer sur l’environnement de développement de Pharo ; l’utilisateur bénéficie ainsi d’outils évolués pour mettre au point ces scripts : navigateur de classes, inspecteur, débogueur, etc. L’utilisateur souhaitant exploiter au mieux la puissance des scripts est donc invité à étudier le livre Pharo By Example, il y apprendra le langage Pharo et son environnement.

Les scripts ont deux facettes :

Les outils pour créer et éditer un script sont disponibles depuis les menus ...Script → Créer un script... et ...Script → Modifier un script... Ces fonctions se trouvent également dans la barre d’outils. Pour utiliser un script choisir le menu ...Script → Utiliser un script... également disponible dans la barre d’outils.

Un script est un objet de première classe10. Il est défini comme une classe Pharo et une instance de celle-ci est créée pour chacune de ses utilisations dans une figure géométrique.

Lors de la sauvegarde d’une figure comprenant une ou plusieurs instances de scripts, le code source de leur classe est également enregistré ; pour s’en convaincre ouvrir avec un éditeur de texte un fichier .fgeo d’une figure utilisant un script.

Dans son utilisation, un script peut recevoir de 0 à n paramètres d’entrée. Après le choix du script à insérer dans la figure, il suffit alors de cliquer sur les objets de type paramètres d’entrée – comme précisé lors de la création du script – puis sur le fond de la figure pour y placer le résultat du script.

Par la suite nous vous proposons de travailler sur quelques exemples de scripts pour comprendre leur fonctionnement. Les scripts, comme les macro-constructions, donnent une dimension particulière à Dr.Geo, ils permettent – chacun avec un positionnement différent11 – d’aller là où les auteurs du logiciel ne sont pas allés ou ne souhaitent pas aller.

Il est aussi important de comprendre que l’ensemble des fonctionnalités de Pharo sont disponibles depuis les scripts. C’est particulièrement vrai pour ses bibliothèques de fonctions12, nous allons bien sûr les utiliser intensément.


Footnotes

(10)

https://fr.wikipedia.org/wiki/Objet_de_première_classe

(11)

Les macro-constructions ont une approche géométrique tandis que les scripts ont une approche numérique mais aussi et surtout nous pouvons les utiliser dans un esprit de bidouillage (“hacking” en anglais).

(12)

En particulier, les fonctions mathématiques.


Next: , Previous: , Up: Top   [Index]