Microsoft donne un sérieux coup d’accélérateur à sa technologie .NET
De l'open source ? Du code natif ?
Le 04 avril 2014 à 16h20
5 min
Logiciel
Logiciel
Même si les annonces concrètes de produits sont une part importante de la conférence BUILD qui se tient actuellement à San Francisco, Microsoft fournit des informations plus discrètes, car techniques, mais dont l’impact est potentiellement plus important. C’est le cas de tout ce qui touche à la plateforme de développement .NET, avec notamment la création d’une fondation open source et la présentation d’un nouveau compilateur qui jouera certainement un grand rôle dans l’avenir.
Une fondation .NET centrée sur le code open source
La création d’une fondation .NET n’était pas un évènement particulièrement attendu. Elle représente pourtant une étape significative dans le cycle de vie de la plateforme car une grande partie des éléments qui la composent passe en modèle open source. La fondation comprend déjà des représentants de Microsoft, GitHub et Xamarin et, comme dans le cas de Mozilla, servira à assurer la gouvernance globale de la plateforme.
En l’état, la fondation .NET débute son existence avec un total de 24 projets. Parmi eux, 18 proviennent de Microsoft, et on retrouve parmi les plus importants tout ce qui touche à ASP.NET ou presque, WinJS ou encore le nouveau compilateur Roslyn, qui porte désormais l’appellation officielle « .NET Compiler Platform ». Notez que Roslyn en particulier sera disponible sous licence Apache 2.0. Six autres projets proviennent de Xamarin, notamment MimeKit et MailKit. Pour rappel, Xamarin est une entreprise produisant des outils qui permettent aux développeurs de créer des applications iOS et Android depuis Visual Studio avec la plateforme .NET. Son directeur technique, Miguel di Icaza, est d’ailleurs l’un des membres fondateurs de la fondation .NET.
Certains seront sans doute étonnés de voir Microsoft basculer des pans entiers de sa technologie vers des licences open source, mais la firme change de fusil d’épaule. Il s’agit pour simplifier d’un choix pouvant avoir un impact concret sur le taux d’adoption de ses technologies. Comme nous l’indiquions précédemment dans l’actualité sur Office tactile pour Windows, le monde applicatif devient plus important pour Microsoft que le système d’exploitation lui-même. La diffusion des technologies menant aux applications est donc une étape cruciale, autant que le modèle de développement, devenu par ailleurs « universel ».
Un compilateur .NET pour produire du code natif
Si la fondation sera certainement importante, des annonces plus techniques ont également été réalisées. C’est le cas de la préversion d’un nouveau compilateur baptisé « .NET Native » qui, comme son nom l’indique, est capable de compiler un code natif depuis un projet .NET. Cette préversion peut être installée sur un Visual Studio 2013 équipé de la Release Candidate de l’Update 2. Le statut non finalisé du projet limitera d’ailleurs les plateformes supportées au x64 et à ARM, le support du x86 devant arriver plus tard, ainsi qu’au langage C#.
Contrairement à une compilation .NET classique, le résultat est une véritable application native, avec tout ce que cela implique. Microsoft annonce des temps de démarrage jusqu’à 60 % plus rapide, une conséquence logique puisque le framework .NET n’a pas besoin d’être chargé, et aucune machine virtuelle n’est créée. Autre conséquence, l’empreinte mémoire est d’autant réduite. L’objectif global est donc de garder la productivité du C# tout en permettant les performances du C++.
Le développement du projet reste sous la houlette de .NET avec les avantages qui sont liés à ce type de plateforme. Il s’agit donc bien d’un code MSIL qui est envoyé au compilateur. Mais le travail de ce dernier change complètement. Le code concerné du framework est compilé en même temps et l’application ainsi produite est autonome. Elle ne dépend donc plus d’une version particulière du framework.
Une étape importante dans la nouvelle stratégie
Le travail réalisé aura à terme un impact très important sur les boutiques d’applications. Le développeur enverra en effet un code unique à Microsoft pour une publication sur le Store. De là, il sera compilé pour correspondre à l’architecture de l’appareil qui demande à télécharger l’application. Pour l’instant, la préversion ne permet de créer que des applications Windows de type Modern UI mais les évolutions permettront plus tard de réaliser la compilation de tout type de projet. Ce sera notamment le cas des applications de bureau, Microsoft indiquant dans sa FAQ que ces dernières « sont une part importante » de sa stratégie. Pour l’instant, cette « compilation dans le cloud » reprend le modèle de Windows Phone 8 et de sa boutique.
Lorsque le compilateur .NET Native sera disponible en version finale, il pourra être utilisé avec l’intégralité des projets .NET. Cependant, bien qu’un tel projet puisse largement faire progresser l’utilisation de la plateforme, il n’a pas vocation à remplacer la compilation habituelle. Il s’agira d’un produit complémentaire car le code natif ne répond pas à toutes les situations, et certains éditeurs préfèreront garder le fonctionnement par machine virtuelle, qui offre d’autres avantages.
Ceux qui souhaitent en savoir davantage sur .NET Native pourront lire l’annonce officielle du projet, ainsi que la FAQ, qui répond à de nombreuses questions.
Microsoft donne un sérieux coup d’accélérateur à sa technologie .NET
-
Une fondation .NET centrée sur le code open source
-
Un compilateur .NET pour produire du code natif
-
Une étape importante dans la nouvelle stratégie
Commentaires (131)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 04/04/2014 à 16h26
C’est ce que j’avais pressentit avec la liste des sessions de la BUILD, .Net revient clairement sur le devant de la scène cette année !
Excellente nouvelle " />" />" />
Le 04/04/2014 à 16h30
Charon est demandé dans les commentaires pour parler Tree-shaking, Roslyn et tout et tout " />
J’espère qu’on va pas avoir des commentaires du type “de l’open source made in MS cay le mal” " />
Le 04/04/2014 à 16h37
Retour du bouton démarrer, compilation native de .NET, Windows gratuit, décidément ces temps-ci MS annonce plein de bonnes nouvelles.
Le 04/04/2014 à 16h39
Depuis le début de cette techno ils ont laissé la porte ouverte aux implémentations libre. Quelques projet ont été fait dont Mono pour Linux. Avec cette fondation et cette politique tout seras au même niveau et non plus une version affaiblt pour les plateforme autre que W\(.
µ\)oft a toujours eu une politique d’ouverture sur les domaine ou il n’est pas dominant, mais une fois le cas il verrouille tout " />
Le 04/04/2014 à 16h40
de l’open source made in MS cay le mal " />
Plus sérieusement, je suis bien content de voir la direction que peut prendre Microsoft ces derniers temps.
On dirait que les douches froides à répétition leur ont permises d’écouter un peu plus les doléances des utilisateurs.
J’avoue que cette tournure des évènements me plais au plus haut point et pourtant je suis très loin d’être extrémiste de chez MS (ou de linux d’ailleurs). Je suis plutôt neutre.
Le 04/04/2014 à 16h43
Le 04/04/2014 à 16h46
Le 04/04/2014 à 16h47
D’après ce que j’ai compris c’est pas l’ensemble .NET, c’est juste quelques blocs:
http://linuxfr.org/users/efournie/journaux/microsoft-libere-leur-compilateur-c
Comme le diable est dans le détail, c’est souvent ces derniers blocs qui s’avère le plus handicapant pour un vrai usage Libre sinon c’est de l’open source ready only comme le code de DOS 1.1 et de Word 1.1 vous pouvez lire mais surtout pas réutiliser.
Le 04/04/2014 à 16h49
Enfin je donne juste mon avis perso. Ca devrait pousser le .NET plus vers le multiplateforme. C’est une bonne chose cela devrait augmenter le nombre de développeurs .NET et augmenter la cible d’utilisateurs.
Il y avait pas mal de rumeurs sur un portage sur android et diverses choses du même acabit. Mais au vu de ces informations récentes ça parait plus crédible.
Microsoft a commencé le virage sur devices+services et s’adapte en conséquence :)
Le 04/04/2014 à 16h53
C’est là qu’on voit que les temps changent : D’abord le support du x64 et de l’ARM, celui du x86 plus tard.
Le 04/04/2014 à 16h53
Le 04/04/2014 à 16h54
Le 04/04/2014 à 16h55
Mieux vaut tard que jamais, ils auraient du prendre cette décision il y a 10 ans (ça a été fait par Sun pour Java en 2006).
En attendant le concurrent direct, Java, est multi-plateformes, possède les meilleurs bindings/langages (Python, Ruby, Scala) et un écosystème open source beaucoup plus enviable.
Ça vaut ce que ça vaut, mais Java est le 3e langage le plus populaire sur GitHub, C# est 9e derrière Objective-C :http://adambard.com/blog/top-github-languages-for-2013-so-far/
Bref la plateforme se fait bouffer par tous les cotés (JavaScript, Java, Objective-C…), fallait bien qu’ils réagissent.
Le 04/04/2014 à 17h01
Le 04/04/2014 à 17h02
Le 04/04/2014 à 17h02
Le 04/04/2014 à 17h04
Le 04/04/2014 à 17h05
Le 04/04/2014 à 17h06
Le 04/04/2014 à 17h06
Le 04/04/2014 à 17h10
Le 04/04/2014 à 20h30
Le 04/04/2014 à 20h46
Le 04/04/2014 à 21h00
Le 04/04/2014 à 21h10
Le 04/04/2014 à 21h28
Le 04/04/2014 à 22h04
Et surtout qu’avec les intérêt qu’il peut gagner, donc pas vraiment d’argent de sa propre poche…
Le 04/04/2014 à 23h02
Le 04/04/2014 à 23h03
Le 04/04/2014 à 23h05
Le 04/04/2014 à 23h17
Le 04/04/2014 à 23h55
Combien de développeurs ont participé aux commentaires ?
Parce que, perso, du C# natif sous Linux, ça me fout une demi molle.
Et bien que fan du cpp, il est évident qu’en matière de revenus générés, c# est loin devant car tellement facile.
Et il est évident que l’attitude de Microsoft a été vers l’ouverture depuis les dernières 5 ou 6 années.
Et encore une fois: je ne suis pas un fan de MS, loin de là, mais il faut aussi ouvrir ses yeux.
Le 05/04/2014 à 00h00
Le 05/04/2014 à 04h04
Le 05/04/2014 à 05h25
Le 05/04/2014 à 11h42
Le 05/04/2014 à 11h42
Le 05/04/2014 à 12h11
Le 05/04/2014 à 12h21
Le 05/04/2014 à 12h22
Le 05/04/2014 à 12h28
Le 05/04/2014 à 14h12
Le 05/04/2014 à 14h44
Le 05/04/2014 à 15h00
Le 05/04/2014 à 16h01
Le 05/04/2014 à 16h11
Le 05/04/2014 à 16h17
Le 05/04/2014 à 16h34
Le 05/04/2014 à 17h00
Le 05/04/2014 à 17h16
Le 05/04/2014 à 17h21
Le 05/04/2014 à 17h57
Je vois ce que tu veux dire, mais tout ne repose pas sur le processing GPU pur et dur:
-Tout d’abord l’arrivée de Mantle et de DX12 montre bien que dans un contexte temps réel les cycles CPU restent importants pour piloter le GPU.
-Il y a des cas ou le GPU ne peut tout simplement pas être utilisé, soit parce que le calcul en lui même ne s’y prête pas (calcul en série), soit parce que le public visé n’est pas équipé en GPU performant (c’est mon cas, j’écris des applications de traitement audio lourd). Et je t’assure que chaque boucle critique est optimisé au pointeur et au compteur près, je mesure des différences sensibles de perf.
J’utilise aussi en parallèle des librairies comme Intel IPP, qui n’existent que pour C/C++.
Quand à la problématique de sécurité telle que tu la décrit, elle me parait un peu étrange: un jeu/programme ne sera détourné de son usage initial que si tu l’as récupéré d’une source douteuse; et dans ce cas tu peux tout autant récupérer des programmes .Net qui auront subis des détournements douteux.
Le 05/04/2014 à 20h31
Le 05/04/2014 à 20h45
Ton innocent jeu peut être utilisé pour miner des bitcoins
C’est également possible avec un langage managé.
La menace en la matière ne viens pas seulement des ordinateurs piratés, mais aussi potentiellement des éditeurs de logiciels eux même.
Le 05/04/2014 à 22h11
Le 06/04/2014 à 07h06
Le 06/04/2014 à 11h34
Le 06/04/2014 à 11h56
Le 06/04/2014 à 17h23
Le 06/04/2014 à 23h17
Le 07/04/2014 à 08h40
Le 07/04/2014 à 09h05
elpetio > Quand on veut donner une leçon sur les trolls, on n’intègre pas des insultes dans son commentaire.
Le 07/04/2014 à 09h27
elpetio > Tu commences sérieusement à nous agacer avec tes théories du complot, alors je t’invite à te calmer.
Le 07/04/2014 à 09h41
Le 08/04/2014 à 21h40
Le 08/04/2014 à 22h09
Le 09/04/2014 à 07h23
Le 09/04/2014 à 08h10
Le 09/04/2014 à 08h24
Le 09/04/2014 à 09h08
Le 09/04/2014 à 09h19
Le 09/04/2014 à 11h05
Le 09/04/2014 à 21h13
Le 09/04/2014 à 23h09
Le 10/04/2014 à 05h56
Le 10/04/2014 à 08h52
Le 10/04/2014 à 11h04
Le 10/04/2014 à 11h06
Le 10/04/2014 à 12h44
Le 10/04/2014 à 14h17
Le 04/04/2014 à 17h14
Et microsoft réinventa GCJ
Le 04/04/2014 à 17h32
cela veut dire qu’un code compilé en natif ne sera plus aussi facilement décompilable non ?
petit hors sujet mais pas tant que ça (.net + multiplateforme), quelqu’un a t’il un retour d’expérience sur dot42 ?
Le 04/04/2014 à 17h37
Le 04/04/2014 à 17h44
Le 04/04/2014 à 17h53
Yeah !
En voilà une bonne nouvelle ! Bravo à M$ pour une fois :) maintenant il ne reste plus qu’à attendre quelques années pour voir les réels effets " />
Le 04/04/2014 à 18h11
Excellentes nouvelles et tant mieux, j’ai hâte de voir si la mayonnaise du développement multi-plateformes à la dotnet prend. Ce millésime de build aura décidément été un grand crû.
Le 04/04/2014 à 18h14
C#/Net c’est vraiment bien.
Achetez le.
Quoi ? Ca marche que sur Windows ? Bah achetez windows.
De toutes façons, on est leader sur PC.
Hum… bon ok, y aussi des machines Linux.
Bah prenez le projet Mono… Non, on n’assure pas la compatibilité. Et puis quoi encore.
Bon ok, on a fait une version express gratuite
Allez-y, prenez là.
Non, elle ne marche pas sous Linux. Faut pas abuser.
Ah… Y a aussi les smartphones.
Bon, on a fait une version C#/Net pour smartphone
Allez-y, prenez là
Quoi ? Ca marche que sur Windows Phone ? Bah achetez windows.Phone
De toutes façons, on est lead… Ah ! Non. Mais achetez le quand même
Bon ok, on a fait une version multi-plateforme.
et gratuite.
et open-source.
et libre.
Bordel ! Mais vous allez choisir C#/Net ou quoi ?!
Le 04/04/2014 à 18h19
Le 04/04/2014 à 18h56
Très bonne nouvelle! C’est vraiment lourd d’attendre le chargement du framework .NET… Ca va améliorer le confort d’utilisation de certains produits de ma boite! (et surtout éviter l’installation du dit framework sur tout les poste de travail…)
Le 04/04/2014 à 19h04
Microsoft et open source, c’est pas un oxymore, vous en êtes sûrs ?
En tout cas, ils ont une volonté de s’adapter aux réalités du marché, même si cela fait virage à 180°. Voyons la suite…
Le 04/04/2014 à 19h10
Le 04/04/2014 à 19h20
Le 04/04/2014 à 19h26
Le 04/04/2014 à 19h35
J’ai une tablette windows 8.1 Fujitsu et je peux assurer qu’elle fait du bruit. Grace à son mini-ventilateur d’au moins 3000db (à peu près).
Elle fait aussi 10 ans de plus à cotés de l’iPad air ou de l’xperia tablet z.
Le 04/04/2014 à 20h16
Ne rêvez pas, si Microsoft fais de “l’open source” c’est qu’il y a un intérêt derrière.
Le 04/04/2014 à 20h20
Le 05/04/2014 à 05h41
Le 05/04/2014 à 06h21
Le 05/04/2014 à 06h54
Le 05/04/2014 à 07h04
Le 05/04/2014 à 07h12
Le 05/04/2014 à 07h45
Le 05/04/2014 à 08h18
Le 05/04/2014 à 08h26
Han c’est bon ça !
Le 05/04/2014 à 08h45
Stallman > MS
Le 05/04/2014 à 09h14
Le 05/04/2014 à 09h31
MS est un poids lourd dans l’éducation Américaine, comprenne qui pourra " />
Windows représente déjà une grande part des PC. Le Monde ne Fait que suivre
Le 05/04/2014 à 09h32
Le 05/04/2014 à 09h37
Le 05/04/2014 à 09h43
Le 05/04/2014 à 10h44
Le 05/04/2014 à 11h39
Le 07/04/2014 à 09h50
Le 07/04/2014 à 10h05
Le 07/04/2014 à 10h07
T’as des énergumènes qui polluent le site regulièrement car ce sont pas seulemetn des trolls mais des emmerdeurs professionnels.
" />" />" />
Le 07/04/2014 à 10h16
Le 07/04/2014 à 10h22
Le 07/04/2014 à 10h32
Le 07/04/2014 à 10h53
Le 07/04/2014 à 11h49
Le 07/04/2014 à 14h53
Le 07/04/2014 à 20h47
Le 07/04/2014 à 22h10
si 3.9999999 tend vers l’infini .org
si 4.0 MS avale .msx
Le 08/04/2014 à 09h33
Pour ceux qui parlaient de popularité des langages sur GitHub, on peut y ajouter StackOverflow (http://stackoverflow.com/tags ) pour contre-balancer.
On voit quand même au nombre de questions taggés que le c# semble très populaire sur ce site (qui est loin d’être petit), donc pour certains qui disent que le C# n’est pas utilisé et que MS est désespéré… J’en doute fortement quand même.
(Et personnellement, j’adore le C# " />)
Edit : viré la balise url qui me génère des trucs louches.
Le 08/04/2014 à 18h09
Le 08/04/2014 à 18h18
Un ami dev m’a dit il y a quelques années l’os parfait c’est l’os qui tient compte que l’utilisateur moyen est une buse et que le développeur moyen code avec les pieds.
Perso je trouve incroyable qu’en 2014 encore aucun OS n’isole les drivers par rapport au noyau quand on voit les dégats que ça peut provoquer.
Le 08/04/2014 à 18h30
Je finirai là dessus. On ne vit plus dans le même monde qu’il y a dix ans. Le cloud prend de plus en plus de place. Ca va de plus en plus loin. Bientôt on verra apparaître tout un tas de périphériques connectés. Comme harmattanblow j’ai codé longtemps en C++(je continue pour certaines choses) mais ce langage n’a clairement plus sa place dans ce nouveau monde qui se dessine.
Chez Microsoft ils ont déjà choisi, Le C++ devrait se cantonner dans l’avenir à l’intérieur d’une sandbox. Mais tout ce qui est système (os/drivers/services de base) devraient être codé dans un nouveau langage safe.
Le 08/04/2014 à 18h58
Même si on part du principe que le code managé sera toujours plus lente que le code natif (ça restera à prouver), les règles du jeu ont largement changées.
Le CPU ne coûte plus rien et on préfèrera booster un peu les machine en sécurisant son code avec du langage managé que de se cantonner à gagner le moindre pet de CPU pour une requête.
Nous sommes dans une société où le choix se fait uniquement sur le coût.
Le calcul est très simple et en faveur du code managé. Salaires moins élevé, facilité de développement, rapidité de développement, moins de tests nécessaires
Si il faut payer, même 30% de CPU, de mémoire, ou de disque en plus, le calcul est vite fait.
N’en déplaise aux développeurs de code natif, de plus en plus de développements se feront en code managé
Le 10/04/2014 à 15h54
Hop, un bench de perf sans appel pour alimenter le débat:
http://www.codeproject.com/Articles/212856/Head-to-head-benchmark-Csharp-vs-NET
Le 10/04/2014 à 17h31
Le 10/04/2014 à 17h53