Parmi toutes les solutions visant à améliorer la productivité du développeur par rapport à la manipulation directe des technologies web (HTML, Javascript, css, etc.), deux approches se démarquent:
- L'approche orientée page qui consiste à faciliter la vie du développeur en prenant en charge les mécanismes les plus élémentaires tout en conservant un lien fort avec les technologies sous-jacentes (c'est le cas de Ruby on Rails par exemple) ;
- L'approche orientée composants, qui vise à unifier le développement des applications web et natives en masquant au maximum l'aspect web de l'application en présentant une API proche des toolkits natifs comprenant un modèle événementiel à callbacks ou listeners (Seaside par exemple).
Blitzen se classe résolument dans la seconde catégorie et vise à permettre le développement d'applications web sans avoir à se soucier des problématiques liées à cet environnement particulier (compatibilité des navigateurs, niveau de fonctionnalités ...). Ainsi, il présente une API proche de GTK+ et permet au développeur de se concentrer sur l'aspect fonctionnel de son application en laissant la charge au moteur de rendu de faire les choix appropriés en fonction du client qui l'interroge : utilisation de rendu asynchrone AJAX lorsque disponible, dégradation progressive lorsque javascript n'est pas disponible, etc.
Blitzen est écrit en C, et plus particulièrement en C/GObject, ce qui permet certes d'écrire des applications web directement en C, mais également et surtout en Vala via le binding fourni.
Cette nouvelle pré-version publique constitue une milestone importante. Tous les widgets HTML de base sont implémentés (au moins de manière partielle), il est désormais possible de créer un site web complet avec Blitzen. Bien entendu, comme le numéro de version l'indique il s'agit d'un projet très jeune qui nécessite et nécessitera encore beaucoup de tests avant d'être en mesure de se déclarer stable. Pour autant, j'ai n'ai pas encore eu l'occasion de le voir "segfaulter".
Comme toujours, toutes les remarques/suggestions/contributions sont les bienvenues.