1 00:00:00,230 --> 00:00:02,630 Bonjour, dans cette séance, je voulais vous montrer un 2 00:00:02,830 --> 00:00:04,950 petit peu quelle est la vision qui est derrière Pharo, 3 00:00:05,150 --> 00:00:06,560 pourquoi est-ce que les gens participent et pourquoi 4 00:00:06,760 --> 00:00:07,700 est-ce que les gens font Pharo? 5 00:00:07,960 --> 00:00:10,180 Ca vous permettra potentiellement d'adhérer un petit peu 6 00:00:10,380 --> 00:00:14,130 ou au moins de comprendre où va Pharo et pourquoi les gens le font. 7 00:00:15,000 --> 00:00:18,000 Donc l'idée vraiment fondamentale, c'est de créer un 8 00:00:18,200 --> 00:00:20,950 outil, une infrastructure qui va permettre aux gens de 9 00:00:21,150 --> 00:00:23,830 réinventer ou d'inventer leur futur, ça veut dire créer 10 00:00:24,030 --> 00:00:26,240 de nouvelles façons de faire du Web, créer de nouveaux 11 00:00:26,440 --> 00:00:29,740 outils, de nouvelles formes de calcul ou ce genre de choses. 12 00:00:29,940 --> 00:00:33,220 Donc pour ça, cette notion d'"engin" est vraiment 13 00:00:33,420 --> 00:00:35,660 importante, ça veut dire l'infrastructure, le 14 00:00:35,860 --> 00:00:38,350 compilateur, les services qui vont entourer ce genre de choses. 15 00:00:39,440 --> 00:00:43,700 De manière duale, il y a l'idée de créer un écosystème 16 00:00:44,190 --> 00:00:46,290 dans lequel l'innovation, ça veut dire créer des choses 17 00:00:46,490 --> 00:00:48,220 nouvelles qui nous permettent d'avoir un avantage 18 00:00:48,420 --> 00:00:51,380 compétitif, par exemple, et des business peuvent croître. 19 00:00:52,190 --> 00:00:55,670 Donc le terme écosystème, la métaphore écosystème, elle se décline comment? 20 00:00:56,150 --> 00:00:58,000 Elle se décline autour de premièrement, il y a des 21 00:00:58,200 --> 00:00:59,780 enseignants, il y a une trentaine d'universités dans le 22 00:01:00,000 --> 00:01:04,920 monde qui enseignent Pharo, elle se décline à travers des 23 00:01:05,120 --> 00:01:06,550 groupes de recherche, donc il y a une quinzaine de 24 00:01:06,750 --> 00:01:09,250 groupes de recherche qui font souvent du génie logiciel, 25 00:01:09,450 --> 00:01:14,120 mais pas que, autour de la planète et des sociétés. 26 00:01:14,670 --> 00:01:18,200 L'idée fondamentale de Pharo, c'est de ne pas être un 27 00:01:18,400 --> 00:01:20,370 langage académique, mais d'être un langage qui est 28 00:01:20,570 --> 00:01:23,670 utilisé par des gens pour pouvoir faire de l'argent et 29 00:01:23,870 --> 00:01:28,680 vivre de leurs programmes. Donc, il y a 30 00:01:28,880 --> 00:01:30,940 des "success stories", vous pouvez aller les voir sur le 31 00:01:31,140 --> 00:01:34,110 site Web dont l'adresse est indiquée ici, je vous engage 32 00:01:34,310 --> 00:01:36,130 à le faire parce que ça permet de voir ce que les gens 33 00:01:36,330 --> 00:01:38,060 font avec, je suis souvent étonné d'ailleurs de voir ce 34 00:01:38,260 --> 00:01:40,920 que les gens font avec Pharo et aussi de se rendre compte 35 00:01:41,120 --> 00:01:42,660 que ce n'est pas juste parce qu'on dit que c'est cool que 36 00:01:42,860 --> 00:01:44,300 c'est cool, mais qu'il y a des gens qui font des vrais trucs. 37 00:01:46,120 --> 00:01:49,330 Donc ce qu'il faut bien voir, c'est que Pharo, pour l'équipe 38 00:01:49,530 --> 00:01:51,290 de développement, c'est un véhicule. 39 00:01:52,090 --> 00:01:55,780 Et donc on est tous ces gars en noir autour de la Formule 40 00:01:56,000 --> 00:02:00,300 1, et tous les jours on va l'améliorer donc Pharo, ce n'est 41 00:02:00,500 --> 00:02:05,070 pas quelque chose de fini, c'est quelque chose en perpétuelle amélioration. 42 00:02:06,840 --> 00:02:08,410 Et de ce point de vue-là, Pharo est assez jeune d'un 43 00:02:08,610 --> 00:02:10,220 point de vue d'un langage de programmation, on a commencé 44 00:02:10,420 --> 00:02:15,050 en 2008 et plus ça va, plus son devenir 45 00:02:15,250 --> 00:02:17,570 devient excitant. Donc je vous en dirai quelques mots. 46 00:02:18,370 --> 00:02:21,770 Maintenant, la plupart des sociétés font du Web avec 47 00:02:22,000 --> 00:02:24,500 Pharo parce que la pile Web est vraiment excellente. 48 00:02:25,340 --> 00:02:30,210 On va utiliser Seaside dans ce cours, 49 00:02:30,410 --> 00:02:31,890 mais vous allez voir qu'on peut faire REST, il y a 50 00:02:32,090 --> 00:02:36,660 plusieurs serveurs http qui sont utilisés, c'est une 51 00:02:36,860 --> 00:02:40,690 société d'ailleurs qui a développé et qui a donné à Pharo le serveur http. 52 00:02:41,000 --> 00:02:42,910 Vous avez Teapot qui est un micro serveur, vous allez 53 00:02:43,110 --> 00:02:45,670 avoir toute la couche avec les WebSockets et les identifications. 54 00:02:45,870 --> 00:02:48,860 La meta description de données pour éviter de faire des 55 00:02:49,060 --> 00:02:51,310 formulaires et de les générer automatiquement, des 56 00:02:51,510 --> 00:02:53,390 connexions aux bases de données, que ça soit des bases de 57 00:02:53,660 --> 00:02:57,140 données SQL ou des bases de données relationnelles, et l'état de protocole. 58 00:02:57,570 --> 00:02:59,290 De toute façon, il en fleurit tous les jours et les gens 59 00:03:00,710 --> 00:03:03,050 font des packages qui vont couvrir ces fonctionnalités-là. 60 00:03:04,920 --> 00:03:07,500 Donc Pharo est ouvert de ce point de vue-là, ça veut dire 61 00:03:07,700 --> 00:03:11,470 que vous allez pouvoir potentiellement aider ou avoir un 62 00:03:11,670 --> 00:03:14,500 impact, mais au moins lire déjà et avoir accès à Pharo. 63 00:03:15,490 --> 00:03:19,120 Et ce qui est important, ça c'est une chose que les gens 64 00:03:19,320 --> 00:03:22,340 ont du mal à concrétiser, voir ce que je veux dire par 65 00:03:22,540 --> 00:03:25,530 là, mais Pharo est un système qui va vous rendre et vous 66 00:03:25,730 --> 00:03:27,720 permettre d'être en capacité. Donc là, j'ai pris une 67 00:03:27,920 --> 00:03:31,010 citation d'un Américain qui est dans la "main list" de 68 00:03:31,210 --> 00:03:34,360 Pharo qui a changé un aspect très fondamental de Pharo, 69 00:03:34,560 --> 00:03:37,340 en fait les délais, c'est une fonctionnalité qui permet 70 00:03:37,540 --> 00:03:39,350 de faire toute la concurrence à l'intérieur du système. 71 00:03:39,790 --> 00:03:41,500 Et en fait, il avait trouvé que ce n'était pas très bien 72 00:03:41,700 --> 00:03:43,400 fait parce qu'on ne pouvait pas les tester en isolation. 73 00:03:44,000 --> 00:03:46,280 Et donc lui, il a proposé des changes en disant voilà, si 74 00:03:46,480 --> 00:03:48,890 vous prenez ce change dans Pharo, on va pouvoir tester 75 00:03:49,090 --> 00:03:50,860 ses fonctionnalités de manière individuelle. 76 00:03:51,210 --> 00:03:54,760 Et donc son changement a été un inclus dans la release de 77 00:03:54,960 --> 00:03:56,900 Faro et ce qui est vraiment très intéressant, je vous 78 00:03:57,100 --> 00:04:01,580 laisserai lire la citation, mais il dit qu'en fait, il a 79 00:04:01,780 --> 00:04:04,530 vraiment été émerveillé par le fait qu'il puisse même le 80 00:04:04,730 --> 00:04:09,640 faire et penser le faire. Et de la même manière, avec ce 81 00:04:09,840 --> 00:04:12,100 transparent "turtles all the way down", ça veut dire que 82 00:04:12,300 --> 00:04:14,890 j'ai des tortues partout, en fait ça veut dire j'ai des 83 00:04:15,090 --> 00:04:17,560 objets partout, le créateur de Seaside, c'était quelqu'un 84 00:04:17,760 --> 00:04:21,400 qui connaissait Ruby, Python, Scheme, Objectif C et il a 85 00:04:21,600 --> 00:04:23,330 développé Seaside dans l'ancêtre de Pharo et à l'époque, 86 00:04:23,530 --> 00:04:25,290 moi je l'ai rencontré et je lui ai dit, mais pourquoi tu as utilisé Pharo? 87 00:04:25,640 --> 00:04:27,500 Il m'a dit, mais parce que je pouvais le faire, parce que 88 00:04:27,700 --> 00:04:29,700 je peux manipuler la pile derrière le dos des 89 00:04:29,900 --> 00:04:31,910 programmeurs et lui proposer une abstraction que je ne 90 00:04:32,110 --> 00:04:33,600 pourrais pas proposer dans un autre langage. 91 00:04:34,140 --> 00:04:37,560 Et cette mise en capacité, elle est vraiment très intéressante. 92 00:04:39,950 --> 00:04:42,770 Donc, je voulais vous parler de la vision à moyen terme 93 00:04:43,000 --> 00:04:46,520 de Pharo donc d'ici 5 ans par exemple, qu'est-ce que sera Pharo? 94 00:04:46,720 --> 00:04:49,290 Pharo, ça sera un système dont le noyau sera bootstrapé, 95 00:04:49,520 --> 00:04:51,310 ça veut dire qu'on va pouvoir le reconstruire de 96 00:04:51,510 --> 00:04:55,620 lui-même, ce qui n'est pas possible à l'heure actuelle et 97 00:04:55,820 --> 00:04:58,000 on va avoir une bien meilleure intégration avec les 98 00:04:58,200 --> 00:05:00,120 différents OS et le C, on peut penser qu'on peut 99 00:05:00,320 --> 00:05:01,830 embarquer une application Pharo dans n'importe quelle 100 00:05:02,030 --> 00:05:04,290 application C dans le futur, ça sera un système plus 101 00:05:04,490 --> 00:05:07,040 modulaire avec des distributions qui seront validées. 102 00:05:07,240 --> 00:05:09,280 Distribution validée, ça veut dire que si quelqu'un écrit 103 00:05:09,480 --> 00:05:13,400 un parser XML par exemple, vous avez envie de savoir, 104 00:05:13,600 --> 00:05:15,800 est-ce qu'il a passé tous les tests ? 105 00:05:16,000 --> 00:05:18,550 Est-ce qu'il fonctionne sur telle et telle version de Pharo? 106 00:05:18,750 --> 00:05:21,120 Est-ce que les règles de non-régression ont été satisfaites? 107 00:05:21,320 --> 00:05:23,630 Donc, vraiment utiliser du génie logiciel pour valider la 108 00:05:23,830 --> 00:05:26,870 production faite par des gens dans le monde entier et que 109 00:05:27,070 --> 00:05:30,380 les gens qui utilisent Pharo puissent avoir un certain niveau de qualité. 110 00:05:32,660 --> 00:05:35,450 Il y a tout un effort à l'heure actuelle pour avoir des 111 00:05:35,650 --> 00:05:37,390 outils qui sont encore plus puissants que ce qu'ils sont. 112 00:05:38,590 --> 00:05:41,400 Et l'idée, c'est vraiment d'avoir un système qui puisse s'adapter 113 00:05:41,600 --> 00:05:44,360 aussi bien en machine à café que du déploiement dans le 114 00:05:44,560 --> 00:05:46,940 cloud et donc l'équipe de développement de Pharo on est 115 00:05:47,140 --> 00:05:49,650 en train de faire ce genre de choses, donc dans quelques 116 00:05:49,850 --> 00:05:50,690 années, ça sera pour tout le monde. 117 00:05:52,400 --> 00:05:56,310 Donc Pharo, avec cet objectif d'avoir un impact sur la 118 00:05:56,510 --> 00:05:59,320 vraie vie et d'impliquer des sociétés, a créé un 119 00:05:59,520 --> 00:06:03,210 consortium, un consortium industriel, et l'idée du 120 00:06:03,410 --> 00:06:07,280 consortium, c'est de promouvoir Pharo, de permettre son 121 00:06:07,950 --> 00:06:11,110 amélioration constante, d'améliorer sa visibilité et d'offrir 122 00:06:11,310 --> 00:06:13,000 du support aux sociétés qui pourront utiliser Pharo. 123 00:06:13,720 --> 00:06:16,790 Donc, voici quelques-uns des membres du consortium Pharo. 124 00:06:17,300 --> 00:06:19,590 Il y a des petites sociétés, mais aussi des très grosses 125 00:06:19,790 --> 00:06:24,580 comme, par exemple, Lam Research ou Thales et pas mal d'universités 126 00:06:24,780 --> 00:06:25,540 et de groupes de recherche.