La rétro-compatibilité

Je crois que le truc qui me plaît et me fascine le plus dans l’intégration, c’est de savoir que ce que je code aujourd’hui fonctionnera encore demain. Et quand je dis demain, je veux dire dans 10, 20 ou 30 ans.  Je me suis fait la réflexion récemment en revisitant 2 de mes tous premiers sites perso encore en ligne (ici ou ), créés il y a exactement 10 ans.

Ces sites ont été créés à l’époque d’IE6, Netscape et Firebird, sous Frontpage 98, avec une connexion ADSL 512k chez Wanadoo. Mais ils tournent parfaitement aujourd’hui sur Chrome 19, Firefox 14, ou même sur Safari sur mon iPhone en 3G.

En comparaison, si vous avez développé une application sous Mac OS 9 il y a 11 ans, il n’y a quasiment aucune chance pour qu’elle fonctionne encore sous Mac OS aujourd’hui. La même chose est surement valable pour Windows. Et je ne parle même pas du fait que si vous avez gravé à l’époque vos applications sur CD-R, ces derniers sont très certainement périmés et inutilisables.

Sur le web, la rétro-compatibilité est possible grâce aux standards qui essayent de l’assurer dans toutes les spécifications. Et ça souligne bien à mon avis l’importance de ces standards. Il y a quelques mois, Nicolas Hoffmann relatait de manière amusante une conversation qu’il a eu lors du passage à IE7 chez l’un de ses clients, dont voici un court extrait :

— (s’adressant à moi) Vous devez être sous perfusion de stress ces temps-ci !
— Heu non, pas en particulier, pourquoi me dites-vous cela ?
— Bin avec la migration, ça tourne à la catastrophe chez nous.
— Quelle migration ???
— Bin on va passer à Internet Explorer 7, et c’est pas triste avec nos intranets.
— (interloqué) Et pourquoi donc ? Ça fait un bout de temps qu’il est sorti, ça marche plutôt bien, et honnêtement ça a pas changé grand chose par rapport au 6.
— Vous plaisantez ? Les intranets avec ActiveX ne fonctionnent plus correctement, on a des bugs de rendu, ça fait des mois et des mois qu’on bosse à cette migration, et on a problèmes sur problèmes !
— Ah bon ???

Si vous ne vous conformez pas aux standards, vous ne bénéficierez probablement pas de cette rétro-compatibilité. Si vous avez un site qui dépends fortement de Flash, Silverlight ou Real Player, vous commencez surement à en faire les frais.

Ce qui me fait sourire, c’est qu’il y a 10 ans, je ne me serais jamais imaginé pouvoir consulter les sites que je concevais sur des terminaux mobiles tactiles connectés en permanence à Internet. Et alors que le marché des navigateurs était constitué principalement de Microsoft et Netscape/Mozilla, je n’aurais probablement jamais suspecté qu’Apple puis Google entrent aussi sur le marché. Cela me laisse rêveur quant aux façons dont je naviguerais dans 10 ans sur les sites que je crée aujourd’hui. Et surtout, ça m’inspire ce slogan d’Hipster Intégrateur :

I code for browsers that don't even exist yet

  1. Thomas, le

    Encore un bon article.
    Je pourrais être intéressé par un t-shirt avec ce slogan :P

    Bonne journée,
    Thomas.

  2. Gring, le

    Cette rétrocompatibilité est aussi la raison pour laquelle programmer un navigateur viable n’est pas accessible à une petite équipe : Il faut se conformer aux nouveaux standards, mais également émuler tous les bugs historiques des navigateurs précédents.

    ( Provocation : Et supporter les entêtes css -webkit )

  3. Antoine, le

    @Gring « émuler tous les bugs historiques des navigateurs précédents » WAIT WHAT????

    Ca m’étonnerait fortement que FF ou Chrome émulent les bugs historique…

  4. Mem's, le

    Sauf qu’a vouloir aller trop vite et utiliser les implémentations des derniers drafts du W3C, du IETF et autres -webkit-, certaines choses ne fonctionneront plus dans le futur, contrairement à aujourd’hui

  5. Vivien, le

    Bon article. Et +1 pour le tee-shirt :-)

  6. Identitools, le

    « I don’t support Internet Explorer before it was cool »

    Ok je sors :)

  7. shavounet, le

    « I used to make ActiveX intranets, then I took an arrow in the knee. »

  8. Gring, le

    @Antoine => Si si, les navigateurs modernes dessinent les anciennes pages (identifiées par leur doctype, ou l’absence de celui ci) en « quirks mode », en émulant les bugs des vieux navigateurs.

  9. TOMHTML, le

    Excellent slogan ! Moi aussi je le veux en T-shirt !

  10. Rémi, le

    Je vais voir ce que je peux faire pour des t-shirts ce week-end.