Ca fait un certain temps que je fantasme sur
le
Lisp. Mais
cette fois ci c’est décidé, je m’y met : j’ai commencé à apprendre le
Lisp depuis quelques jours. Expériences jusqu’ici :
Le langage Lisp
A première vue, le Lisp est effectivement un chouette langage. C’est
encore très vivant, il y a plein d’implémentations et de bibliothèques
différentes, des bindings avec des tas d’autres langages — j’ai même
découvert des sites web dynamiques écrits en Lisp !
C’est un style de programmation assez différent (déclaratif au lieu
d’être fonctionnel), que l’on découvre assez agréable, élégant, et tout.
Il n’y a que quelques principes fondateurs, desquels tout découle, ce
qui rend le langage finalement assez facile à apprendre : rapidement, on
se retrouve à penser en Lisp plutôt qu’en fonctionnel.
D’autre part, tout le monde insiste beaucoup sur la grande flexibilité
de Lisp, et c’est vrai : on peut programmer autant en style fonctionnel
(boucles, déclarations de variables, etc.) qu’en style déclaratif — il
est également possible de faire de l’orienté objet ou aspect.
Les tutoriels sur le Lisp sont légion — mais un peu trop légion,
justement : on ne sait pas par quoi commencer. Voici une rapide
sélection de bons documents, pour débuter ou approfondir :
- Casting Spell in Lisp :
celui qui m’a fait démarrer. Un rapide tutoriel de quelques pages
sous forme de Comic book, qui présente le Lisp à travers la création
d’un petit jeu de rôle en mode texte, à base de magiciens, de
grenouilles et de bouteilles de whisky. Amusant et bien fait, il
présenter les concepts fondamentaux du Lisp par la pratique.
Vivement recommandé :)
- Learning Lisp
fast : une
bonne référence pour apprendre un peu plus en profondeur les
structures du Lisp, à l’aide de nombreux petits exemples.
Intéressant, quoique un peu plus proche de la collection d’exemples
que du cours organisé.
- Welcome to
Lisp : un livre
dont le premier chapitre, déjà très complet, est disponible en
ligne. Que le texte brut ne vous déroute pas, ce cours explique
vraiment bien les concepts fondamentaux du Lisp, et est une
excellente lecture une fois que l’on a tapé quelques exemples.
Quand au choix d’un interpréteur Lisp, j’utilise pour l’instant Clozure
CL, qui fonctionne sur tous les bons
Macs — mais il y a certainement plein d’autres bonnes choses.
Conclusion
Le Lisp mérite vraiment qu’on y jette un œil, même sans l’apprendre à
fond. C’est souple, puissant, et surtout sa réputation légendaire
d’élégance n’est pas usurpée. Et puis apprendre de nouveaux langages,
saybien :)
De retour de week-end de Pâques en Bretagne — les billets réguliers
reprennent :)
Les robots qui marchent, on en a tous vu — et généralement ce n’est pas
glorieux. Maladroite, déséquilibrée, lente et peu fluide, la démarche de
ces machines est rarement convaincante… Mais BigDog change la
donne. Développé par la société BostonDynamics, avec le soutien de la
branche Recherche de l’armée américaine, ce robot quadrupède à la
démarche fluide et relativement rapide peut transporter jusqu’à 150kg de
matériel. Et surtout, il fonctionne en dehors des laboratoires : les
côtes, les éboulis, la neige et même la glace, rien ne l’arrête. Les
séquences où l’on voit l’engin rétablir son équilibre après une
glissade sur de la glace
(ou un violent coup de pied déstabilisateur !) sont époustouflantes.

