Sortie de Blitzen 0.0.7

Posté par  . Modéré par Pascal Terjan.
Étiquettes :
11
7
mar.
2010
Internet
Blitzen est un serveur d'application que je développe sur mon temps libre, et qui avait déjà fait l'objet d'un journal pour la version 0.0.5 sur DLFP. Pour les plus pressés d'entre vous, voici un bref rappel des faits : Blitzen est un serveur d'application libre (LGPLv2), qui a pour but de permettre l'écriture d'applications ou sites web de manière simple et rapide.

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

  • # Typo sur le site

    Posté par  . Évalué à 2.

    Un des catégories s'appelle « Annouces » au lieu de « Annouces » ;)
  • # Pour pas un binding Perl

    Posté par  (site web personnel) . Évalué à 3.

    Ou python ou...

    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  . Évalué à 3.

      Il y a plusieurs raisons à cela:

      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  (site web personnel) . Évalué à 1.

    Alors perso je ne connais ni l'un ni l'autre, mais à première vue les 2 m'ont l'air de se ressembler fortement. Tu pourrais nous dire quelle est la différence ?

    Sinon ça me plaît pas mal ce projet.
    • [^] # Re: Midgard ?

      Posté par  . Évalué à 1.

      Si tu parles de www.midgard-project.org, je ne connaissais pas du tout.

      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  . Évalué à 2.

    ça rejoint windev sur le côté dév d'appli. et traduction en techno web derrière..

    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.