Developpez.com

Le Club des Développeurs et IT Pro

Google sort « Artic Sea »

Un SDK pour faire tourner du code natif dans Chrome

Le 2011-02-21 08:25:53, par Gordon Fowler, Expert éminent sénior
Google voit le futur des applications en 100 % Cloud, ou presque. C'est donc tout naturellement qu'il décide de promouvoir une technologie que d'autres (Mozilla ou Opera) goutent assez peu : permettre d'exécuter du code natif (lié à une machine donnée donc), à travers le navigateur.

L'intérêt pour Google est assez clair. Les applications Web (ou une partie des applications Web) pourront par exemple être écrites en C, mixant ainsi des technologies Web comme JavaScript avec d'autres langages.

En sortant son Native Client (dit « NaCl »), baptisé « Artic Sea » et intégré à la beta de Chrome 10 disponible depuis vendredi dernier, Google a passé une étape supplémentaire. Une étape qui concerne au final plus Chrome OS (le futur système d'exploitation de Google qui s'appuie exclusivement sur les applications Web et les applications distantes) que le navigateur Chrome lui-même.

L'activation de NaCl dans Chrome 10 se fait dans l'onglet "about:flags".

Pour intégrer NaCl, Google a également travaillé pour améliorer l'interface de plug-in : Pepper (dit « NPAP »), issu du projet Netscape.

NaCl connait aussi une version portable (Portable Native Client, ou PNaCl) qui permet de compiler du code en langage machine bas niveau. L'intérêt est d'étendre le champs d'application de la technologie. NaCl est en effet aujourd'hui cantonné aux plateformes x86 (32 et 64 bits). Avec PNaCl potentiellement toutes les plateformes sont visées. Et donc les architectures ARM, plébiscitées pour les terminaux mobiles en pleine expansion.

Google met aujourd'hui l'outil Native Client à la disposition des développeurs (et pas simplement aux développeurs Web) après avoir amélioré la sécurité en ajoutant un bac à sable dans lequel tourne NaCl (en plus du bac à sable inclus dans le client) et le mécanisme de mises à jour.

Le SDK et des démos de NaCl sont disponibles sur cette page

Source
  Discussion forum
14 commentaires
  • jmnicolas
    Membre éprouvé
    Je trouve agaçante cette obsession du tout navigateur, plutôt que du développement natif.

    Un navigateur n'a jamais été prévu pour ça et ce genre de bricolages ne va que compliquer, et rendre vulnérable Chrome (et fragmenter les navigateurs entre ceux qui pourront exécuter du code natif et les autres).

    Surtout qu'on arrivera jamais à la hauteur d'un développement natif.

    Enfin bon, le Cloud on nous le fera avaler de gré ou de force quitte à faire un retour en arrière au niveau fonctionnalités / ergonomie.
  • YannPeniguel
    Membre éprouvé
    En fait, pour résumer, ils ont réinventé ActiveX
  • gwinyam
    Membre chevronné
    Pour moi, il serait plus intéressant de revoir en profondeur les standards actuels que sont HTML-CSS et surtout JS pour donner de possibilités/libertés aux webapps. Les langages serveurs existants sont déjà amplement suffisants pour faire ce qu'on a envie. Il est dommage de rajouter une nouvelle couche à cet ensemble déjà bien épais alors qu'il "suffirait" de réviser l'existant.
  • air-dex
    Membre expert
    Ce "Artic Sea" parait être une belle porte à virus.
  • notia
    Membre confirmé
    Envoyé par H.Pascal
    Google met les moyens en place pour avoir un large eventail de développeurs pour leurs systèmes, y a pas longtemps l'outil de développement NDK pour Android qui permet d'utiliser du code natif, maintenant "Artic Sea" pour Chrome.
    Cela insitera surement des développeurs qui jusque là ne s'étaient pas encore lancés, à créer des web apps. Après c'est là justement que leurs performances pourront réellement se rapprocher de celles des apps desktop, ce que je pense aussi notamment, la 3D, pouvoir créer un jeu ou une application utilisant OpenGL ES en C, ça c'est bien ça

    Ben ouais, Bravo , Du coup à quoi cela sert-il
    - de s'emmerder à construire des standards (=> HTML5)
    - critiquer Flash et Silverlight
    - de crier "à bat" ie et ses activex
    pour pondre par derrière son propre sdk.

    Apres les appli spécial Iphone, spécial Android ou encore spécial WP7, on va rentrer dans l'air des appli spécial Chrome.
    Bravo.
  • Mobius
    Membre confirmé
    Ca m'étonne que personne n'a encore fait remarquer que l'adoption de "NaCl" risque d'être salée.
  • H.Pascal
    Membre régulier
    Google met les moyens en place pour avoir un large eventail de développeurs pour leurs systèmes, y a pas longtemps l'outil de développement NDK pour Android qui permet d'utiliser du code natif, maintenant "Artic Sea" pour Chrome.
    Cela insitera surement des développeurs qui jusque là ne s'étaient pas encore lancés, à créer des web apps. Après c'est là justement que leurs performances pourront réellement se rapprocher de celles des apps desktop, ce que je pense aussi notamment, la 3D, pouvoir créer un jeu ou une application utilisant OpenGL ES en C, ça c'est bien ça
  • Marmot
    Membre habitué
    Envoyé par YannPeniguel
    En fait, pour résumer, ils ont réinventé ActiveX
    Ah bon, ActiveX était multiplateforme Windows/MacOS/Linux ?
  • nicorama
    En attente de confirmation mail
    Envoyé par notia

    Apres les appli spécial Iphone, spécial Android ou encore spécial WP7, on va rentrer dans l'air des applis spécial Chrome.
    Bravo.
    Si ce n'est que le développement avec GWT permet de compiler de façon optimisée selon le navigateur.
    Avec un seul développement Java-like, on pourra donc créer du code spécifique à Chrome ultra-rapide, sans effort supplémentaire.
  • YannPeniguel
    Membre éprouvé
    Envoyé par nicorama
    Si ce n'est que le développement avec GWT permet de compiler de façon optimisée selon le navigateur.
    Avec un seul développement Java-like, on pourra donc créer du code spécifique à Chrome ultra-rapide, sans effort supplémentaire.
    A ce que j'ai compris, cela n'a rien a voir avec GWT ni même java, il s'agit de fichiers exécutables natifs que tu intègre à tes pages Web coté client.

    GWT est un framework Java coté serveur pour le développement Web.

    Java est un langage de programmation compilant pour une machine virtuelle, ce qui est encore différent. On peut faire des fichiers exe natifs avec Java si on compile avec GCJ, mais c'est une pratique peu répandue, encore moins dans le cadre du Web.

    Si tu regardes les exemples sur le site fourni dans la news, ils les font en C++. Le SDK ne supporte que le C et le C++, pour le moment.