Utilisateurs de Perl à Paris

SVG en terrasse


La voix de stef

Réunion en terrasse

Lorsque j'arrive à la réunion, il n'y a que Philippe Blayo en sous-sol ayant déjà entamé son repas. Me doutant qu'on sera peu nombreux, je lui propose d'aller en terrasse pour profiter de l'air frais de la rue plutôt que subir celui de la clim. Robin carburera à la bière, Phillipe est aux spaghetti et à l'eau. Et je fais avec ma triplette de République habituelle : kriek, carbonara, dame blanche. On a évité la techno de l'intérieur mais des musiciens des rues vont rendre quelquefois la conversation laborieuse.

On Numbers and Games

M'étant remis récemment au go, certaines des pages du wiki sensei m'avaient incité à lire un classique de l'autre Conway. J'exhibe donc fièrement mon exemplaire récemment reçu de On Numbers and Games connu des afficionados sous le non d'ONAG. Conway y présente les nombres surréels et une classe de nombres encore plus large (baptisées pseudo-réels dans le wikipedia) qu'il a créés pour modéliser les fins de partie de go. C'est un système plus élégant que les coupures de Dedekind notamment parce que la construction des nombres surréels part des entiers et non des rationnels mais aussi parce que la classe des nombres surréels est plus large que celle des réels tout en ayant des propriétés algébriques fortes. Les pseudo-réels permettent de modéliser des tas de jeux, genre variantes du jeu de Nim ou du hackenbush. Le go a indirectement motivé le livre, mais Conway n'y parle du go en aucune façon. Pour le go dans ce contexte mathématique, il faut lire Mathematical Go Endgames coécrit par un des coauteurs, Elwin Berlekamp, ce qui est devenu un série de livres coécrits par Conway et Berlekamp.

Les lubies d'Amazon.fr

La tentative avortée pour commander "On Numbers and Games" sur Amazon.fr m'a appris que les différents Amazon nationaux ne partagent guère leurs données puisque la date de publication sur le site Français était 2020 bien que correcte sur les autres Amazon! Ledit site présentait le bouquin via le système de vente par des tiers mais avec le paiement géré par Amazon. Il ne le vendait pas lui-même bien que le bouquin soit maintenant marqué comme disponible dans les 1 ou 2 jours ouvrés mais néanmoins toujours non commandable directement à Amazon.fr. L'image de la couverture est disponible sur les sites Amazon anglo-saxons. Je renonce à comprendre.

Sus à l'orthogonalité, Perl est diagonal et fractal

Nous parlons de Perl et du principe de diagonalité de Larry Wall. Un langage ne se ramène pas à un ensemble de fonctionalités orthogonales. Larry aurait probablement été moins pédant et dit qu'il s'agit simplement de couper pour aller au plus court. Un exemple de Larry fourni dans sa page Natural Language Principles in Perl et dans un article est l'assimilation de l'écriture d'un programme à un voyage. En terme de distance, on se promène dans un monde fractal et donc non euclidien. Par exemple, on descend l'escalier, on va à un arrêt de bus qui après correspondance nous amène à l'aréoport où des tapis roulants nous amènent à l'avion et ainsi de suite. Phillippe semble dubitatif. Je poursuis donc l'analogie et semble alors le convaincre. Avec Perl ou tout autre langage de script décent, prendre l'escalier, c'est écrire print "Hello world" alors que Java oblige à tout faire dans une voiture, y compris monter l'escalier c'est à dire toujours déclarer classe et fonction. Les bons langages de script fournissent le bon moyen de locomotion pour chaque partie du trajet. D'où leur probable succès. Pour chaque usage ils peuvent être loin de l'optimum local, mais pour l'ensemble du trajet ils fournissent des optima globaux. Gluer des parties de programmes écrits en différents langages est encore plus difficile que gérer des correspondances de transport. Mais il faut quelqu'un comme Larry pour arriver à mettre de manière cohérente dans un seul langage de quoi faire des voyages fractaux. Nous comparons ça à l'approche délibéremment orthogonale propre aux comités avec des tas de sous-groupes de travail comme ceux du w3c. A propos d'orthogonalité, Philippe parle de la programmation par aspect.

