Microsoft travaille sur un nouveau compilateur d'un genre nouveau. Ce projet, nommé Roslyn, donne actuellement lieu en interne à des tests et des adaptations des compilateurs VB.NET et C#. Explications.
Ouvrir la boîte noire
Roslyn est un projet particulier en développement chez Microsoft actuellement. Son objectif est de proposer une plateforme de compilation très différente de ce qui est actuellement proposé un peu partout, y compris dans les propres produits de l'entreprise, Visual Studio en tête. La fonctionnalité devrait d'ailleurs arriver dans une prochaine mouture de l’environnement de développement intégré (IDE) de la firme.
Selon les explications de Microsoft, le compilateur est actuellement une boite noire. Le développeur sait globalement ce qui s’y passe et la conduite des processus qui s’y déroulent. Selon un billet publié hier sur l’un des blogs de l’éditeur, le responsable Matt Gertz explique que le but de Roslyn est justement d’ouvrir ladite boîte noire et de fournir aux développeurs un nombre plus élevé d’informations sur ce qui s’y passe, pour leur permettre de les manipuler via une API (Application Programming Interface).
Un même compilateur pour VB.NET et C#
À travers plusieurs discussions avec des développeurs impliqués dans les tests de Roslyn, il ressort que l’ouverture du compilateur est importante pour la modularité et son extensibilité. Par exemple, les développeurs peuvent accéder à l’arbre syntaxique du code et ainsi le modifier directement. Dès lors, il devient possible d’y greffer des services, d’accéder aux symboles déclarés dans le code et ainsi de suite. Les extensions servant à retravailler le code seront en outre plus simples à développer.
En outre, comme nous l’a expliqué l’un des développeurs, l’un des gros avantages de Roslyn est qu’il s’agit d’un compilateur unique pour C# et VB.NET. Cette unification permet selon lui d’incorporer par la suite de nouvelles capacités sans pour autant provoquer de régressions.
Des préversions dans les prochains mois
La phase de test en interne concerne actuellement l’utilisation de Roslyn par les propres équipes de développement. Selon Gertz, ce sont ainsi 60 000 projets qui ont été recompilés pour tester les performances de cet outil spécifique. Microsoft n’indique pas de calendrier sur le déploiement de Roslyn et sa disponibilité concrète. Cependant, le « dogfooding » (l’utilisation en interne des propres technologies de l’entreprise) permet de préparer une prochaine série de préversions qui seront disponibles au téléchargement.
Les développeurs devraient donc pouvoir accéder à des moutures de test tout au long de l’année prochaine, mais on ne sait pas encore sous quelle forme. Il pourrait s’agir d’un composant à mettre en place dans Visual Studio, ou d’une bêta de la première mise à jour importante pour la version 2013 de l’environnement de développement.
Commentaires (86)
#1
je me pose la question de l’intérêt de compiler en externe…. ces informations peuvent très bien être fournies en local.
#2
Au niveau sécurité ça va être compliqué, en plus d’envoyer les sources chez ms, on est pas sur que la compilation ne rajoute pas quelques failles pour aider un peu les copain ( NSA ? :-) ).
Bref va falloir avoir une grosse cote de confiance.
#3
" />
Sans vouloir troller, a part aspirer un maximum de code source, je ne vois pas où est l’intérêt pour MS. A moins que le service ne soit payant (en plus de la licence VS s’entend)
#4
Pour compiler sur le cloud il y’a bien a un moment ou le code source est envoyé ?
Quid de la backdoor rajouté automatiquement pour le compte de la NSA " />
#5
Simple,
Mise en place de backdoor automatique pour tous les codes.
Et le top , Ils on développer un algo qui analyse ton code et si tu utilise un algo innovant . Une alerte de monitoring au services juridique qui dépose le brevet immédiatement a ta place .
#6
#7
#8
Soit je n’ai rien compris, soit le concept “compiler as a service” n’a que peu à voir avec une compilation à distance des projets Visual Studio.
Il s’agit plus de fournir un ensemble d’API permettant à un programme d’accéder, lors de l’exécution, à certaines fonctionnalités jusque là verrouillées, ou peu accessibles, du compilateur .NET; dessus se grefferont des ensembles de services.
Par exemple (cf la MSDN) :
J’ai vu en quelque part sur la MSDN un exemple d’outil “Paint-like” qui utilisait tout ça pour proposer un langage de script pour enregistrer des macros : avec Roslyn, c’est (presque) super simple de fournir une IDE intégrée avec éditeur de script (avec syntax highlight et tout et tout) et un compilateur à la volée.
Un des bénéfices immédiats sera la facilité accrue pour l’équipe de développement de Visual Studio d’accéder à tout un ensemble de fonctionnalités aujourd’hui développées en double (analyse de code, navigation vers des éléments de code, explorateur d’objets, etc).
Mais peut-être que j’ai tout compris de travers, hein. Peut-être que c’est juste un truc pour permettre à MS de
mettre en place des backdoors automatiques pour tous les codes
(non mais sérieux les gars " />)…
#9
En fait comme dit dans les commentaires Roslyn devrait marcher en local. Le cloud c’est juste une application possible de cette technologie.
#10
#11
#12
Un premier pas avant de passer à un modèle de souscription annuelle, comme Adobe ?
#13
#14
#15
#16
#17
#18
Encore un bel exemple de porosité entre ministères et grandes entreprises capitalistes américaines! Après les labos, voilà que Roseline va compiler pour Microsoft!
on aura tout vu!
" />
#19
#20
#21
#22
#23
#24
J’attends d’en savoir plus sur le projet Bachelot.
#25
#26
#27
Compilation…. et possibilité d’exécution? " />
#28
#29
#30
#31
#32
#33
#34
#35
Je sais que c’est la mode mais j’en ai classe de toutes ces remarques sur la NSA.
On a pigé, et vous vous doutez bien que si Microsoft VEUT mettre des backdoors dans du code, pas besoin d’un compilateur dans le cloud pour ça, il suffit de l’ajouter au compilateur local et basta.
Ensuite je sais pas trop comment ça se passerait d’un point de vue des sources, faudra lire les petites lignes du contrat de licence comme d’hab…
Je pressens l’apparition de clause qui stipulent que comme pour les mails, Microsoft se réserve le droit d’analyser “automatiquement” les sources envoyées à des fins de statistiques etc etc…
Le tout enrobé de sucre via des features de type “détection avancées d’erreurs/optimisations automatiques” etc etc…
#36
#37
#38
#39
#40
#41
#42
#43
#44
#45
#46
#47
#48
#49
#50
#51
Bon ben j’abandonne, je vais me coucher, tiens " />
#52
#53
#54
#55
#56
#57
#58
#59
#60
#61
#62
#63
#64
Super, la mise à jour! Je suis sûr que ça va aider certains à comprendre de quoi il s’agit réellement " />
Merci d’avoir pris le temps (et le risque) de prendre en compte les retours, c’est ça qu’on aime chez PCInpact! " />
#65
Pour la compilation sur le cloud comme je l’ai indiqué au dessus c’est bien l’un des buts à mon avis. même si ce n’est pas le but direct du truc on est d’accord. " />
source
In CodeName Roslyn, we’re changing that dynamic by building an API that exposes compilers’ analysis engine, and opening a world of new scenarios including REPL, write-your-own refactorings, C# and VB as scripting languages, and taking .NET to the cloud.
#66
#67
#68
#69
#70
68 commentaires, dont 65 1⁄2 par des gens qui lisent “Compiler as a service” ( = Le compilateur fournit un service à l’application ) et comprennent “Compiler in the cloud”… " />
Une fois pour toutes, Compiler As A Service, ça veut dire que le compilateur expose son fonctionnement interne à l’application qui l’utilise, plutôt que de recevor d’un côté un fichier source et de l’autre côté recracher une DLL hermétique. " />
Personne n’a jamais dit que le compilateur tourne sur un serveur chez Microsoft.
Par ailleurs, à tous ceux qui craignent que cela donne l’occasion à Microsoft d’injecter du code de tracking lors de la compilation… heu … ben … ils peuvent déjà, hein, puisque c’est eux qui ont écrit le compilateur ! " />
#71
#72
#73
#74
Sur la version d’avant, c’était la phrase d’accroche qui m’avait trompé “Skype étant désormais hébergé sur Azure, …”
C’est effectivement plus clair maintenant " />
#75
#76
#77
#78
#79
#80
#81
#82
#83
#84
#85
#86