Google ouvre le Web aux applications natives
PNaCl permet d'exécuter le code C et C++ dans le navigateur, allez-vous adopter la technologie ?

Le , par Hinault Romaric, Responsable .NET
Allez-vous utiliser PNaCl ?
Après plusieurs années de développement, Google publie en version finale sa technologie Portable Native Client (PNaCl), qui aura droit à son lot de défenseurs et de détracteurs.

PNaCl est une version actualisée de Native Client, dont le but de permettre d’exécuter des applications natives C et C++ dans le navigateur.

Selon Google, NaCl « apporte les performances et le contrôle de bas niveau du code natif aux navigateurs Web modernes. »

Avec cette technologie, les développeurs pourront exploiter directement la puissance du CPU et GPU pour créer des applications Web robustes de retouche photo, mixage audio, modélisation et jeux 3D.


PNaCl permet de compiler le code C et C++ en bytecode qui est encapsulé dans un fichier « exécutable portable », qui peut être hébergé sur un serveur Web comme n’importe quel site Web. Lorsque Chrome accède au fichier, il récupère et convertit le fichier exécutable dans une architecture de code machine optimisé directement pour le périphérique sur lequel le navigateur est exécuté.

Avec cette approche, Google précise que le même code sera compatible, sans recompilation avec les architectures x86, ARM et MIPS.

PNaCl a déjà été intégré à la version finale de Chrome 31. La technologie est open source et Google espère que les autres éditeurs vont l’intégrer dans leurs navigateurs. Les développeurs peuvent également créer des applications PNaCl compatible avec d’autres navigateurs via l’API JavaScript Pepper.js.

PNaCl n’est pas sans rappeler ActiveX de Microsoft, qui avait soulevé de gros problèmes de sécurité de part sa forte intégration avec le système d’exploitation.

Mais, Google se veut rassurant : PNaCl ne sacrifiera pas les avantages de sécurité et la portabilité des applications Web.

Le site de projet

Télécharger le SDK de PNaCl

Source : Google

Et vous ?

Que pensez-vous de cette technologie ? Pour ou contre ? Pourquoi ?

Le code natif doit-il rester dissocier du Web ?

PNaCl va-il soulever de nouveaux problème de sécurité ?

Etes-vous prêt à créer des applications en utilisant la technologie ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de abriotde abriotde - Membre éprouvé https://www.developpez.com
le 13/11/2013 à 14:22
Il s'agit en fait d'une version plus moderne et performante des applet JAVA ou de Flash. C'est bien, même très bien, cela permet plus de souplesse... mais je doute que la technologie arrive a percer. L'avenir le dira.
On peut regretter de ne plus disposer d'applis héberger sur l'ordinateur et donc d'être de plus en plus dépendant du réseau mais c'est un autre débat.
Avatar de I_Pnose I_Pnose - Membre chevronné https://www.developpez.com
le 13/11/2013 à 14:34
PNaCl n’est pas sans rappeler ActiveX de Microsoft, qui avait soulevé de gros problèmes de sécurité de part sa forte intégration avec le système d’exploitation.
C'est un peu ce que je me disais en lisant l'article; ça sent l'ActiveX remit au gout du jour (avec tout ce que ça implique).

Pour ma part, je suis partagé; oui ça permet certainement des choses sympas, mais quid de la sécurité du bousin ?
Avatar de ptah35 ptah35 - Membre éclairé https://www.developpez.com
le 13/11/2013 à 14:54
Je ne sais pas si je vais utiliser cette technologie dans un future proche, mais je la trouve intéressante.

Cependant, il me semble important de noter que cette technologie ne peut en aucun cas être rapprochée des ActiveX. En effet, il n'y a pour moi pas de question, du code natif à la manière des ActiveX n'a rien à faire dans un navigateur Web. Mais PNaCl ne va pas dans ce sens. Je pense que, de part les contraintes imposées aux exécutables et même au niveau du mode d'exécution (il faut distinguer PNaCl de NaCl) si l'on peut le rapprocher de quelque chose d'existant, se serait plutôt d'une machine virtuelle Java.

