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.
Aller plus loin
- Le (nouveau) site du projet (6 clics)
- L'annonce de sortie (0 clic)
- Le tarball (sources+doc+demo+tuto) (1 clic)
- Le manuel avec un tutorial (4 clics)
- API Reference en C (2 clics)
- API Reference en Vala (4 clics)
# Typo sur le site
Posté par jon . Évalué à 2.
[^] # Typo sur le commentaire
Posté par Tof . Évalué à 2.
[^] # Re: Typo sur le site
Posté par Samos . Évalué à 1.
[^] # Re: Typo sur le site
Posté par choupe82 . Évalué à 2.
Sinon le projet semble intéressant :)
[^] # Re: Typo sur le site
Posté par Samos . Évalué à 1.
# Pour pas un binding Perl
Posté par Sytoka Modon (site web personnel) . Évalué à 3.
L'idée est bonne mais pourquoi pas un binding dans un langage de script permettant de tester rapidement un petite application et la basculer ensuite en Vala s'il le faut.
Sinon, la doc est trop segmentée. Il faut faire au moins aller sur 4 pages avant d'avoir un exemple concret. Vu la taille des pages, on doit pouvoir faire une doc avec bien moins de page web.
[^] # Re: Pour pas un binding Perl
Posté par Samos . Évalué à 3.
Premièrement, Blitzen a été conçu justement pour exécuter des applications natives et non pas des applications écrites en langage de script.
Deuxièmement, même si je n'ai rien contre cette idée, la mise en oeuvre pratique risque d'être moins triviale qu'il n'y paraît : Une fois compilées, les applications se présentent sous la forme de 'shared objects' (.so) qui sont chargés dynamiquement par Blitzen via un point d'entrée prédéfini qui est chargé de créer une instance d'un type dérivé de l'objet représentant une application( Exactement comme une application charge un plugin ).
Aussi pour être capable d'exécuter une application en langage de script il faudrai embarquer l'interpréteur du langage en question et sûrement écrire encore un peu de 'glue code'. Comme on le voit, même si cela ne semble pas vraiment 'impossible', c'est en tout cas un peu complexe pour ce stade du projet.
Cependant, même si ça ne m'intéresse pas de le faire pour l'instant, les contributions sont acceptés ;)
# Midgard ?
Posté par Xavier Bestel (site web personnel) . Évalué à 1.
Sinon ça me plaît pas mal ce projet.
[^] # Re: Midgard ?
Posté par Samos . Évalué à 1.
A ce que j'ai pu lire sur leur site web, il s'agit à la base d'un framework de persistance.
Il y a également un système de CMS en PHP nommé midCOM, mais je n'ai pas reussi à accéder à l'API reference donc je ne peux pas vraiment comparer son approche avec celle de Blitzen.
# temps de prise en main
Posté par sooky . Évalué à 2.
par contre, quel est le temps de prise en main d'un tel 'outil' ? 1 semaine ? 1 mois ?
.. c'est assez intéressant afin de savoir dans quoi on se lance quand on veut mettre en place un projet.. ?
Merci pour votre retour !
et bonne continuation
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.