Outils pour utilisateurs

Outils du site


cours:informatique:dev:programmation_objet_pharo:110_vision_pharo

La vision de Pharo

Tutoriel Programmation objet immersive en Pharo proposé par l'inria disponible à l'adresse https://mooc.pharo.org et sur la plateforme FUN-MOOC.

Transcription de la vidéo

Présentation par Stéphane Ducasse, directeur de recherche, à l'Inria.

Bonjour, dans cette séance, je voulais vous montrer un petit peu quelle est la vision qui est derrière Pharo, pourquoi est-ce que les gens participent et pourquoi est-ce que les gens font Pharo? Ça vous permettra potentiellement d'adhérer un petit peu ou au moins de comprendre où va Pharo et pourquoi les gens le font.

L'idée vraiment fondamentale, c'est de créer un outil, une infrastructure qui va permettre aux gens de réinventer ou d'inventer leur futur, ça veut dire créer de nouvelles façons de faire du Web, créer de nouveaux outils, de nouvelles formes de calcul ou ce genre de choses.

Pour ça, cette notion de moteur (engine) est vraiment importante, ça veut dire l'infrastructure, le compilateur, les services qui vont entourer ce genre de choses. De manière duale, il y a l'idée de créer un écosystème dans lequel l'innovation, ça veut dire créer des choses nouvelles qui nous permettent d'avoir un avantage compétitif, par exemple, et des business peuvent croître.

Le terme écosystème ou la métaphore écosystème, elle se décline comment?

  • Premièrement, il y a des enseignants, il y a une trentaine d'universités dans le monde qui enseignent Pharo;
  • Elle se décline à travers des groupes de recherche, donc il y a une quinzaine de groupes de recherche qui font souvent du génie logiciel, mais pas que, autour de la planète et des sociétés.

L'idée fondamentale de Pharo, c'est de ne pas être un langage académique, mais d'être un langage qui est utilisé par des gens pour pouvoir faire de l'argent et vivre de leurs programmes. Il y a des “success stories”, vous pouvez aller les voir sur le site Web https://pharo.org/success/

Je vous engage à le faire parce que ça permet de voir ce que les gens font avec, je suis souvent étonné d'ailleurs de voir ce que les gens font avec Pharo et aussi de se rendre compte que ce n'est pas juste parce qu'on dit que c'est cool que c'est cool, mais qu'il y a des gens qui font des vrais trucs.

Donc ce qu'il faut bien voir, c'est que Pharo, pour l'équipe de développement, c'est un véhicule, un moteur. Et donc on est tous ces gars en noir autour de la Formule 1, et tous les jours on va l'améliorer donc Pharo, ce n'est pas quelque chose de fini, c'est quelque chose en perpétuelle amélioration. Et de ce point de vue-là, Pharo est assez jeune d'un point de vue d'un langage de programmation, on a commencé en 2008 et plus ça va, plus son devenir devient excitant.

Maintenant, la plupart des sociétés font du Web avec Pharo parce que la pile Web est vraiment excellente. La pile Web comprend notamment:

  • Seaside ( qui sera utilisé dans ce cours) mais vous allez voir qu'on peut faire du REST, il y a plusieurs serveurs HTTP qui sont utilisés, c'est une société d'ailleurs qui a développé et qui a donné à Pharo le serveur HTTP;
  • Teapot qui est un micro serveur;
  • Les WebSockets et l'authentifcation avec Oauth;
  • La meta description de données pour éviter de faire des formulaires et de les générer automatiquement avec Magritte;
  • Les connexions aux bases de données, que ça soit des bases de données SQL ou des bases de données relationnelles;
  • Une foule de protocoles, il en fleurit tous les jours et les gens font des packages qui vont couvrir ces fonctionnalités là.