Je ne pense pas que PNaCl puisse soulever beaucoup de nouveaux problèmes de sécurité, je pense que l'on va rencontrer essentiellement les même que ceux que l'on a rencontrés avec la JVM; ces problèmes, cependant, ne doivent pas être ignorés ni minimisés, l'exploitation d'une faille dans de tels systèmes peut être difficile à détecter et peut avoir de lourdes conséquences.

Pour finir, ce qui me paraît le plus intéressant avec le PNaCl, c'est qu'il ne se limite pas au C/C++. Je pense que cela prendra encore du temps pour que les différents éditeurs s'accordent sur une telle technologie, mais je pense que c'est bien vers un langage de bas niveau indépendant de l'OS et de l'architecture comme le bitcode qu'il faut se diriger pour le développement de la partie cliente des application Web.
Avatar de Francis Walter Francis Walter - Expert éminent sénior https://www.developpez.com
le 13/11/2013 à 15:15
Assez intéressant!
L'avantage premier d'une telle technologie est le fait que x permettra aux développeurs de se spécialiser uniquement dans un langage!
Par exemple, un développeur C++ n'a pas besoin de se ressourcer en PHP, Java avant de concevoir une application Web!!
La question que je me pose est si les ressources nécessaires sont minimisées et si les résultats seront exactement ceux attendus
Avatar de Sirus64 Sirus64 - Membre éclairé https://www.developpez.com
le 13/11/2013 à 15:15
Que pensez-vous de cette technologie ? Pour ou contre ? Pourquoi ?
Ca sent effectivement l'activex ou le plugin...

Le code natif doit-il rester dissocier du Web ?
Le code n'est pas natif d'après ce que dit l'article. De plus tout pousser vers des VMs.

PNaCl va-il soulever de nouveaux problème de sécurité ?
Dès qu'on ouvre une porte même avec le meilleur cadre au monde, il y a un risque.

Etes-vous prêt à créer des applications en utilisant la technologie ?
Non : je ne serais pas porteur dans ce genre de technologie. JavaScript fait la même chose : le code est compilé et exécuté. La sécurité a déjà été testé. Des optimisations existes déjà. Les futures versions vont en permettre plus. JavaScript fonctionne déjà sur tous les navigateurs.

De plus il existe déjà des compilateurs C/C++ et autre vers LLVM interprétable en JavaScript (voir aussi asm.js).

Après c'est sur que si l'industrie se tourne vers ca, la question ne se posera plus, on sera simplement obligé de migrer. Mais je pense que c'est mort dans l'oeuf.
Avatar de DonQuiche DonQuiche - Expert confirmé https://www.developpez.com
le 13/11/2013 à 17:08
Je rejoins les conclusions de ptah35 et comme lui je ne comprends pas cette comparaison avec ActiveX. Ce n'est pas du code natif, c'est un bytecode, par ailleurs a priori assez simple à sécuriser. Et c'est parfait car c'est justement d'un bytecode dont nous avions besoin pour remplacer javascript.

Pour l'heure je ne vais pas l'utiliser personnellement puisque cela reste circonscrit à Chrome mais je trouve cela très intéressant, je vais me renseigner sur le support de dotnet par-dessus NaCl (Xamarin propose ça) et je vais peut-être le supporter au niveau d'un de mes produits. Enfin j'espère de tout coeur que ce sera un jour standardisé.
Avatar de DonQuiche DonQuiche - Expert confirmé https://www.developpez.com
le 13/11/2013 à 17:17
Citation Envoyé par Sirus64 Voir le message
JavaScript fait la même chose : le code est compilé et exécuté. La sécurité a déjà été testé. Des optimisations existes déjà. Les futures versions vont en permettre plus. JavaScript fonctionne déjà sur tous les navigateurs.
Le problème de l'optimisation de javascript c'est qu'il faut des analyses statiques à la complexité rapidement croissante (O(n^3) si je ne m'abuse), à réaliser dans un temps toujours plus court (pour démarrer plus vite et économiser la batterie) sur des périphériques moins puissants qu'avant (mobiles).

