Volta est le nom de code d’une initiative, conduite par Eric Meijer, et qui vise à simplifier drastiquement le développement des applications Web. Il ne s’agit pas encore tout à fait d’un produit, mais l’élaboration et la construction de Volta font l’objet d’une sorte de R&D publique, accessible à tous, via les Live Labs de Microsoft.

Pour ceux qui ne le connaitrait pas, Eric Meijer est l’homme à l’origine de LINQ, mais aussi de l’introduction des concepts de programmation fonctionnelle dans les langages de la plateforme .NET 3.5 (C# et VB.NET).

La vision

Volta part d’un constat simple : le développement des applications est beaucoup trop complexe.

  • Les langages sont trop nombreux et trop variés.
    • Le tiers Web est codé en HTML , CSS, ASP.NET et JavaScript.
    • Le tier métier est codé en C# ou VB.NET.
    • Le tier de données est codé en SQL et procédures stockées sous forme de Transact SQL.
  • La logique des tiers oblige à fragmenter le code au risque de perdre la vue d’ensemble.
  • Les traitements doivent souvent être écrits de manière différente selon le tierq sur lequel il s’exécute.
    • en JavaScript sur le tiers Web,
    • en C# ou VB.NET sur le tiers métier,
    • en Transact SQL sur le tiers de données.
  • Est-il bien sûr que qui que ce soit ait envie d’un nouveau langage, aussi miraculeux soit-il ? C’est le dernier, on vous promet !

Les objectifs de Volta sont simples :

  • Écrire le code dans un nombre minimal de langages, plutôt que de multiplier les langages
  • S’appuyer sur les langages existants plutôt que sur des nouveaux langages
  • Permettre l’éclatement du code, sur les différents tiers, de manière automatisée (on parle de tier splitting)
  • Écrire le code de la même manière quelque soit l’endroit où le code s’exécute

Où en est concrètement cette vision ?

Actuellement, cette vision est partiellement concrétisée par LINQ dans .NET 3.5

  • LINQ est utilisable sur la base de données, sur le serveur métier et sur le client Web.
  • LINQ permet d’interroger des données de natures diverses (enregistrements, entités, XML …).

Dans l’état actuel de Volta, cette vision se concrétise d’avantage, de manière expérimentale.

Pour l’aspect interface Web, il se dessine un approche assez similaire à celle de GWT (Google Web Toolkit), aussi bien sur le plan du modèle de programmation, que du modèle d’exécution.

  • L’interface Web est décrite par du HTML pur, sans balise ASP.NET, ni JavaScript .
  • Le comportement de l’interface Web est codé en C# ou VB.NET, qui est ensuite compilé en JavaScript (c’est en fait le MSIL qui est compilé en JavaScript).
  • Le modèle de composant graphique est fondé sur le CLR pour le modèle de programmation et sur JavaScript pour le modèle d’exécution.

Pour ce qui est de l’éclatement du code sur les tiers, un modèle de programmation à base d’attributs permet de spécifier le tiers d’exécution des différentes parties de code, sans modifier le code lui même.

Se profile également à l’horizon, l’extension de LINQ pour le partitionnement et l’exécution parallèle des requêtes …

Références

Billets sur le même thème