Noam Chomsky et Michael Moore

Finalement, darobin nous rejoint. Il nous parle de la difficulté de trouver un livre de Noam Chomsky. Je suis étonné car je crois que les bouquins de politique Chomsky se vendent presque aussi bien en France que ceux de Michael Moore. En tous cas, beaucoup sont disponibles en Français dans diverses collections de poche. Certes, même s'ils sont tous les deux très critiques du gouvernement en place aux US, il n'ont pas grand chose d'autres en commun. Quand au bouquin de Chomsky mentionné par Robin, c'était un essai peu connu sur la cartésianisme.

SVG: le dernier avatar du graphique vectoriel

Robin arrivé, on parle de SVG. Je dit que SVG essaie de refaire NeWS en plus structuré. NeWS était dérivé de PostScript, mais étendu pour supporter le fenêtrage et non simplement le rendu dans une fenêtre comme Display Postscript. Robin dit que de nombreuses personnes dans la commission de normalisation de SVG ont la nostagie de NeWS. On parle alors de PDF, successeur de PostScript. Si je comprend bien Robin, la société Adobe ne pouvait pas forcer une mouvelle version de PostScript qui rendait obsolètes les imprimantes existantes, donc elle a appelé le nouveau produit autrement. Robin raconte que le moteur de rendu de OSX n'est pas X mais Aqua dont le modèle graphique est très proche de SVG. Apple aurait voulu être conforme à la norme, mais le produit ne pouvait attendre que le long processus de normalisation se termine.

Implémentations SVG Open Source : problème pour l'animation

Robin nous apprend que la plupart des implémentations libres de SVG ne supportent pas SMIL , la convention qui permet d'animer des images. Or il est difficile, voire impossible de rajouter après coup cette fonctionalité et garder des performances raisonables. Il faut en effet des structures de données et algorithmes appropriés pour ne réafficher que ce qui change. Il faut donc penser ce problème dès le départ. Il semble que les algorithmes utilisés sont adaptés de ceux "ray-tracing" pour les scènes dynamiques. En effet le SVG est du 2D et demi alors que le lancer de rayon est utilisé pour le rendu de en 3D.

Il est plus facile de parler technique en anglais

Robin a dit "ray-tracing" et non lancer de rayon, et "frame by frame". Cela illustre sa remarque qu'il est plus naturel de parler technique en anglais qu'en français notamment parce que nous lisons généralement la littérature en anglais. De plus, quand on fait une présentation en anglais, il est plus facile de faire des jeux de mots. On parle ensuite de niveaux de langue et de la notion de contexte pour la désambiguation. Je remarque que la grammaire de l'anglais est généralement plus ambigue que celle du francais car la concaténation de noms peut souvent s'analyser de plusieurs manières. Je n'arrive pas à trouver un exemple. Mais Slashdot est prompt à m'en fournir un et écrit comme titre de rubrique Pool Playing Robot au lieu du probablement plus correct "Pool-Playing Robot". Robin parlait justement d'un exemple similaire. l'expression "fruit flies like a banana" est ambigue. Mais si on dit "time flies like an arrow; fruit flies like a banana", on incite l'auditeur à choisir le sens le plus zarbi où on compare le vol des mouches de fruits à celui des bananes. Je note en rédigeant que vol en Français est ambigu, mais c'est une ambiguité lexicale et non grammaticale.

Mauvaise ponctuation, ou l'histoire du panda tueur

On en vient à parler de l'influence des média sur la grammaire. Je fait remarquer que McLuhan dans Gutemberg galaxy affirme qu'avant l'imprimerie, on ne pouvait pas faire de fautes de grammaire car il n'y avait rien d'établi pour les langues vivantes. Philippe er Robin rétorquent qu'avant l'imprimerie il existait néammoins des conventions très strictes pour la ponctuations et les abbréviations. Robin nous parle d'un livre récent et de la ponctuation qui peut transformer un panda repu en un tueur : Eats, Shoots & Leaves: The Zero Tolerance Approach to Punctuation. Ce livre est d'ailleurs l'objet de la verbeuse rubrique de Jef Raskin du numéro de ACMQueue sur les machines virtuelles sous-titré What does punctuation have to do with software development?.