Or d'une part on ne progressera plus (toutes les évolutions récentes des moteurs favorisent tel ou tel site au détriment des autres et il y a un plafonnement global des perfs) et d'autre part Javascript est aujourd'hui un facteur limitatif pour de nombreuses applications et explique en partie le triomphe des applications natives. Et ne parlons même pas du code écrit dans un autre langage et compilé en javascript, ce qui introduit une taxe supplémentaire sur les performances, tout ça pour recréer l'information supprimée lors de la compilation en javascript.
Avatar de koyosama koyosama - Membre éprouvé https://www.developpez.com
le 13/11/2013 à 17:46
Je suis impatient d’utiliser cette technologie.
Je trouve Javascript assez limité sur certains points, surtout que tous les navigateurs n'implémentent pas forcément les nouvelle norme.

Ensuite je comprend pas l’intérêt de faire du C / C++, le recompilé en javascript pour qu'au final le navigateur le retranscrit.
Autant faire du C / C++ directement.

Tant qu'il y a une protection sur les abus, il y a aucun problème.
Avatar de Paul TOTH Paul TOTH - Expert éminent sénior https://www.developpez.com
le 13/11/2013 à 18:13
Citation Envoyé par Hinault Romaric Voir le message

Que pensez-vous de cette technologie ? Pour ou contre ? Pourquoi ?
HTML/JS/CSS me sort par les yeux, donc je suis favorable à d'autres solutions

Citation Envoyé par Hinault Romaric Voir le message

Le code natif doit-il rester dissocier du Web ?
ce n'est pas du code natif mais un sous ensemble du bytecode LLVM

Citation Envoyé par Hinault Romaric Voir le message

PNaCl va-il soulever de nouveaux problème de sécurité ?
je vois de plus en plus de solutions tourner autour de LLVM, la faille et probablement là, quand tout le monde utilisera LLVM et qu'on trouvera une faille dans LLVM, tout sera vulnérable d'un coup.

Citation Envoyé par Hinault Romaric Voir le message

Etes-vous prêt à créer des applications en utilisant la technologie ?
non, pas tant que ça sera uniquement du C/C++
Avatar de Lutarez Lutarez - Membre chevronné https://www.developpez.com
le 13/11/2013 à 18:52
Citation Envoyé par Hinault Romaric Voir le message
Que pensez-vous de cette technologie ? Pour ou contre ? Pourquoi ?
Je suis plutôt pour, mais seulement si celle-ci vient à se généraliser à tous les navigateurs. Je ne suis personnellement pas un grand fan du standard W3C et de leur façon d'aborder les choses. De plus, j'ai toujours pensé qu'un peu de "concurrence" au sempiternel trio HTML/CSS/JS ne ferait pas de mal à l'innovation.

Citation Envoyé par Hinault Romaric Voir le message
Le code natif doit-il rester dissocier du Web ?
La frontière entre natif et web est devenue réellement floue ces dernières années. On utilise de plus en plus des technologies auparavant purement "web" pour des tâches autrefois réservées au natif, alors pourquoi l'inverse poserait-il un problème ? Moi qui ai toujours préféré le natif, je vois vraiment ce genre de techno comme une réelle avancée.

Citation Envoyé par Hinault Romaric Voir le message
PNaCl va-il soulever de nouveaux problème de sécurité ?
Certainement, mais peu importe les solutions, il y aura toujours des failles même dans le système le plus sécurisé.

Citation Envoyé par Hinault Romaric Voir le message
Etes-vous prêt à créer des applications en utilisant la technologie ?
Dans l'immédiat non, pour la simple et bonne raison que cette technologie n'est supportée que par un seul navigateur. Si celui-ci venait à se démocratiser, pourquoi pas. En plus, Mono travaillerai sur un port depuis un moment déjà
Contacter le responsable de la rubrique Accueil