vendredi, mai 26

Selenium : du vrai test-driven development pour le web 2.0

Le test-driven development (pratique très liée à l'eXtrem Programming) passe peu à peu dans les moeurs des développeurs web et c'est tant mieux. Mais à l'heure du web 2.0, les principaux frameworks avaient une grosse lacune : la quasi-absence de tests sur les fonctions Javascript.

Quand on sait l'importance qu'a repris javascript depuis l'avènement d'AJAX, c'était même plus qu'un manque, et cela obligeait à limiter les tests unitaires aux seules classes métier d'un projet... ce qui devenait ridicule étant donnée la part prépondérante de l'interface homme-machine dans les temps de développement !

Selenium apporte depuis quelques temps déjà (il vient de sortir dans sa version 0.7) une réponse très satisfaisante à ce problème via 2 produits open-source :

- Selenium IDE est un plug-in pour firefox qui vous permet d'enregistrer des scénarios tests de manière simplissime et de les réexcuter à l'envie.

- Selenium Core est système vous permettant de programmer directement vos tests en tappant vos instructions dans des tables HTML. Ces tests peuvent être ensuite automatisés et intégrés à votre petite "software factory".



Le tout fonctionne à base de Javascript et simule vraiment les actions d'un utilisateur dans un navigateur web. Bref, si vous voulez vous mettre au test-driven development et au web 2.0, Selenium me semble à ce jour incontournable.

lundi, mai 22

Du bon usage du tagging

Suite à un petit débat sur TechCrunch, je me permets de vous livrer quelques réflexions sur un phénomène très web 2.0 : le tagging.

Le tag est aujourd'hui perçu comme une solution de classement et de partage des informations ultime, en particulier avec les succès de Flickr et de delicious. Toute application web 2.0 devrait donc, à en croire certains, comporter un système de tags pour être réellement efficace. Ce type de raisonnement tient d'après moi plus du prêt-à-penser que de l'analyse... je vous propose donc une petite analyse d'un cas d'actualité : Google Notes.

Google Notes est système de prise de notes sur des pages web favorites (via un plug-in sur votre navigateur), notes que vous pouvez éventuellement rendre publiques façon delicious. Or il est reproché à Google Notes l'absence du tagging. Je ne comprends pas ce reproche et voici pourquoi :

Le tagging est élément très important du web 2.0. Mais pourquoi ?

Parce qu’il permet de passer d’un système de “taxonomy” (classement arborescent unique) à un système de “folksonomy” (classement pas les utilisateurs et non-arborescent) de manière très simple…

Or Google a déjà un système de “folksonomy” avec son système de prise de notes en langage naturel et son moteur de recherche… le tag devient alors tout simplement désuet (d’ailleurs vous pouvez prendre des notes similaires à des tags, si cela vous chante). Rappelez-vous d’une des devises de Google : “ne classez plus, cherchez”. Et c’est à mon avis là, l’erreur des analyses que je dénonce ici : elles voient ce choix comme un manque alors que c’est au contraire un point fort vis-à-vis de la concurrence.

Et vous, qu'en pensez-vous ?

mercredi, mai 17

Google Web Toolkit : enfin une bonne raison de se (re)mettre à Java

Le monde du web 2.0 était jusque là dominé techniquement par :
- PHP (avec de l'Ajax fait main)
- .Net (avec ATLAS)
- RubyOnRails (les créateurs ayant réalisé la désormais célèbre librairie "prototype.js")
- Flash (même si cette techno reste proscrite chez de nombreux concepteurs web)

Java était plutôt resté en marge de ce mouvement... mais voilà que Google - les quasi-inventeurs d'AJAX- redonne de sérieux arguments à cette techno avec Google Web Toolkit : un pack de développement pour applications web modernes vraiment novateur.
C'est à dire :
- compilation de code Java vers JavaScript (!)
- possibilité de débuguer
- compatibilité "cross-browser" avancée
- nombreux widgets à disposition

C'est vrai Google nous sort régulièrement des gadgets ces derniers temps... mais là, c'est un truc sérieux et terriblement bien vu techniquement : Google ne se positionne pas ainsi par rapport à un très décevant Yahoo!UI mais plutôt face à l'ATLAS de Microsoft.NET !
Pour le développeur, je pense qu'ATLAS reste plus productif (essentiellement du fait de Visual Studio) mais développer en Java est plus simplement gratuit et offre probablement plus de souplesse...
bref, enfin une bonne raison de regarder à nouveau du côté de Java !


NB : j'ai bien noté votre intérêt pour un tuto sur COMET, je vous en promets la première partie pour la semaine prochaine...

lundi, mai 15

CakePHP : le RubyOnRails de PHP

CakePHP, c'est du gâteau : c'est ainsi que présentent les concepteurs de ce framework leur merveilleux bébé. Ca faisait longtemps qu'on attendait que les principes de RubyOnRails (que j'inclus personnellement dans la vague web 2.0) soit repris dans les 3 grands piliers du web : Java, .NET et PHP, et on peut désormais dire que c'est fait pour PHP tant cette implémentation est réussie.

On a donc un framework essentiellement basé sur les patterns MVC (Model-View-Controller) et ActiveRecord permettant des développements ultra-rapides : scaffolding (génération automatique d'interfaces pour les phases de développement), multitude de fonctions prêtes à l'emploi, présences de "helpers" facilitant la vie du développeur sur tout un tas de trucs pénibles (AJAX, HTML, etc...).

C'est souple, efficace, supporté par une vraie communauté active et sous license MIT : que du bonheur !

vendredi, mai 5

COMET : successeur ou complément d'AJAX ?

Je m'intéresse depuis quelques semaines à une technologie appelée COMET (ou encore HTTP Streaming). Son principe est simple : créer une connexion persistante entre le client et le serveur et s'en servir pour "pousser" les informations du serveur vers le client (sans que le client ne fasse une quelconque requête : voir schéma comparatif AJAX / COMET).

Cela permet naturellement d'augmenter encore un peu la réactivité de l'application. Exemple : l'intégration de Gtalk dans Gmail utilise cette technologie, Meebo aussi.

La technologie n'est pas nouvelle, mais ces utilisations montrent qu'elle maintenant probablement mûre pour une utilisation plus large. Si il y a de la demande sur le sujet de la part de mes chers lecteurs, je ferai un tutoriel sur le sujet, étant donné qu'il n'en existe pas à ma connaissance en français.

[EDIT] : le tuto est maintenant .

mercredi, mai 3

Getting real : les recettes du succès selon les concepteurs de RubyOnRails

Je ne suis pas le premier (ni certainement le dernier) à parler de ce livre... mais je ne vois pas comment je pourrais éviter plus longtemps le sujet tant il est fort et symbolique des temps que le web est en train de vivre.
Getting Real est l'oeuvre de 37 signals à qui l'on doit, entre autre, BaseCamp (gestion de projet), Campfire (système de chat avancé) et RubyOnRails (un framework de développement web merveilleusement bien pensé). Cet ouvrage exclusivement électronique pourrait être un nouvel évangile pour toute personne embarqué dans un projet web : ses principes sont clairs, simples, directifs et terriblement opérationnels.

Quelques exemples :
- ne faîtes pas de documents de spécification, mais des prototypes
- dîtes d'abord "non" à toute demande de nouvelle fonctionnalité
- servez-vous de l'interface pour vous guider dans vos choix et vos discussions
- ne faites pas de réunions
- l'équipe de développeurs idéale est composé de 3 membres
- livrez une première version très vite, même si elle est limitée en fonctionnalités
...

C'est là tout l'esprit du livre, la philosophie de l'eXtrem Programming poussée jusqu'au bout : allez toujours à l'essentiel et au concret le plus rapidement et le plus simplement possible... c'est cette base de travail qui vous permettra d'avancer, le reste n'est que littérature.

Le discours est frais et novateur, et même si cette lecture est d'une simplicité déconcertante, les auteurs y montrent une culture et une intelligence remarquable.

Bref, un livre à la fois incontournable et définitivement web 2.0.

lundi, mai 1

Réponses à quelques questions récurrentes du web 2.0

En réponse à la requête de Melle Thien nguyen (qui est étudiante en audiovisuel et qui rédige un mémoire ayant pour thème le web 2.0), j'ai répondu à quelques questions dont certaines sont désormais très classiques.

J'en retranscris les passages qui me paraissent les plus intéressants :

Quel est pour vous la plus belle réussite web 2.0 (services, applications).

Si j'exclue Google, je dirais probablement Digg

Quelle est le service web 2.0 dont vous usez le plus aujourd'hui ?

Netvibes

Celui dont vous ne pourriez plus vous passer ?

Gmail

Le web 2.0 a-t-il fait apparaître un nouveau modèle économique ou sommes nous dans une continuité ?

Le terme modèle économique est pour moi trop vague. D'un point de vue microéconomique, une idée essentielle est de faire des start-up qui consomment moins de cash dans leurs premières années.
Il y a aussi quelques petites innovations dans les modèles d'affaire : l'idée du "long tail" décrit par O'Reilly (voir mon billet à ce sujet) me semble assez nouvelle par exemple.

Est-il possible de prévoir une bulle 2.0 ?

Elle existe déjà un peu. Le cours de Google est pour moi surévalué par exemple, Ebay a acheté Skype beaucoup trop cher... mais ce n'est pas là le pire. Le pire réside dans une multitudes de boites qui se montent soit en comptant uniquement sur les revenus de la pub (qui ne peut rémunérer qu'un nombre limité d'acteurs), soit dans le but de se faire racheter par un major du web : c'est assez malsain en soit et nombre de boîtes vont se crasher (mais le crash sera moins dur car les investissements mieux ciblés qu'avant : voire réponse précédente).
De manière générale, un grand nombre de services web 2.0 ont des difficultés à être monétisés (et ce même pour Google ou Yahoo !)... la bulle est donc bien là.

Est-ce qu'aujourd'hui, près de deux ans après l'apparition du terme 2.0, sa définition est plus claire pour tout le monde ou reste-t-il un concept fourre-tout ?

Non, pas de définition claire répandue... ce qu'on voit de manière générale c'est que le terme web 2.0 est associé à AJAX et aux applications privilégiant une dimension humaine (votes, tags, commentaires)

Qu'est ce qui a concrètement changé dans votre façon de "consommer" le web ?

Les flux RSS et ATOM
La création et l'utilisation d'un webtop
La création d'un blog
La participation à des communautés et d'autres blogs

Quel est le plus grand bénéfice utilisateur selon procuré par le web 2.0 ?

Le fait que le web 2.0 soit "user-centric" : les applications viennent à l'utilisateur (flux RSS, webservices, pas de téléchargement) et s'adaptent à ses besoins (personnalisation, ergonomie améliorée)

On parle déjà du web 3.0. Avez vous un avis sur la question ?

Je crois que c'est marketing... Le web 2.0 est un constat clair et a posteriori que les choses ont changé sur le web. Pour le web 3.0 (et ce que chacun veut mettre derrière), on ne peut faire que des spéculations (plus ou moins fantaisistes et rarement vérifiables)... or je crois qu'il y a déjà suffisamment à faire en la matière avec le web 2.0.