Tagmemics

Robin parle de l'importance de la notion de contexte et de la difficulté de traiter les problèmes avec contexte informatiquement et nous rappelle la présentation On Topics and Topicalizers de Allison Randal à YAPC::EU 2002 Il mentionne le mot de tagmemics. Rappellons que cette école linguistique a fortement inspiré Larry Wall pour Perl et encore plus pour Perl6. Il y aura plus de contextes en Perl6 qu'en Perl5 ce qui en fera un langage plus expressif. Mais le contexte est facilement extractible de manière syntaxique notamment avec les fameux sigils. Je remarque la pauvreté du matériel sur la tagmemic sur le net.

Grammaires descriptives et prescriptives

Philippe pose une question sur la spécificité de la tagmemic. J'explique qu'historiquement la linguistique s'est intéressé plus à la syntaxe et à la sémantique qu'à la pragmatique. Les premiers linguistes étaient surtout des grammairiens comme Panini et Vaugelas. Il définissaient la norme d'un langage pur qui était l'apanage d'une classe dominante ou tout au moins, c'est la partie que les institutions originellement au service de cette classe s'attachent à transmettre. Les liens que je donne semble me contredire, peut-être justement parce que les gens écrivant sur le web ne sont pas adeptes des systèmes normatifs. Le travail de Panini sur le sanskrit pour les brahmans est aussi très avancé au niveux phonologique car la prononciation exacte des textes sacrés est considérée comme essentielle dans l'exécution des rituels.

Nabokov plus facile à lire qu'Asimov

Toujours à propos de niveaux de langues, je parle de mon expérience quand je me suis mis à apprendre sérieusement l'anglais. J'ai lu coup sur coup un livre d'Asimov dont l'anglais est très idiomatique et celui de Nabokov très littéraire. Par contraste, j'ai découvert que la caractérisation psychologique des personnage d'Asimov était inexistante. Mais ce qui nous interesse ici, c'est pourquoi Asimov a été beaucoup plus difficile à lire pour moi que Nabokov, ce qui sidère la plupart des anglophones. Pour expliquer cette différence de d'appréciation, Robin note que le vocabulaire anglais est beaucoup plus riche que celui du Francais car, outre le mot anglais, il y a souvent un équivalent littéraire dérivé du latin, quelquefois via le français. Evidemment cet équivalent littéraire n'est pas naturel pour l'anglophone natif alors qu'il ne ne nécessite généralement pas d'apprentissage particuler pour le francophone. Voilà donc pourquoi Asimov est plus difficile à lire que Nabokov pour un français qui débute en anglais.

Australians take over the world

A l'occasion de ces propos, Robin nous apprend qu'il a passé une partie de son enfance en Australie, puis préparé son bac dans un lycée international en France. Je lui demande si l'accent de l'australien Damian Conway est plus prononcé que la moyenne des accents australiens. Robin répond qu'il est très difficile de comprendre un australien avec un fort accent. Il note aussi que Damian joue avec son accent lors de ses présentations. Il est en effet moins prononcé lorsqu'il parle naturellement.

Javascript rulez, DOM sux

Revenant sur des sujets connexes à SVG, je mentionne que j'essaie de me mettre à jour sur les normes essentielles de w3c et explore aussi mozilla. Je trouve Rapid Application Development with Mozilla de Nigel MCFarlane (encore un australien) assez confus. Je ne sais pas si c'est le sujet ou l'auteur qui veut ça. Outre les normes w3c, mozilla utilise des extensions comme XUL. Prononcez "zoule". J'exprime mon profond dégout pour DOM. Par contre une fois qu'on maîtrise la notion de prototype, javascript est un langage acceptable. Il est dommage qu'en googlant, on tombe rarement sur les aspects réellement intéressants et puissants du langage mais sur plutot des trucs à couper coller pour des graphistes et non des vrais programmeurs.

