Nicolas Maisonneuve wrote:
On Wed, 02 Feb 2005 23:53:37 +0100, Sylvain Wallez <[EMAIL PROTECTED]> wrote:
<snip/>
Revenons aussi sur l'historique de flowscript. En 2002, Ovidiu Predescu,
un committer Cocoon qui bossait chez HP (il est chez Google maintenant)
faisait des d�veloppements exploratoires sur l'utilisation des
continuations pour �crire le contr�leur des applis web. Mais il faisait
�a en Scheme, un dialecte de Lisp. Int�ressant, mais vraiment
exp�rimental (Nicolas, tu pr�f�res Lisp � Javascript?).
C'est vrai ! comme je suis dans l'IA , j'ai l'impression d'avoir
utiliser plus souvent le Lisp que le javscript, mais bon je dois �tre
assez rare comme personne :-)
On est au moins deux : j'en ai �crit pas mal quand j'�tais jeune (j'ai fait une sp�cialisation IA). Mais c'�tait il y a bient�t 15 ans :-(
Concernant le flowscript .. effectivement je n'avais pas du tout penser aux non-developpeurs ... me voil� fix� :)
Par contre je suis �tonn� qu'on ait besoin de l'aspect fonctionnel
(lisp, javascrit) pour cela ...j'imagine qu'il a des raisons mais je
ne vois pas l'utilit� de langages fonctionnels dans ce cadre. ai je
loup� un truc ?
Une continuation est une fonction :-)
Plus d'infos sur http://wiki.apache.org/cocoon/RhinoWithContinuations
<snip/>
De l� a �merg� Javaflow, qui apporte les continuations � Java. C'est
loin d'�tre trivial, puisqu'une continuation est une photo de la pipe
d'appel et de toutes les variables locales. L'impl�mentation des
continuations en Java a donc requis l'instrumentation du bytecode Java.
C'est notre ami Torsten Curdt qui s'est charg� d'int�grer un outil
existant (un travail de recherche d'une universit� belge) pour permettre
cela.
Pour le javaflow C'est vrai, comme tout pb en g�n�ral ca parait
simple mais c'est toujours plus compliqu�. Je ne pensais pas qu'il
y'avait de la manipulation du bytecode � l'int�rieur (manipulation du
bytecode = instruction de r�flexion du code ou c'est autre chose ?)
C'est le bytecode (= assembleur Java) qui est modifi� : autour de chaque appel de m�thode, on ajoute l'empilement/d�pilement des variables locales dans l'objet qui repr�sente la continuation pour pouvoir d'une part les conserver et d'autre part les remettre en place lors de l'appel de la continuation.
Apr�s Lisp, nous voil� dans les profondeurs de l'assembleur (mais un assembleur objet!). Tout �a pour vous rendre la vie plus facile, chers utilisateurs :-)
Sylvain
-- Sylvain Wallez Anyware Technologies http://www.apache.org/~sylvain http://www.anyware-tech.com { XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
--------------------------------------------------------------------- Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/ Pour vous desinscrire : mailto:[EMAIL PROTECTED] Autres commandes : mailto:[EMAIL PROTECTED]
