Développeur : 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.).
> Lire la dépêche (57 commentaires, moyenne: 2,2).
Vous avez demandé le commentaire #921397.




Le retour en force du fonctionnel ?
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) !
[^]Re: Le retour en force du fonctionnel ?
Oui, j'ai posté qques notes là-dessus (putain, en 2005, merde, comme le temps passe vite, j'ai l'impression que c'était hier...) :
* Thoughts about Java, C# future and OCaml (?) relationships :
http://jroller.com/page/dmdevito?entry=thoughts_about_java_c_future
* More ramblings on programming languages :
http://jroller.com/page/dmdevito?entry=more_ramblings_on_programming_languages
En gros, je voyais et je vois tjrs une évolution de Java et C# vers qque chose qui ressemblerait à OCaml. Déjà Scala se rapproche plus encore que Java de ce que l'on peut voir dans OCaml.
Bref, de plus en plus de langages se dotent notamment de traits fonctionnels.
Un papier intéressant à lire est :
* The Next Mainstream Programming Language: A Game Developer's Perspective, from Tim Sweeney (Epic Games) :
http://www.st.cs.uni-sb.de/edu/seminare/2005/advanced-fp/docs/sweeny.pdf
Il a été écrit par un professionnel de l'industrie des jeux, qui, face à la complexité croissante du développement logiciel (en particulier, du fait des CPU multi-coeurs), a envisagé notamment d'utiliser Haskell pour la programmation ! Etonnant, non ? Comme quoi, les langages impératifs ne sont pas le fin du fin et face à la complexité croissante du logiciel, les concepteurs de langage ont tendance à copier ce qui marche chez le voisin.
PS : à propos, Microsoft est membre du consortium OCaml. Je me dis qu'ils ont du repérer une pépite dont ils pouvaient tirer qques enseignements...
[^]Re: Le retour en force du fonctionnel ?
PS : à propos, Microsoft est membre du consortium OCaml. Je me dis qu'ils ont du repérer une pépite dont ils pouvaient tirer qques enseignements...
Microsoft utiliserait OCaml pour la certification des drivers de Windows.
Dans .NET, on trouve beaucoup d'idée venant d'OCaml, notamment l'inférence de type et le typage statique. .NET possède même un clône d'OCaml : F#.
[^]Re: Le retour en force du fonctionnel ?
Microsoft utiliserait OCaml pour la certification des drivers de Windows.
Perso j'en doutes enormement(on a une tres forte tendance a utiliser les technos qu'on cree et eviter les trucs externes), et je sais que ce n'est en tout cas pas le cas pour les drivers de carte reseau.
L'interet pour OCaml vient certainement de la division developpement qui s'occupe de CLR, C#, etc... , pas de la division Windows.
[^]Re: Le retour en force du fonctionnel ?
Vu sur:
http://caml.inria.fr/about/successes.fr.html
Le projet SLAM a débuté à Microsoft Research début 2000. Son but était de vérifier automatiquement qu'un programme C utilise correctement l'interface d'une bibliothèque extérieure. Pour répondre à cette question, SLAM utilise de manière novatrice des idées provenant de la vérification symbolique de modèles, de l'analyse statique de programmes et de la démonstration automatique. Le moteur d'analyse SLAM est au coeur d'un nouvel outil appelé SDV (Vérification Statique de Drivers) qui analyse systématiquement le code source des drivers (pilotes de périphériques) Windows et vérifie leur conformité vis-à-vis d'un ensemble de règles qui caractérisent les interactions correctes entre un driver et le noyau du système d'exploitation Windows.
Dans le rapport technique MSR-TR-2004-08, T.Ball, B.Cook, V.Levin and S.K.Rajamani, les auteurs de SLAM, écrivent: “The Right Tools for the Job: We developed SLAM using INRIA's OCaml functional programming language. The expressiveness of this language and robustness of its implementation provided a great productivity boost.”
[^]Re: Le retour en force du fonctionnel ?
Oui, mais le truc a savoir c'est que Microsoft Research developpe ses projets de recherche dans les langages qu'il veut, cependant une fois que le projet passe au stade production, l'equipe prend le code des chercheurs et d'habitude le reecrit en bonne partie si ce n'est tout dans une forme qui est maintenable, plus propre, ...
La version originale etait peut-etre sous OCaml, la version de production elle ne l'est pas.
[^]Re: Le retour en force du fonctionnel ?
Je ne sais pas si tu as déjà programmé en dans un language fonctionnel, mais la puissance et l'expressivité d'ocaml font qu'il est très difficile de reprendre du code dans ce language pour le refaire dans un autre... J'ai déjà vu de des fonctions de 20 lignes se refaire en 5 dans un language fonctionnel. Donc en pratique une telle chose me parait très peu probable.