Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Liens connexes

Dépêche modérée par

Dépêche éditée par

: Ocsigen 1.0.0 : une nouvelle approche de la programmation Web

Posté par Vincent Balat (). Modéré le 09 avril 2008.
Ocsigen est un projet de recherche visant à développer de nouvelles techniques de programmation Web. Il a abouti après plus de trois ans de travail à l'implémentation d'un serveur Web complet et extensible, et d'un module pour programmer des sites dynamiques en utilisant des concepts de haut niveau. Parmi les fonctionnalités-clés, notons :
  • la garantie que les pages générées sont en xhtml valide ;
  • le typage des formulaires et des paramètres ;
  • une gestion simplifiée de l'interaction Web à l'aide de concepts dédiés (continuations, etc.).
Ceci est rendu possible par le choix du langage Objective Caml, pour son expressivité et son système de types. Cette version 1 clôt une première phase de développement. Le projet cherche maintenant des contributeurs et développeurs de sites.

> Lire la dépêche (57 commentaires, moyenne: 2,2).  

Le serveur Web comporte notamment un module pour exécuter des CGI, un reverse proxy. Il supporte la compression des données, le contrôle d'accès, etc. Il est écrit de manière modulaire et extensible, ce qui rend très simple l'ajout de nouvelles fonctionnalités.

Le module de création de sites, appelé Eliom, est la partie la plus novatrice du projet. C'est une bibliothèque qui permet d'écrire des sites de grande taille de manière concise et fiable, en évitant l'effet « usine à gaz » des traditionnels langages de scripts. En particulier :Eliom n'est pas un système de gestion de contenu (CMS), ni un outil de génération automatique de code ou un langage de templates, mais il fournit une base pour créer de tels outils. Il est déjà utilisé pour plusieurs projets (Nurpawiki, Lambdium, etc.). La version 1 n'est qu'une première étape du travail. Les prochaines versions devraient faciliter beaucoup la génération de code à exécuter sur le client. Le langage utilisé à la fois pour le développement du serveur Web et des sites avec Eliom est Objective Caml. Il a été choisi car c'est l'un des rares langages avec une expressivité suffisante et un système de types assez riche pour permettre l'implémentation de ces concepts.

Ocsigen est un projet du laboratoire PPS de l'université Paris-Diderot (Paris 7) et CNRS. Il est organisé sous la forme d'un projet collaboratif ouvert. Toutes les idées et contributions sont les bienvenues !

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Interessant mais...

Posté par pasBill pasGates () le 09/04/2008 à 07:06. (lien). Évalué à 6.

C'est un concept effectivement assez original, mais je me demandes un peu comment vous ce systeme va etre "vendu" aux gens qui font aujourd'hui du dev. web.

Le gars qui programme en PHP/ASP/JSP/... qui ne connait rien a OCaml, qui utilise Apache/IIS, qui utilise un validateur XHTML pour tester ses pages, il a quoi comme raison d'investir un temps non negligeable a changer de serveur web, apprendre un nouveau langage et potentiellement refaire son site ouaib ?

De ce que je vois(mais je peux me tromper, le dev web c'est pas mon truc, et OCaml encore moins), le truc principal qu'il gagne c'est le test de liens automatique, le reste existe deja a peu pres meme si ce n'est pas un tout unifie.

J'ai peut-etre rate un truc, mais il me semble que ca tient plus de l'exercice de style que du soft pouvant reellement changer les choses du point de vue dev. web.

Le retour en force du fonctionnel ?

Posté par Miguel Moquillon (page perso, ) le 09/04/2008 à 09:35. (lien). Évalué à 2.

En effet, je suit un peu l'actualité des langages de programmations et je remarque que les langages fonctionnels reprennent du poil de la bête. Ce qui ne m'étonne guère étant donné qu'avec ses langages on se focalise plus sur le 'quoi' que le 'comment' et que donc ils permettent d'appréhender plus facilement la complexité qui va en grandissant sur les projets.

Ce retour est à constater d'abord par l'ajout d'une touche fonctionnelle dans des langages comme Python, Ruby, C#, ...
Puis, la remonté de Smalltalk qui a une approche fonctionnelle, au travers de squeak, seaside et OpenCroquet.
L'intérêt suscité à nouveau d'Haskell (très intéressant car il supporte le typage de Cook (typage du second degrès)).
L'introduction de F# dans .NET.
Sans parler de Scala un langage objet-fonctionnel qui prend de plus en plus dans la communauté Java, en attendant son apparition sur la plate-forme .NET. (Note : j'ai déjà un peu programmé avec Scala et c'est du vrai bonheur pour des perfs égales ou proches à du Java). Et en plus il se base non seulement sur le lambda-calcul mais aussi sur du pi-calcul (enfin plus exactement sur du join-calcul) !

Mouais, faudrait ptetre...

Posté par Ontologia (page perso, ) le 09/04/2008 à 11:03. (lien). Évalué à 2.

...Que les chercheurs informaticiens apprennent à faire de la psychologie cognitive.
Faudrait peut être qu'ils comprennent qu'un outil de développement ne nécessite pas avant tout d'être mathématiquement beau (même si je comprend tout à fait l'importance de ce point auquel je suis assez sensible), mais d'être accessible pour le développeur moyen qui sort d'un bac+2 et qui, (souvent)par conséquent, ne comprend rien à un langage comme caml (j'étais perçu comme un extraterrestre en BTS de parler d'un tel langage).