Alors bien sûr, les questions et commentaires se succèdent. Beaucoup,
tout en saluant la prouesse technique, se demandent quelles pourraient
être les applications militaires concrètes (puisque le projet est
financé par l’armée), sans en trouver vraiment. A mon avis, c’est
surtout que nous sommes incapables pour l’instant de voir la portée et
d’imaginer les applications d’une telle technologie, à laquelle nous ne
sommes pas vraiment préparé. D’autres glosent sur les ressemblances de
cet engin avec les quadripodes de Star Wars, et prédisent la défaite de
ces robots par de petits drones qui voleraient autour en enroulant des
filins autour de leurs jambes.
Mais le sentiment commun semble être un ébahissement doublé d’une vague
gêne. Ce robot a vraiment des airs d’animal, et voir sauter comme un
cabri ou patiner comme un chien sur de la glace ce qui reste une machine
a un effet étrangement déstabilisant. Nous sommes sans doute en plein
dans l’Uncanny Valley, la
Zone d’Etrangeté dans laquelle un robot ne ressemble pas totalement à un
être vivant, acceptable par notre esprit, mais déjà trop pour que nous
puissions simplement l’étiqueter comme “machine”. Weird times…
PS : Je suis le seul à trouver que la démarche de BigDog ressemble
furieusement à celle des Hunters de Half-Life
2 ?
Ah, les trolls sur les standards du Web… “Mon navigateur est mieux que
le tien”, “IE6 est bogué jusqu’au trognon”, “IE8 ne va pas respecter les
standards”… Joel Spolsky, faisant écho au récent débat sur le mode
standard par défaut d’Internet Explorer 8, analyse longuement la
situation, et
explique surtout pourquoi il n’y a pas de bonne solution. Rapide résumé
des idées présentées :
Les idéalistes et les pragmatiques
Le débat
a lieu entre deux clans, les idéalistes et les pragmatiques ; ceux
prônant un respect strict des standards quoi qu’il en coûte et ceux qui
pensent aux applications réelles et à la rétrocompatibilité. En
substance, Spolsky pense que le modèle standard prôné par les idéalistes
n’existe pas : contrairemement à de nombreux standards, il n’existe pas
d’implémentation de référence des standards Web. Il est donc difficile
de tester la conformité à ces standards, qui n’existent que sur le
papier.
Selon Spolsky, les idéalistes (le “clan MSDN”) ont déjà gagné par le
passé, par exemple en demandant le respect par défaut des standards
dans
IE8,
ou de nouvelles API pour Vista. Ceci a minimisé la rétrocompatibilité,
et contribué aux critiques de ces produits.
Le poid des acquis
Que faire,
alors ? Et comment assurer la compatibilité des sites existants tout en
continuant à améliorer le support des standards du Web dans les
navigateurs ?
La solution pour préserver la compatibilité, d’après Spolsky, est de la
ré-établir comme valeur cardinale — et de créer de nouveaux modes isolés
des anciens plutôt que d’améliorer (et de briser) sans cesse l’existant.
Concrètement, cela revient à préserver le mode par défaut d’IE7 dans
IE8, et à conserver l’idée d’un sélecteur optionnel dans les pages Web
pour activer le mode le plus standard. Même si, sous la pression de la
communauté, IE8 bêta respecte finalement les standards par défaut,
Spolsky est convaincu que ce choix est irréaliste, et que Microsoft
reviendra sur cette décision lors de la sortie de la version finale.
Aller plus loin
L’article est intéressant — mais oublie de mentionner tous les détails
de la solution finalement retenue par Microsoft pour IE8. Bien sûr, le
mode le plus standard (et donc brisant certains sites) est activé par
défaut, mais un sélecteur simple à intégrer dans une page Web permet de
l’afficher en utilisant le mode IE7. Alors certes, certaines pages ne
sont pas éditables (trop anciennes, sur CD-ROM, etc.), et cette solution
demande un léger travail d’édition. Mais elle permet tout de même, en
une ligne de HTML, de rendre un site “compatible” avec IE8. Bref,
l’alternative “compatible” ou “brise-tout” n’est pas aussi marqué que le
présente Spolsky.
D’autre part, l’article exhibe des images de sites complètement brisés
sous IE8, comme Google Maps — preuves qu’un mode respectueux des
standards conduirait irrémédiablement à une absence de compatibilité.
Mais il y a bien d’autres navigateurs qui respectent bien mieux les
standards, et sous lesquels ces problèmes n’apparaissent pas. Google
Maps fonctionne impeccablement sous Firefox 3 bêta ou sous Safari, qui
sont connus pour bien mieux respecter les standards qu’Internet
Explorer. Il doit donc être possible de respecter les standards et de
maintenir la compatibilité, puisque d’autres l’on fait — et les
problèmes d’IE8 sont sans doute plus liées à son statut de bêta et aux
nombreux changement dans le code qu’à une incompatibilité intrinsèque
liée aux respect des standards.
Hier, c’était dimanche : j’ai passé la journée à la Cité de
l’architecture, à Paris.
Nouvellement réouverte, ce musée fait partie du Palais de Chaillot, et
présente tout un tas de choses en rapport avec (surprise) l’architecture
et le patrimoine. Un des principaux atraits, ce sont les moulages de
tympans, chapiteaux et autres splendeurs de l’art roman et gothique.
Avec de bons commentaires (et ils étaient excellents), on s’instruit,
découvre et s’émerveille.

Oh, et aussi, les jardins du Trocadéro par le temps doux de Mars (et
sous les averses qui vont avec), c’est sympa :)