« Une implémentation Beans Binding pour GWTMicrosoft dévoile un CMS Open Source »

Adresse de trackback pour cet article

Trackback URL (right click and copy shortcut/link location)

15 commentaires

  1. § Yann Schwartz said on :
    Bonjour Sami,

    Je pousserai ta métaphore de la bombe atomique. J'irai plus loin, NaCl (le nom rigolo de ce concept rigolo) c'est pas de la bombe atomique, c'est Tchernobyl. J'ai dû regarder mon calendrier pour vérifier qu'on était pas le premier avril. Ou un running gag dans slashdot. Mais non.

    Résumons:
    * Un véritable OS dans le browser. Euh, non, c'est un truc qui vérifie vaguement de l'assembleur, moins bien que ne le fait une JVM ou une CLR au hasard. Pas de scheduling de threads, pas de gestion de mémoire, pas d'interruptions, pas d'API. En gros si un OS c'est DOS, là oui, NaCl est un véritable OS.
    * Des super performances. Euh, non. Il y a un truc qui s'appelle le JIT qui permet de compiler dans un assembleur. En x86 ! en x64 ! sur ARM ! Et c'est dans une JVM ou une CLR ! De la bombe atomique ! Et Javascript avec V8, Tamarin, SpiderMonkey utilise des approches plus malines encore pour des performances tout à fait acceptables. Et ça sert à quoi de l'assembleur dans le browser au fait ? Ah oui, à faire tourner Quake et à faire un encodeur vidéo. Yawn. C'est vrai que ça manque les encodeurs vidéos en natif. D'ailleurs on n'arrive toujours pas à lire de la vidéo dans un browser. Il était temps que google se penche sur le sujet.
    * Un gain de productivité ENORME. Imaginez, vous pouvez faire du RIA en C ! Avec gcc (patché par Google) ! Tout ce que le C a récemment apporté à la productivité du développeur ! Tout le bonheur d'une gestion de mémoire moderne et sans souci, le plaisir de bénéficier d'une programmation dynamique, des bibliothèques pléthoriques, un multithreading aisé et naturel, des toolkits graphiques tous plus beaux et fonctionnels les uns que les autres. De la bombe atomique.
    * Une garantie de qualité comme tous les produits grand public de Google. Le célèbre google search et ses trous de sécurité à répétition ! L'ultime Picasa et ses mises à jour tous les dix ans ! Le fabuleux Chrome fabuleusement rapide pendant les dix minutes avant son plantage, multi-plate forme tant qu'on est en Win32 et sans add-ons parce que bon faut pas déconner on va pas permettre à AdBlock de bousiller notre unique source de revenus, la pub.

    Honnêtement, je ne comprends pas d'où sort ce truc. Un gag créé à la faveur du 20% d'un employé facétieux ? Ca me fait penser au compilateur .Net qui permettait de faire de l'asp.net en x86 qui compilait en IL pour compiler en x86 en JIT. Mais en moins rigolo. Ou alors c'est à la base d'un autre produit à sortir, un truc qui permettrait d'empêcher AdBlock de virer les pubs codées en dur dans les registres x86, ou euh, non, vraiment je vois pas.

    Pour finir j'ai bien rigolé en lisant le titre de l'article d'Ars Technica sur le sujet: "Safer than ActiveX". En anglais on appelle ça To damn with faint praise.
  2. § guillaume said on :
    *****
    Excellent article.
    Je partage parfaitement cette analyse, et comme toujours Google est là où on l'attends le moins :
    Il ne s'agit pas de communiquer sur un "Google OS", mais sur un "native client" , quand l'heure sera arrivée, Google saura démontrer son avancée technologique.
  3. § Bruno Leroux said on :
    Bonjour Sami,

    je pense que tu t'emballes un peu trop en voyant dans Native Client le chaînon manquant de l'offre Google. Pour les raisons de productivité que tu soulignes, Native Client ne peut être directement le socle de déploiement des futures applications RIA, si ce projet survit (c'est un projet de recherche et non en phase beta comme Chrome ou d'autres de Google) il permettra peut être à des éditeurs de faire fonctionner dans un navigateur un OS complet (Linux) ou encore une VM (Java, C#, ...).
    Mais dans ce cas pourquoi passer par le plugin Native Client ? Si on est mauvaise langue on peut dire que Native Client propose la même chose que les ActiveX ou les plugins Firefox, il y ajoute la SandBox et peut-être un jour une meilleure portabilité, mais ça n'a de sens que si on ne fait pas confiance aux fournisseurs or vue le modèle de développement proposé par NaCl ce n'est pas tout le monde qui développera des applications pour.

    L'argument des performances ne tient pas : le frein à l'adoption de Flash, Silverlight ou JavaFX n'est pas lié à leur capacité de calcul mais à l'éternel problème d'installation d'un plugin.

    Ca reste intéressant comme axe de recherche mais, à mon avis, c'est loin d'être un tsunami sur le monde du RIA.
    Et puis comme cette période de fin d'année est propice aux prévisions futuristes, je prévois l'abandon de ce projet courant 2010 :-) A moins que ne sorte rapidement un compilateur d'applications GWT vers x86 pour NaCl...

  4. § Sami® Email said on :
    Salut Yann,

    T'es très remonté contre Google dis moi :-)
    D'un point de vue technique, NC n'est qu'un brouillon de ce qu'il sera plus tard. Effectivement, on est à des années lumière d'un vrai OS. Mais l'idée est là. Je ne suis pas persuadé non plus que x86 soit la meilleure chose (notamment parce qu'un langage Assembleur est justement conçu pour ne pas être multi-plateformes). Mais c'est une migration en douceur vers le NC ultime.

    Pour tout te dire, il y a quelques années, j'avais rédigé un poisson d'avril pour DotNetGuru dans lequel j'évoquais la création d'une carte matérielle destinée à exécuter nativement du bytecode -> http://www.dotnetguru.org/articles/CILCard/PCDotNET.htm.

    J'y crois encore. Les architectures matérielles telles qu'elles existent aujourd'hui sont devenues totalement inadaptées aux runtime de plus haut niveau. Remplacer x86 par un jeu d'instruction XY (ByteCode .NET ou JVM) en l'intégrant directement au niveau CPU et Bus logiciel me semble plus intelligent que revenir 10 ans en arrière.

    Mais laissons un peu de crédit à NC. On verra bien s'ils nous font coder en C ;-)

    Sami

    ps: ceci dit j'ai bien rigolé sur la métaphore tchernobyl :-)
  5. § hgomez said on :
    ****-
    Content de voir que mon commentaire sur l'article précédent ait piqué ta curiosité.

    Restera la question du déploiement, du code natif qui tourne chez un client, c'est n'est pas pour demain la veille, surtout quand on voit le mal qu'on peut avoir à convaincre certains IT avec des applets Java (et oui ça arrive).

    Ceci étant dit, est-ce qu'on sera limité à C ou pourra t'on avoir d'autres langages notamment orienté objet ?

    Et on peut rêver qu'une implémentation GWT produise non seulement du Javascript mais aussi ce bytecode x86, qui serait utilisé à pleine vitesse en présence d'un navigateur équipé de NativeClient.

    A suivre en tout cas, et on comprend aussi pourquoi Google a voulu SON navigateur, parce qu'il sera le socle de ce Navigateur 2.0 (que dis-je 3.0).

    D'ailleurs pourra t'on encore parler de navigateur ou de navig-os ?



  6. § Sami® Email said on :
    Bruno,

    Comme Henri le précise bien, Chrome n'est rien de plus que le socle principal de cette plateforme. Imaginons que d'ici deux ou trois ans tout le monde adopte Chrome pour sa rapidité, son efficacité ou sa forte intégration avec les services Google (j'extrapole hein ;-)). Le problème du plugin ne se posera plus vu que nativement Chrome disposera de Native Client.

    Les autres enrageront de ne pas pouvoir faire tourner les magnifiques applications compatibles Chrome (pas Quake hein ;-)) et switcheront de navigateurs ou installeront le plugin NC .

    Encore une fois, aujourd'hui effectivement c'est du C bas niveau pas très beau. Mais ce n'est qu'un projet de recherche comme vous le soulignez tous. Si demain un langage objet complet fait son apparition et permet d'avoir des applications très riches dans le navigateur, les gens n'hésiteront pas longtemps.

    A terme, on peut même se poser la question de l'intérêt du navigateur, un PC capable de booter sur un micro-noyau contenant un Runtime NC minimal (cf projet http://www.thinkgos.com/ ou le projet Joli Cloud de Tarik Krim) suffirait.
    Je te l'accorde, pour l'instant techniquement Native Client n'est pas une technologie viable. Mais il faut la voir comme la première brique d'un ouvrage qui se veut bien plus immense.

    Attention, je constate, je ne dis pas que ça me fait plaisir :-). J'essaye d'avoir une vision froide et objective sur ce sujet qui instinctivement déchaîne les passions.

    Sami
  7. § Bruno Leroux said on :
    Très intéressante cette discussion.
    Je suis comme toi j'essaye d'analyser avec le plus de détachement possible (même si suis pro-java et pro-Google ;-))

    Si on pousse ta réflexion un cran plus loin, à savoir que nous sommes en 2011 et que Chrome représente 90% du marché : à quoi servirait Native Client puisque qu'il faudra de toute façon ajouter le support de langages de plus haut-niveau. Si Google continue sur GWT il serait plus simple d'intégrer à Chrome une VM (Dalvik?) plutôt que de mettre en avant Native Client.

    Native Client pourrait être un plus indéniable s'il ne nécessitait pas une recompilation des applications x86.

    Pour terminer tu as totalement raison d'orienter la réflexion sur la pertinence du navigateur à long terme (merci pour le lien vers thinkgos). Avec le développement de la virtualisation et du Cloud computing on peut imaginer des changements assez radicaux dans la façon d'envisager les RIA.

    On fera le point dans 5 ans :-)
  8. § Yann Schwartz said on :
    Re Sami,

    Content de voir que tu n'as pas pris mal ma ratiocination sur NaCl. Ca devait être l'air frais de l'hotel Ibis dans lequel j'étais exilé, ou le bruit de la Nationale devant mes fenêtres. Et puis je passe pour un idiot après mes vannes sur Chrome alors que l'animal vient de passer RC aujourd'hui.

    Cela dit, je ne vois pas trop l'intérêt du machin comme plate-forme utilisable par le développeur. Pour google, sûrement, ça leur permettrait de déployer leur applis maison en virant Java, Flash et Javascript (je ne compte pas Silverlight, pour une fois MS va devoir ratrapper un tel retard en part de marché que c'est vraiment pas gagné pour eux) de la pile logicielle du navigateur.

    Mais ce machin est tellement à rebours de toutes les tendances actuelles qu'on se demande ce qu'ils ont fumé.

  9. § Sami® Email said on :
    Il faut que tu arrêtes avec les Ibis Yann, ça rend sourd et catalyse la sénescence (ça c'est pour répondre à ton verbe "ratiociner" sorti d'on ne sait où )...
  10. § Christian Fauré Email said on :
    *****
    Très bon billet qui va direct aux bonnes questions. Merci Samy !
    Le gros focus de Google pour l'instant avec Native Client c'est la sécurité. A noter que les accès mémoire (les JUMP) sont gérés en White List.
    Pour en avoir discuté avec des googlers, cela fait quelques temps qu'ils rongeaient leur freins de ne pouvoir en parler avant la release alpha.
    Il faut également comprendre que NaCl est, dans un premier temps, utile pour Google en interne pour améliorer la gestion des ressources au sein de leur infrastructure.
  11. § Fred Cavazza said on :
    *****
    Bonsoir Sami,

    Même si l'explication est assez technique, je crois avoir bien compris la subtilité de NaCl (bien que n'étant pas développeur de formation et de profession), c'est donc un exploit car c'est la seul article valable sur le sujet que j'ai pu lire.

    Je pense que Flash est et restera la solution la plus performante pour faire des RIA, c'est à dire pour animer du contenu avec du son, de la vidéo, des transitions, des effets spéciaux... Pour les applications en ligne c'est différent car les différentes solutions (Flex, Silverlight, Curl, GWT...) proposent des avantages / inconvénients qu'il faut savoir apprécier en fonction du contexte.

    Mais à n'est pas mon propos. En fait je souhaiterais juste que quelqu'un me confirme qq chose à propos de NaCl : Jusqu'à présent les éditeurs de logiciels devaient développer pour 3 plateformes (Windows, Mac et Linux). Avec NaCl, est-ce que la promesse n'est pas de développer une seule fois (en C ou C++) pour les 3 plateformes ?

    Ce discours est d'autant plus intéressant pour les éditeurs qu'en plus le problème de la distribution / MaJ de leur logiciel est résolu avec le modèle SaaS (pas de distribution "physique" dans une boite, rien d'installer sur le poste client).

    Peut-être qu'au final ce NaCl est surtout une bombe atomique pour l'industrie logicielle plus que pour l'industrie du web (et plus précisément des RIA) où Adobe est encore loin devant ses concurrents.

    Est-ce que NaCl ne serait pas une brique supplémentaire (après Chrome et Google Desktop) pour asseoir la suprématie de Google qui petit à petit est en train de paralyser Windows, d'infiltrer Apple (cf. le CEO qui siège au board), d'asphyxier Sun et de tenir à l'écart IBM ?

    Bref je pense que le tableau d'ensemble (the Big Picture) est bien plus vaste que nous ne l'imaginions...

    /Fred
  12. § Sami® Email said on :
    Bonsoir Fred, bonsoir Christian,

    Merci pour vos retours, c'est vrai qu'il est difficile d'expliquer NaCL qui pour l'instant reste une infrastructure essentiellement technique.

    Pour répondre à ta question Fred, oui le but d'NaCl est de proposer un langage universel (l'assembleur x86) qui s'exécuterait sur les 3 plateformes d'une manière native, c'est à dire sans ajouter d'intermédiaire technique comme le ferait une VM Flash ou Java. Une sorte d'OS multi-plateformes.

    Sur le reste, c'est à dire la portée et les impacts stratégico-politico-techniques de NaCl, vous vous ferez tous les deux vos opinions respectives sur la chose (même si Fred, tu as finalement déjà un peu évoqué dans ton commentaires les principaux "risques" et "dangers" de la stratégie actuelle de Google).

    J'ajoute encore que j'ai une approche de pur technicien dans cet article. Dans les enjeux, NaCl dépasse le simple cadre d'un mini-OS. Evidemment. Mais je suis sûr que vous saurez tous commenter mieux que moi les effets pervers d'un monopole annoncé (hein quoi j'ai dis "monopole"?).

    Sami
  13. § rougeot said on :
    ****-
    Bon article.
    NB: mais l'avenir n'est pas là ...
    On parle de clouding, crée des widgets web sur son OS, crée des widgets sur le web, on crée un OS sur le browser; ... bref pourquoi a -t-on l'idée de faire tout ça ?
    Mais bon sang, mais c'est bien sûr, parce que l'OS ne fait pas son boulot tout simplement !
    Et oui, plutot que de développer un OS dans le navigateur, mieux vaudrait tout simplement supprimer le bon vieux navigateur qui n'a que trop vécu ...

    C'est à l'OS directement de nous proposer des services à distance ...
    Oui, une application WORD hébérgée en local ou au Japon devrait pouvoir s'éxécuter de la même façon ...

    Visualiser un PDF en local ou au Japon idem ...

    Accéder à un site web ... Eh bien un site web ne devrait être qu'une application comme une autre ...
    a l'extrême limite en HTML + AJAX, mais franchement si on devait faire un site web local, on ferait mieux non ?

    HTTP devrait en somme être un protocole invisible, que l'on n'utilise pas directement, mais sur lequel l'OS repose.

    Plus besoin d'AS,de serveurs, ...
    All in one: l'OS !

    Mais bien sûr Microsoft ne voit pas les choses comme ça ...
  14. § Nicolas F. said on :
    *****
    Article sympa, le seul qui m'ait aidé à y voir plus clair sur NaCL.

    Pour moi la vraie question est : Comment va-t-on pouvoir interfacer du JS/HTML avec le C en question ?

  15. § Thibaut Barrère Email said on :
    ****-
    Je suis d'accord avec le fait que ça va probablement être la pierre angulaire de quelque chose de très important...

    Pour l'anecdote, ça me rappelle par certains côtés iXalance (http://www.libsdl.org/projects/ixalance/), un loader de code qui permettait de charger et d'exécuter la même démo en code natif sous BeOS, WIN32 ou Mac.


Laisser un commentaire


Votre adresse email ne sera pas révélée sur ce site.

Votre URL sera affichée.
MédiocreExcellent
(Les retours à la ligne deviennent des <br />)
(Nom, e-mail & site Web)
(Autoriser les utilisateurs à vous contacter par un formulaire de message (votre adresse email ne sera not révélée.))
Contact. ©2010 by sami Jaber. blog tool / dedicated servers / authors.
Design & icons by N.Design Studio. Skin by Tender Feelings adapted by Sami Jaber/ SkinFaktory.