Pharo est ouvert de ce point de vue-là, ça veut dire que vous allez pouvoir potentiellement aider ou avoir un impact, mais au moins lire déjà et avoir accès à Pharo. Et ce qui est important, ça c'est une chose que les gens ont du mal à percevoir, mais Pharo est un système qui va vous permettre d'être en capacité (donner l'opportunité d'agir).

Ici j'ai pris une citation d'un Américain qui est dans la “mailling list” de Pharo qui a changé un aspect très fondamental de Pharo, en fait les délais (Delay), c'est une fonctionnalité qui permet de faire toute la concurrence à l'intérieur du système. Et en fait, il avait trouvé que ce n'était pas très bien fait parce qu'on ne pouvait pas les tester en isolation. Il a proposé des modifications en disant voilà, si vous prenez ce change dans Pharo, on va pouvoir tester ses fonctionnalités de manière individuelle. Et donc son changement a été un inclus dans la release de Pharo et ce qui est vraiment très intéressant, je vous laisserai lire la citation, mais il dit qu'en fait, il a vraiment été émerveillé par le fait qu'il puisse même le faire et penser le faire.

Et de la même manière, avec ce transparent “turtles all the way down”, ça veut dire que j'ai des tortues partout, en fait ça veut dire j'ai des objets partout, le créateur de Seaside, c'était quelqu'un qui connaissait Ruby, Python, Scheme, Objectif C et il a développé Seaside dans l'ancêtre de Pharo et à l'époque, moi je l'ai rencontré et je lui ai dit, mais pourquoi tu as utilisé Pharo? Il m'a dit, mais parce que je pouvais le faire, parce que je peux manipuler la pile derrière le dos des programmeurs et lui proposer une abstraction que je ne pourrais pas proposer dans un autre langage. Cette mise en capacité, elle est vraiment très intéressante.

Vision à moyen terme

Donc, je voulais vous parler de la vision à moyen terme de Pharo donc d'ici 5 ans environ, qu'est-ce que sera Pharo? Pharo, ça sera un système dont le noyau sera bootstrapé, ça veut dire qu'on va pouvoir le reconstruire de lui-même, ce qui n'est pas possible à l'heure actuelle et on va avoir une bien meilleure intégration avec les différents OS et le C, on peut penser qu'on peut embarquer une application Pharo dans n'importe quelle application C dans le futur, ça sera un système plus modulaire avec des distributions qui seront validées.

Distribution validée, ça veut dire que si quelqu'un écrit un parser XML par exemple, vous avez envie de savoir:

  • Est-ce qu'il a passé tous les tests ?
  • Est-ce qu'il fonctionne sur telle et telle version de Pharo?
  • Est-ce que les règles de non-régression ont été satisfaites?

C'est à dire vraiment utiliser du génie logiciel pour valider la production faite par des gens dans le monde entier et que les gens qui utilisent Pharo puissent avoir un certain niveau de qualité.

Il y a tout un effort à l'heure actuelle pour avoir des outils qui sont encore plus puissants que ce qu'ils sont. Et l'idée, c'est vraiment d'avoir un système qui puisse s'adapter aussi bien en machine à café que du déploiement dans le cloud (système versatile). L'équipe de développement de Pharo on est en train de faire ce genre de choses et dans quelques années, ça sera accessible à tout le monde.

Pharo, avec cet objectif d'avoir un impact sur la vraie vie et d'impliquer des sociétés, a créé un consortium, un consortium industriel, et l'idée du consortium, c'est de promouvoir Pharo, de permettre son amélioration constante, d'améliorer sa visibilité et d'offrir du support aux sociétés qui pourront utiliser Pharo. Donc, voici quelques-uns des membres du consortium Pharo. Il y a des petites sociétés, mais aussi des très grosses comme, par exemple, Lam Research ou Thales et pas mal d'universités et de groupes de recherche.

Retour au sommaire

cours/informatique/dev/programmation_objet_pharo/110_vision_pharo.txt · Dernière modification : 2022/06/29 18:34 de yoann