Microsoft rend son moteur JavaScript Chakra open source
Maintenant, direction Ubuntu et Node.js
Le 15 janvier 2016 à 09h30
3 min
Logiciel
Logiciel
Microsoft vient de rendre son moteur JavaScript Chakra open source en bonne partie. Désormais disponible sous licence MIT, il est accompagné des API qui en permettent l’intégration. La compatibilité avec Node.js et Ubuntu est par ailleurs déjà au programme.
Chakra est le nom de la machine virtuelle JavaScript d’Internet Explorer. Apparue avec la version 9, elle s’est enrichie jusqu’à devenir celle du navigateur Edge, uniquement disponible dans Windows 10. Chakra, comme le reste des moteurs dans Edge, a reçu des améliorations en partie liées aux demandes directes des développeurs. Mais Microsoft a décidé de passer au stade supérieur : l’ouverture des sources.
Tout le coeur de Chakra sous licence MIT
Depuis mercredi soir, une grande partie du code du moteur JavaScript est disponible sous licence MIT, sur le dépôt GitHub de l’éditeur. On parlera donc de ChakraCore, qui contient le moteur « de base », l’interpréteur, le parseur, le moteur JIT (Just In Time) et le ramasse-miettes. Ce bloc central est accompagné par les API JSRT Hosting, qui permettent globalement l’intégration du moteur dans à peu près n’importe quelle application Windows. Seule condition en fait, qu’elle s’exécute sur Windows 7 SP1 ou une version ultérieure.
Publier les sources sous licence MIT devrait permettre à Microsoft d’augmenter le degré de participation des développeurs. Le mouvement est exactement le même que pour la plateforme .NET, dont on rappellera qu’elle est désormais, elle aussi, open source en grande partie, tout comme Visual Studio Code. Or, cela permet non seulement aux développement de manipuler plus aisément les composants, mais également de proposer leurs propres améliorations. Et Microsoft d’indiquer que les demandes et propositions qui auront été acceptées seront répercutées sur le moteur Chakra, donc dans Edge et dans l’Universal Windows Platform (Windows 10).
Une ouverture prévue vers d'autres systèmes
Ce dont l’éditeur rêve réellement, c’est de rendre en fait son moteur indépendant et exploitable un peu partout, un peu à la manière du moteur V8 de Google. Dans sa feuille de route, Microsoft indique donc que les développeurs pourront s’exprimer sur les plateformes qu’ils souhaiteraient voir supportées. On sait en tout cas qu’Ubuntu sera la première, les autres dépendant a priori des demandes qui seront formulées.
Les participations des développeurs devraient permettre à Chakra d’être améliorée de toute part. La machine virtuelle pourrait ainsi gagner en performances et en ouverture vers d’autres composants. Microsoft indique d’ailleurs qu’une demande a déjà été envoyée à Node.js pour rendre ce framework JavaScript compatible avec Chakra. Node.js est en effet bâti sur le moteur V8 de Chrome, mais sa popularité rend la demande potentiellement très intéressante.
Un programme chargé sur les six prochains mois
Ceux qui le souhaitent peuvent récupérer les sources dès à présent sur le dépôt GitHub de Microsoft. Les composants sont directement exploitables, en vue par exemple d’une intégration dans une application, un jeu ou autre (la licence MIT est particulièrement souple).
On trouvera également la feuille de route complète, dont Microsoft précise qu’elle concerne les six prochains mois. Le programme semble bien chargé, et l’éditeur prévoit d’en publier une nouvelle en juin prochain.
Microsoft rend son moteur JavaScript Chakra open source
-
Tout le coeur de Chakra sous licence MIT
-
Une ouverture prévue vers d'autres systèmes
-
Un programme chargé sur les six prochains mois
Commentaires (70)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 16/01/2016 à 18h41
Le 16/01/2016 à 18h53
Le 16/01/2016 à 19h27
Oui exactement. En fait c un peu la raison pour laquelle ils ont cree des conteneurs. La solution de virtualisation classique est trop lourde. L accès aux ressources matérielles est complexe.
Le 16/01/2016 à 21h32
Le 15/01/2016 à 09h32
Microsoft a ouvert son Chakra ? " />
Le 15/01/2016 à 09h38
L’open source et le libre vaincront. " />
Le 15/01/2016 à 09h42
Du calme. Effet d’annonce d’abord, ensuite on rebranche le cerveau, et enfin on se dit que c’est pas innocent.
Le 15/01/2016 à 09h42
Ca faisait un petit moment qu’il y’avait pas eu de bond comme ça dans les moteur js…
Ca change de la periode où on nous sortait un nouveau graphique tous les mois pour nous presenter une nouvelle techno qui etait supposée doubler les performances….
Le 15/01/2016 à 09h50
Le 15/01/2016 à 09h51
" />
Le 15/01/2016 à 09h53
Et si ça se trouve, le chef de projet s’appelle Fabian LaRouche" />
Le 15/01/2016 à 09h57
Microsoft commence enfin à voir les bénéfices de l’Open Source :
Bref une très bonne décision, bravo Microsoft de prendre cette direction " />
Le 15/01/2016 à 09h59
Google qui a dû se résoudre à utiliser TypeScript, le langage de preprocessing fortement soutenu par microsoft pour mettre Angular met quand même MS en bonne position hein.
Le 15/01/2016 à 10h05
Peut être que Dart commence a leur faire de l’ombre ?!
Le 15/01/2016 à 10h09
Bonjour
Question pour ma culture personnelle : à quoi sert le garbage collector?
Le 15/01/2016 à 10h16
C’est le mécanisme qui se charge de libérer la mémoire quand des données ne sont plus utilisées (ou plutôt utilisables).
Dans un langage de programmation comme le javascript, le développeur n’a pas à dire quand une donnée n’est plus nécessaire (pas d’allocation mémoire/libération de manière explicite). Donc c’est quand cette donnée n’est plus utilisée nulle part (aucune réference dans le code) que le Garbage Collector se charge de récupérer la mémoire tout seul.
Le 15/01/2016 à 10h18
Le 15/01/2016 à 10h22
Au moins autant que Linux " />
C’est peut être que mon impression mais à peu près tout le monde s’en fout de Dart. Même Google a lâché l’affaire en mettant finalement TypeScript en avant avec Angular et en abandonnant l’idée de supporter Dart directement dans chrome.
Sinon pour cette action de Microsoft, pas sûr que ça change grand chose à part leur image. Ils restent maîtres à bord quant à l’avenir de ce moteur et j’ai du mal à croire qu’ils laisseront la communauté s’impliquer réellement. Enfin je suis peut être mauvaise langue, on verra bien.
Le 15/01/2016 à 10h29
Le 15/01/2016 à 10h33
Le 15/01/2016 à 10h33
Le 15/01/2016 à 10h45
Parce que c’est bien connu, les autres entreprises font de l’open source par pure bonté d’âme et générosité.
Le 15/01/2016 à 10h59
Windows 10, le dernier des Windows à l’ancienne?
Les rumeurs entres programmeurs (toulibre par exemple) se font de plus en plus insistantes sur l’arrivée de Linux pour les prochains OS de Microsoft dédiés aux particuliers.
ça nous chamboule!
Est-ce qu’il y a des unités de recherches de Microsoft qui travaillent sur Linux pour son utilisation pour les particuliers à long terme?
Le 15/01/2016 à 11h08
" /> Sacrées rumeurs.
Le 15/01/2016 à 11h09
J’ai l’impression que tu n’as jamais lu un de mes commentaire. Ou alors c’est de l’humour mais bon, on va dire que cela ne marche pas a tous les coups.
Le 15/01/2016 à 11h21
Le 15/01/2016 à 11h22
" />
Le 15/01/2016 à 11h33
Le 15/01/2016 à 11h37
Le 15/01/2016 à 11h42
Le 15/01/2016 à 11h50
Le 15/01/2016 à 11h58
Le 15/01/2016 à 12h00
Le 15/01/2016 à 12h24
Une bonne nouvelle dans le principe, car c’est toujours mieux que si c’était resté du code proprio.
Le plus gros reproche de V8 en l’état actuel est sa documentation absente, et les changements d’API tous les 4 matins (et ça a fini par en rebuter plus d’un)
Si cette alternative de Microsoft ne propose rien de vraiment tangible comme valeur ajoutée par rapport à ce qui existe déjà, j’ai du mal à voir pourquoi cette solution là serait privilégiée quand dans un projet on cherche à intégrer une VM javascript proposée par un tiers.
Le 15/01/2016 à 12h28
Bizarre Firefox me donne ça :
Content-Length: 148
Content-Type: text/html; charset=UTF-8
Date: Fri, 15 Jan 2016 12:26:44 GMT
Location: MicrosoftServer: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
Le 15/01/2016 à 12h31
Le 15/01/2016 à 13h11
Y’a rien d’incohérent la dedans. C’est juste morcelé.
Le 15/01/2016 à 13h14
V8 est pas forcément plus performant, ça dépend des cas d’utilisation, le but est justement d’offrir une alternative à ce qui est possible aujd. ils veulent avoir du .net sur mac et Linux nativement, avoir chakra qui tourne sur Ubuntu ( je pense que l’intérêt aujd n’est pas de porter edge complétement, mais pourquoi pas avoir du node-Chakra sur un linux sur azure , si ça consomme moins à perf égale, ça coute moins cher à héberger, ce genre d’intérêt là peu en attirer plus d’un, et si le support est officialisé par Node.js, tout les cloud node pourront proposer l’alternative, bref, la concurrence ça as du bon, comme d’hab :) )
Le 15/01/2016 à 13h20
Le 15/01/2016 à 13h35
Le 15/01/2016 à 13h35
Le 15/01/2016 à 14h09
Ça dépend vraiment sur quoi :https://arewefastyet.com/#machine=31
Le 15/01/2016 à 14h09
Je viens de tomber sur cet article, qui m’apprend deux choses:
Le 15/01/2016 à 14h17
Ils ont fumé quoi ? ou alors par prochain OS ils parlent d’un truc dans 10-15 ans ?
Le 15/01/2016 à 14h22
Pour le coup ton lien ça montre bien que Chakra est au moins aussi performant soit plus performant que Chrome dans la Majorité des tests ( seul Chrome sous OSX lui met 25% sur un test) ( dommage qu’il n’y ai pas de chrome Linux dans le test )
Le 15/01/2016 à 14h42
Le problème c’est qu’on a un qui est mono contre du multi. Quand que suivant le système il y a parfois beaucoup de différence sur un même moteur. C’est plus simple optimiser sa propre plate-forme. Moi j’attends de voir comment ça va évoluer. Après personnellement le voie que cela prend me plaît bien. On va finir par avoir une concurrence un peu plus saine.
Le 15/01/2016 à 15h10
concurrence un peu plus saine ?! avec Microsoft ? wait & see.Cette annonce, c’est juste un bon coup de buzz et de PR qui entre dans le plan global de reconquête des développeurs. C’est une brique d’un ensemble plus grand, il ne faut pas juste voir que la brique.
Le 15/01/2016 à 15h23
N’empêche, ça fait bien marrer de voir ça ! Qui l’aurait prédit il y a quelques années ?
Le 15/01/2016 à 15h49
Le readme du repo GitHub du fork de node par Microsoft:
To enable building and running Node.js with the Chakra JavaScript engine, we
created a V8 API shim on top of the Chakra runtime hosting API
Autant dire que c’est plus proche du patch crado pour faire rentrer leur moteur aux forceps, plutôt qu’une adaptation “aux petits oignons”.
Le 15/01/2016 à 16h24
?
Le 15/01/2016 à 17h42
Ca reste du chinois pour les developpeurs random tel que nous. Ah en plus 10K de lignes pour un simple fichier C++… j’en ferais pas autant en toute une vie pour ce language la, et encore faut que ca compile " />
Le 15/01/2016 à 17h58
Tu es naïf ou tu le fais exprès (je sais que tu fais souvent du second degré) ! " />
En tout cas je préfère la vision de The Register, elle me semble nettement plus réaliste…
http://www.theregister.co.uk/2016/01/14/microsoft_wants_you_yes_you_to_write_bits_of_windows_10_for_free/
(et les réactions sur le forum aussi !)
J’ai voté. " />
Le 15/01/2016 à 18h11
Plus réaliste, ou plutôt plus newsaclic … " />
Sinon les résultats du sondage sont intéressants aussi, la réponse la plus donnée est “I have no problem with this whatsoever” (juste devant “About a trillion years after the heat death of the universe” " />)
Le 15/01/2016 à 18h30
Oui, les deux opposés arrivent en tête ! " />
Comme quoi il faut de tout pour faire un monde.
Après (pataper NxI) il y a les journaux qui relayent la comm des attachés de presse de Redmond, et TheReg qui exprime un avis, c’est leur ligne éditoriale.
(Les Anglais ne sont pas toujours tendres avec leurs “cousins” U.S.)
Le 15/01/2016 à 18h44
Le 15/01/2016 à 19h05
Ca n’a juste aucun intérêt … Migré l’écosystème d’un noyau à un autre est un travail titanesque qui génèrera forcement des incompatibilité …
Quitte à le faire autant que ca soit pour être paré pour le futur …
Or le noyau Linux ou le Kernel NT sont des noyaux monolithiques écrit en c/c++ (ce qui implique des failles potentiel type buffer-overflow vue que ce ne sont pas des langage memory safe ….). De plus ces noyau ont été crée sur des concepts fondée sur l’informatique des années 70 (la mémoire dans les PC/processeur était lente et en petite quantité, les processeurs était peu puissant => il était à l’époque plus simple d’isolé les process matériellement en créant un Contexte d’exécution nécessitant un vidage de la mémoire du proco & co pour chargé le contexte d’un autre processus que de faire une isolation logicielle. Sauf qu’aujourd’hui un changement de contexte est juste un énorme goulot d’étranglement pour les perfs).
Passé de NT à Linux n’apporterait pas plus de performance, pas plus de sécurité … seulement de grosse incompatibilité …
Depuis 10 ans Microsoft planchait sur un OS en partant d’une feuille blanche complète (sans se soucier de la compatibilité avec l’écosystème actuel) afin de partir sur des bases saines d’aujourd’hui où la mémoire est abondante, les CPU sont multi-core etc … C’était le projet Singularity puis Midori (liens NXI1 NXI2, NXI3, Blog d’un des responsable du projet (ses derniers post très technique sont consacré à Midori). Cependant la grande incompatibilité avec l’écosystème actuel (seul les nouvelles Apps WinRT/Metro/Universal Apps étaient plus ou moins pensé pour ce type d’OS) a sonné le glas de ce projet …
Aujourd’hui Microsoft partirait plus sur une réutilisation du langage utilisé sur Midori, le M# (la productivité/sécurité du C# avec les perfs du C/C++) pour réécrire petit à petit le noyau de Windows (cf Wavefront, Linkedin)…
Fin bref, y’a les rêves des fanboys Linux et y’a la réalité technique, économique …
Le 15/01/2016 à 19h55
Le 15/01/2016 à 22h05
Je pense que voir Microsoft passé complément à Linux est juste un fantasme de certains…
Je pense plus que d’ici 10⁄15 ans (ou moins), une grosse partie des Windows Moderne (Windows Nano/Windows Phone) sera open source…
La partie Win32/GDI restera sûrement closed source pour garder l’avantage de la compatibilité avec les applications Win32 legacy du monde de l’entreprise… Mais pour tout le reste Microsoft pourrait se créer une énorme communauté très facilement.
Le 15/01/2016 à 23h57
Ce n’est pas parce que ce n’est pas incompatible que c’est ce qui va se faire ou que c’est ce qui est prévu.
Pouvoir != vouloir.
Le 16/01/2016 à 09h32
Le 16/01/2016 à 10h40
C’est comme quand on a vu un jeu Sega chez Nintendo, personne y aurait cru dans les années 90.
Le 16/01/2016 à 10h43
La question est plutôt quel intérêt pour Microsoft de passer son écosystèmes à Linux ?
Y’a une différence entre utiliser Linux pour créer un nouveau produit très spécifique (switch virtuel pour le cloud) et devoirs adapté l’existant pour faire une migration qui n’apporte rien in fine…
Le noyau Linux et NT sont de la même famille avec globalement les mêmes forces et faiblesses.. Le noyau Linux est peut être plus modulaire mais NT c’est affiné avec le projet MinWin… Aujourd’hui un Windows Nano server n’est pas tellement plus gros qu’une distribution Linux de serveur.
NT est compatible x86, ARM32 et l’ARM64 sera sûrement annoncé à la build dans 2 mois..
Fin bref l’intérêt est juste nulle…
Le 16/01/2016 à 11h47
Mais quel serait le but ?
Le 16/01/2016 à 12h36
Le 16/01/2016 à 12h58
Le 16/01/2016 à 13h08
MS ne veut pas que ses apps universelles soient compatibles avec d’autres OS, mais dispos sur tous les appareils tournant avec leur même OS unifié, c’est différent.
Quant au POSIX : “Par exemple, Microsoft Windows NT 3.x et 4 sont certifiés conformes à POSIX.1:1990, ce qui est suffisant pour des applications POSIX relativement simples. Cependant, des programmes plus complexes ont besoin d’une compatibilité plus large. Des logiciels supplémentaires tels que Services for UNIX ou Cygwin peuvent apporter à Windows ce niveau de compatibilité. UWIN offre une compatibilité POSIX[5], y compris sur les chemins de fichiers.”
Wikipedia
Le 16/01/2016 à 13h18
Le 16/01/2016 à 14h34
A noter que Microsoft peut très bien migrer sous une norme POSIX complète tout en ayant son propre noyau Unix.
Car après tout, s’il y a de grandes familles avec les Linux et les BSD (dont est issu Mac OS X), le reste des Unix ont un noyau disposant de leur propre implémentation de la norme. Et ils ne sont pas tous open-source, bien au contraire.
Exemple : AIX (et même maintenant les iSeries partagent une base Unix), HP-UX, Solaris…
En tous cas, au vu de la mutation que Microsoft démontre progressivement, je ne vois rien de déconnant à ce qu’ils migrent vers une norme commune permettant d’éviter de faire de Windows un environnement spécifique.
Comme l’a évoqué brazonyma ci-dessus, il y a déjà eu une grande mutation du hardware vers le software.
Le nouvelle grande mutation, c’est effectivement celle du software vers le service.
Déjà avec Azure on constate que Microsoft héberge une grosse partie d’instances basées sur du Linux, ils ont même développé une distribution en ce sens. Clairement, ils ont tout intérêt à maximiser l’étendue de leurs technologies plutôt que de rester ancrés dans leur pré carré et leur petite bulle et de finir en marginaux.
Ca ne me paraîtrait pas déconnant qu’à force ils portent leurs grosses cartouches du genre IIS, AD, SQL Server, etc, sur des systèmes concurrents pour pouvoir continuer de vendre du software et du service à défaut de vendre l’environnement d’exécution.
Le 16/01/2016 à 16h29
Ce n’est pas parce windows reposerait sur une base posix que toutes les applications seraient compatibles.
OSX repose peut être sur une base posix mais la plateforme de développement c’est du cocoa et elle n’a strictement rien à voir avec Linux. C’est la même chose entre android et Linux où les deux plateformes de développement sont totalement différentes.
De plus comme expliqué plus haut le noyau NT intègre déjà un sous système posix depuis longtemps.
Quand au passage sur un système linux je partage l’avis d’arno53 . une telle décision créerait de gros problèmes de compatibilités pour une plus value mineure. Sans compter que tous les appareils actuels sous Windows n’ont pas forcément un driver sous Linux.
Arnaud a parlé du projet WaveFront dont le but serait de passer graduellement le code Windows dans un nouveau langage safe.
Il y a un autre aspect je l’avais déjà expliqué par le passé. Au départ Microsoft a travaillé sur un os radicalement différent (Midori) mais aussi totalement incompatible avec Windows. C’est pour ça qu’ils ont crée le projet drawbridge. J’ai expliqué tout plus en détail sur mon blog. Mais l’idée de départ est de séparer totalement la plateforme applicative du système hôte. Au final on devrait avoir une sorte de méta os super leger écrit totalement en langage safe qui fait tourner des conteneurs Windows(voir de différentes versions) mais aussi des conteneurs linux ou android.
Au final Microsoft ne passera pas sous un os linux mais au final on devrait se retrouver avec des avantages en terme de compatibilité applicative sans les ennuis qu’on aurait pu avoir avec votre solution “radicale”.
Pour redstone côté serveur il y aura des conteneurs. Coté client apparemment ils bossent sur tout un tas de projets autour des conteneurs(j’avais déjà posté un lien linkedin).
Je pense que nadella veut vraiment plus s’ouvrir à Linux et au libre. Ces solutions techniques rendent cela possible :)
Le 16/01/2016 à 17h24