La différence entre OWL et Relax-NG

Je mentionne que je ne vois guère la différence d'objectifs entre les normes Relax-NG (prononcez Relaxing) et OWL. Robin m'explique que Relax-NG est comme un DTD qui spécfie le type, voire l'organisation des éléments dans un document alors que OWL est plus ambitieux et s'occupe de sémantique. Je me souviens que Robin m'avait déjà répondu à ce sujet à la précédente réunion. Je comprends vite mais il faut m'expliquer longtemps. On émet des doutes sur l'applicabilité de ces concepts de schémas formels dans le monde réel.

De l'IA à l'ontologie

Robin lache le "gros mot" ontologie et on s'accorde pour dire que ce qu'on appelait "Intelligence Artificielle" avant-hier et "Système expert" hier est maintenant un programme traitant d'une ontologie donnée. Le vocabulaire change plus vite que les concepts n'évoluent. On revient à la notion de contexte qui change toujours tout. Ainsi un système expert pour découvrir du pétrole dans le golfe du Mexique sera inopérant en Mer du Nord. Il sera incapable de distinguer les règles générales de celle qui ne s'appliquent que dans un contexte donné.

Normaliser n'est pas naturel

Robin remarque que comme pour les bases de données relationnelles, les organisations de données utiles ou efficientes ne sont pas sous la forme dite normale.

Web et Internet, kif kif

On s'interroge sur ce qu'apporte le web et l'interoperabilité grâce aux normes. Informaticiens d'avant le web, nous remarquons que nous tordions le nez quand les gens confondaient le Web et Internet, la partie et le tout, l'application et le protocole de bas niveau. Mais maintenant que tout devient accessible voire éditable à partir des butineurs et que le XML risque de devenir omnipresent, la distinction deviendra de plus en plus floue.

Le roi est nu car il est un singe nu

Des ontologies nous sommes passé aux habitudes humaines vues sous un angle purement éthologique ou zoologique. Il s'agit du classque et controversé The Naked Ape de Desmond Morris. Mais Robin nous apprend que Morris a ensuite écrit The Human Zoo. Toujours partant de son point de vue de zoologue, il s'est aperçu que les animaux en captivité, et donc avec un habitat très réduit, avaient un comportement différent des animaux en liberté. Or l'homme moderne vit dans des zones urbaines surconcentrées, d'où le parallèle. Un ami de Robin prétend qu'à force de vouloir exploiter le filon, Desmond Morris a écrit un livre sénile et misogyne. Cherchant sur Google il semble que Robin parle de The Human Sexes: A Natural History of Man and Woman.

Perl sux, mais CPAN rulez

Je remarque que si j'étais un manager en charge du choix d'un langage , je disqualifierais Perl sans regarder plus à cause du mécanisme primitif de passage de paramètres. Mais ayant découvert Perl dès ses premières versions, j'en vois tous les avantages et tolère (difficilement) de tels défauts. Néanmoins, il nous semble que Python et Ruby soit plus propres syntaxiquement. Mais l'élément disqualifiant pour ces langages est l'absence de véritable CPAN. Robin dit en effet que pour pouvoir installer une application Python complète, on doit souvent chercher des modules à droite et à gauche et les installer soi-même. Intolérable.

E4X est une alternative au DOM

Revanant à DOM, Robin mentionne qu'on pourra en faire l'économie grâce à une nouvelle norme qui étend javascript pour un accès plus intuitif aux documents XML. Le nom de la norme est E4X. C'est un TLA pour "EcmaScript for XML". Une petite recherche sur google m'apprend qu'il existe déjà une implémentation expérimentale pour Mozilla. On parle brièvement des projets de Mozilla2 et de leur intérêt pour s'interfacer avec différentes machines virtuelles.
HTML 5 - CSS v3 Mongueurs de Paris, le 13 janvier 2013 Copyright © The Paris Perl Mongers, 1999-2017