cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylv...@apache.org>
Subject Re: 2 questions
Date Wed, 02 Feb 2005 22:53:37 GMT
Aurélien DEHAY wrote:

> Bonjour.
>
> Bertrand Delacretaz wrote:
> [snip]
>
>>> ...Flowscript et javaflow
>>> javaflow a t il pour objectif de remplacer à long terme le 
>>> flowscript ..
>>
>>
>>
>> Ca dépend à qui on demande...
>>
>> Flowscript est bien établi maintenant, et stable, javaflow est quand
>> même nettement plus expérimental.
>>
>> Mais si on avait eu javaflow à l'époque, il n'y aurait surement pas de
>> flowscript.
>>
>> Donc: on verra...mais pour le moment flowscript est le standard.
>
>
> J'espère bien que ça le restera, ou du moins que flowscript continuera
> d'exister. Ce serait dommage qu'il faille absolument apprendre Java pour
> profiter de la gestion des flows alors que le pauvre non-développeur que
> je suis s'en sort avec flowscript. Ce serait du coup dommage que Cocoon
> se coupe d'une population de non développeurs.


C'est exactement la réponse que j'allais faire à Nicolas !

Tout d'abord, Javascript n'est pas un "pseudo-langage". C'est un vrai 
langage de programmation, complet et normalisé (ECMA-Script). Il 
supporte les classes et l'héritage par prototype, et a des capacités de 
langage fonctionnel que n'a pas Java (en JS une fonction est un objet). 
La mauvaise réputation qu'il traîne est plutôt due aux 
"pseudo-implémentations" qui ont existé dans les "pseudo-navigateurs", 
ou plutôt la mauvaise implémentation du DOM.

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?). Puis est arrivé 
Chrisopher Oliver, qui nous a apporté une déclinaison du moteur Rhino 
(l'interpréteur Javascript écrit en Java par les gens de Mozilla) 
supportant les continuations.

Les continuations apportaient une simplification révolutionnaire du 
développement des applis web, et JS était un langage bien connu dans le 
monde du web. Bingo, tout ça colle très bien. Et le flowscript était né.

Nombreux sont les utilisateurs de Cocoon qui ne savent pas programmer en 
Java. C'est d'ailleurs une des forces de Cocoon que de permettre à des 
gens qui viennent plutôt du webdesign que de leur permettre de faire des 
applications complexes sans rentrer dans du codage pur et dure. Pour 
eux, Javascript est un bienfait. Mais nombreux sont aussi les 
utilisateurs de Cocoon qui viennent du monde Java/J2EE. Pour eux, 
programmer en Javascript est une hérésie.

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.

Javaflow et Flowscript ont donc des objectifs similaires, mais visent 
des publics très différents. Et contrairement à d'autre composants dans 
Cocoon qui ont eu leur heure de gloire et sont peu a peu passés de mode, 
ces deux implémentations du contrôleur vont à mon avis coexister pendant 
longtemps, puisque tous deux ont leurs défenseurs ardents.

Pour ceux qui n'ont pas encore plongé dans les joies des continuations, 
vous pouvez lire un article intéressant sur le sujet (en anglais) sur 
http://www-106.ibm.com/developerworks/library/j-contin.html

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:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message