Je vois tout à fait l'intérêt de ce genre d'approche : une fois que le compilateur a validé le code, on peut être sûr qu'on aura pas trop de surprise, contraîrement à PHP qui est un des pire langage existant à l'heure actuelle, sur cet aspect dumoins.

Mais non seulement ça perçera jamais car personne en entreprise, à part peut être quelques cas particuliers, n'utilisera ce truc, tout simplement parce qu'Ocaml est imbitable pour la plupart des développeurs. Je dis ça, j'aime Ocaml, le typage somme, c'est tout de même pied absolu, et j'en passe...
On pourra évoquer l'éducation, la fénéantise, etc... ce qu'on veut, mais c'est comme ça.

Un bon framework de dev, ne doit pas se baser son concept sur la seule puissance d'un langage, mais savoir comment l'utiliser pour s'adapter au cerveau du programmeur.
Un humain n'a par défaut pas du tout la même façon de penser qu'un ordinateur, qui reste une grosse machine à calculer. Tout le monde a surement perdu des heures à coder des concepts simple à cause de détails à la c** qui posent problème.

La question est donc, pour un logiciel, de savoir comment un humain conçoit, en son for intérieur, son logiciel. Comment le type qui spécifie, non informaticien mais orienté métier, serait amener à décrire rigoureusement son logiciel ?

Je donne un exemple : on a inventé des systèmes divers et variés, plus ou moins heureux, pour gérer les interfaces utilisateurs. On a les callback, l'évènementiel, les signaux/slots à la QT.
Le dernier est un des moins mauvais si je puis me permettre de dire.
Mais on s'est demandé ce qu'est une interface utilisateur pour un être humain ?
Eh bien c'est une machine à état.
Elle a des états, des équations d'états. Des évènements liés à l'activation d'état, à la vérification d'équation d'état, etc...
Les données, si l'on se trouve dans un modèle MVC, sont une représentation des données qui lui sont "envoyées", un filtrage sur celle-ci.

Bref, ce qu'il faudrait, je pense, cibler, est plus une approche cognitive, un peu comme le propose Scratch ou croquet ( http://www.opencroquet.org/index.php/Main_Page ) pour les enfants.

La suite de tout cela ? Les langages de programmation sémantiques à ontologie. Pour quoi faire ? Gérer l'implicite.

Links

Posté par maikeul () le 09/04/2008 à 16:42. (lien). Évalué à 1.

Sans avoir de réelle opinion sur le sujet, un autre projet de recherche dans le même domaine que j'avais vu passer :

http://groups.inf.ed.ac.uk/links/

Utilisation

Posté par Kévin FERRARE (page perso, ) le 09/04/2008 à 17:05. (lien). Évalué à 1.

Si on compare à des framework évolués comme Echo2 ou GWT qui te permettent de coder ton appli web sans avoir à te préoccuper du html, des formulaires ou des liens, je me demande si cette méthode de programmer un site n'est pas déja dépassée (Sans parler de ce projet en particulier)

OCaml vs. PHP

Posté par gadm () le 09/04/2008 à 17:39. (lien). Évalué à 1.

Petit rappel d'un des attraits d'OCaml: http://shootout.alioth.debian.org/debian/benchmark.php?test=(...)

Je veux bien qu'on me dise que l'I/O est plus important que le processeur dans la programmation web, mais avec une telle différence, j'ai vite fait mon choix.

(vs Python: http://shootout.alioth.debian.org/debian/benchmark.php?test=(...) )

Et une interface "normalisée" avec la base de données ?

Posté par ddevito (page perso, ) le 09/04/2008 à 18:40. (lien). Évalué à 1.

La librairie Java offre une interface JDBC normalisée avec les bases de données, à chaque fournisseur d'implémenter ces interfaces pour fournir un driver pour sa base.

Est-ce que OCaml offre une telle interface ? Si oui, cela va devenir plus business-friendly.

Sauf erreur, Eliom doit avoir "normalisé" en OCaml à peu près l'équivalent de la couche servlet. Si les autres couches de Java EE sont aussi normalisées du fait de la communauté, alors on verra émerger l'équivalent de Java EE en Java. Cool.

Toujours pas de CPAN pour OCaml ;-( ?

Revenir en haut de page