Developpez.com

Le Club des Développeurs et IT Pro

M# : Microsoft dévoile son nouveau langage dérivé de C#

Avec pour objectif d'offrir un meilleur équilibre entre performance, sécurité et productivité

Le 2014-01-02 12:38:54, par Hinault Romaric, Responsable .NET
Microsoft a parlé officiellement pour la première fois de son nouveau langage de programmation, qui porterait le nom de code M# (M Sharp), selon des rumeurs et qui est une extension du langage C#.

Joe Duffy, l’un des ingénieurs ayant travaillé sur le projet depuis pratiquement quatre ans, dévoile dans un article de blog les caractéristiques techniques de M# et les raisons qui ont poussé Microsoft à vouloir créer un nouveau langage de programmation.

« Pourquoi un nouveau langage de programmation ? » « J’admets volontiers que le monde a déjà une pléthore de langages », rétorque Duffy, qui note que chaque langage a ses faiblesses. Pour étayer ses propos, il présente un graphique où certains langages (à l’instar de C#, JavaScript et Java) offrent une meilleure sécurité et productivité, alors que d’autres, comme C++, offrent de meilleures performances.


Le but de M# est de jumeler les deux mondes en offrant à la fois sécurité, productivité et performance. Duffy décrit le langage comme un ensemble d’extensions de programmation système à C#, qui offre un meilleur équilibre entre « la performance » et « la sécurité et la productivité » que d’autres langages populaires.

M# devra être « le langage de plus bas niveau se trouvant tout en bas de la pile. Mais, il sera également sûr et assez productif pour l’écriture des solutions de niveau supérieur, comme les services Web ».

M# s’appuie essentiellement sur le langage C# parce que Microsoft voudrait profiter de sa syntaxe moins complexe, ainsi que de ses fonctionnalités modernes comme les expressions « lambdas » et les « délégués ». De plus, la société souhaiterait s’appuyer sur l’expertise de ses développeurs spécialisés en C#.

À terme, M# sera publié en open source, probablement avant la fin de cette année.

Source : billet de blog de Joe Duffy

Et vous ?

Que pensez-vous de ce nouveau langage de programmation ?
  Discussion forum
35 commentaires
  • alex_vino
    Membre émérite
    Pour info l'auteur de ce blog ne parle jamais de M#, pour la simple et bonne raison que ce langage de programmation existe déjà et est breveté aux USA et Royaume-Uni.

    Voici le lien officiel, l'entreprise britannique derrière cela ne fait aucunement partie de Microsoft (seulement Microsoft Gold Partner). Je peux l'affirmer car je travaille sur l'implémentation de M#, pas besoin de lancer de fausses rumeurs.

    Il serait bon de Googler vos propos relatés Romaric Hinault, même Wikipédia l'affirme
  • Guulh
    Membre émérite
    Le titre est trompeur. Ce n'est pas Microsoft qui annonce un nouveau langage qui aura sa place aux côtés de C#, VB.Net F# et autres: il est question ici d'une équipe de MS (microsoft research) qui bosse sur un projet de recherche, comme le fut Cw en son temps. Ca sert à valider certains concepts avant de les déployer à grande échelle dans les langages existants.
    As is hopefully clear from my bio, the language I describe below is a research effort, nothing more, nothing less. Think of me as an MSR guy publishing a paper
  • CoderInTheDark
    Membre émérite
    J'ai surtout l'impression qu'on nous promet encore un nouveau langage C, sans pointeur, plus simple plus sûr.
    Mais pour l'instant le C fait encore de la résistance.
  • Francis Walter
    Expert éminent sénior
    Bah cest une superbe idée de vouloir combiner la Sécurité et Productivité et la performance mais atteindront-ils leur objectif? Cest la grande question.
    Jusqu'à là, les développeurs ont su faire avec les langages existants!
    Javoue que c'est très ambitieux mais je pense qu'avec tous les problèmes que Microsoft a à régler en ce moment, suis pratiquement sûr qu'à la longue le projet finira par être négliglé comme beaucoup d'autres projets Microsoft qui n'ont pas le suivi nécessaire
  • codec_abc
    Membre confirmé
    Il n'y a que moi que ca choque que la productivité et la sécurité soient placé sur le même axe ? Parce que pour moi ces notions sont au mieux complétement indépendantes voire antagoniste. Et je ne suis pas sur que Java, Javascript et C# soient "plus sécurisé" que C++. D'ailleurs fraudait qu'ils expliquent ce qu'ils entendent par langage sécurisé parce que pour moi la sécurité d'une application vient plutôt de son architecture et de comment elle a été codé plutôt que du langage qu'elle emploie.
  • lunatix
    Rédacteur
    globalement, ca semble etre un C# précompilé ( a opposer a la compilation JIT de .net) et purgé de tout ce qui peut rendre cette précompilation difficile (Dynamic types etc..)

    pas bete vu l'echec des langages a VM pour la programmation systeme : ca cherche un boucher un trou dans ce domaine : un langage de prog haut niveau et plus facile que C++ (même objectif que go, rust, D etc..)
  • Paul TOTH
    Expert éminent sénior
    je note qu'implicitement, les performances de C# sont considérées comme assez faibles
  • Envoyé par Chuck_Norris
    Et il ne leur était pas possible de simplement publier une nouvelle version de C# ? A moins qu'ils se rendent compte que l'idée même de .NET n'était finalement pas si bonne que ça. Au moins, Java, c'est véritablement multiplateforme et ça justifie amplement la machine virtuelle et la perte de performances correspondante.
    Envoyé par MarieKisSlaJoue

    je vois mal certain développeur qui adule l'open source se tourner vers un langage de Microsoft qui pour eux représente le mal absolue.
    Bof, mono est pas mal du tout, le problème est là pourquoi avoir développé C# en mode propriétaire ?
  • Arnard
    Membre émérite
    La partie CLI du langage est normalisée. Microsoft a publié certaines sources du CLR dans un but pédagogique (on peut lire, interdit de recopier). Donc parler de propriétaire est un peu réducteur

    La vraie question n'est pas pourquoi avoir développé c# propriétaire, mais pouruqoi ne pas avoir fournit des implémentations pour macOS et linux. MS prêche pour sa paroisse. A coté, il y a un gros travail collaboratif avec Xamarin (fourniture de specs, de jeux de tests) afin d'avoir le meilleur support de .net sur pingouin !

    Avant de parler de M# comme ça, il faudrait déjà savoir ce qu'il permettra vraiment de faire : des exemples, des jeux de tests pour comparaison...
  • alex_vino
    Membre émérite
    Envoyé par valkirys
    Qt ou mono sont multi OS, par exemple peut-être que le M# les concurrencera
    Difficile de comparer Qt et C#, mais Mono comme tu dit permet de développer en .Net pour d'autres plateformes, donc à mon avis le multi-plateforme n'est pas une nécessité chez Microsoft car les outils existent déjà. Pour en avoir déjà fait Mono fonctionne déjà très bien