Torgersen, concepteur C# : pourquoi le langage de programmation est toujours aussi populaire et où va-t-il ensuite ?

Mads Torgersen, concepteur principal pour C# chez Microsoft.
Image : Microsoft

Deux décennies après sa création, C# continue d’être l’un des langages de programmation les plus populaires et les plus utilisés au monde. Préféré par des millions de personnes pour sa polyvalence et sa syntaxe facile à lire, le langage de programmation est rapidement devenu un incontournable pour les applications Web et mobiles, le développement de jeux, les applications professionnelles, etc.

Bien qu’il partage un héritage proche avec Java – conçu à l’origine comme un rival du langage de programmation développé par Sun Microsystems (aujourd’hui Oracle) en 1996 – C# a largement évolué sur sa propre voie depuis ses débuts en 2001, notamment grâce à un support étendu de Microsoft.

VOIR : Les meilleurs langages de programmation à apprendre en 2020 (TechRepubic)

Une grande partie de la popularité de C# réside dans sa tendance à adopter rapidement de nouvelles fonctionnalités. Mads Torgersen, responsable de programme Microsoft et concepteur principal pour C#, affirme que c’est cette conception avant-gardiste qui a permis au langage de programmation d’accumuler une base d’utilisateurs aussi importante au cours de ses 20 ans d’histoire.

“S’appuyer fortement sur l’innovation a toujours été l’une des choses qui distingue C #”, a déclaré Torgersen à TechRepublic.

“Je pense que cela établit un équilibre assez pragmatique où les choses que nous faisons se concentrent sur des scénarios dans lesquels de vrais programmeurs se retrouvent. Nous tenons beaucoup à ce que l’innovation soit motivée par l’utilité, pas tant par la beauté. En même temps, nous nous efforçons de garder le langage cohérent et d’avoir un champ unifié.

Torgersen est l’orchestrateur principal de la conception de C # depuis 15 ans. Torgersen, qui a passé quatre ans en tant que professeur associé à l’université danoise d’Aarhus avant de quitter le milieu universitaire pour l’industrie en 2005, dirige maintenant une équipe chez Microsoft dont les rôles sont de coordonner l’orientation future de C#.

Contrairement à Torgersen, la plupart des membres de l’équipe de conception C # sont impliqués dans la création et la mise en œuvre du langage de programmation et ont tendance à travailler dans des domaines adjacents chez Microsoft. Pendant ce temps, c’est le travail de Torgersen d’exécuter le processus de conception du langage C# et de maintenir les spécifications du langage.

“Nous nous réunissons assez fréquemment, environ deux fois par semaine pendant deux heures, pour prendre les décisions et piloter le travail créatif sur la façon dont nous devrions faire les choses dans la prochaine version de C#”, explique-t-il.

“Je suis en quelque sorte l’orchestrateur de cela, et l’une des personnes qui fait beaucoup de travail de base pour apporter des idées et élaborer des détails pour ce projet.”

Un million de voix différentes

Bien qu’il ait toujours eu son centre de gravité chez Microsoft, C # est un langage de programmation open source et, en tant que tel, suit un processus de conception open source. Bien que cela soit principalement piloté par Microsoft, des idées arrivent régulièrement dans le pipeline de la communauté C#.

« Nous avons un site GitHub dédié à la conception de C# et un autre dédié à la mise en œuvre », déclare Torgersen.

“Sur le site de conception, nous avons beaucoup d’interactions avec des gens qui ne sont pas impliqués au quotidien [with C#] mais qui sont souvent des utilisateurs de C#, et ils apportent des idées de discussion. Certaines des fonctionnalités qui entrent dans C # passent par ce canal.

Avec des idées provenant de nombreux angles, comment Torgersen et son équipe filtrent-ils ce qui est important ?

« C’est un défi, car il y a beaucoup de choses à gagner », admet-il. “C’est un grand langage de programmation en termes d’utilisation – il y a des millions de développeurs C# et il y a donc beaucoup d’entrées.”

VOIR: Top 5 des langages de programmation à apprendre pour les administrateurs système (PDF gratuit) (TechRepublic)

C’est là que la bonne démocratie à l’ancienne devient utile. Pour faciliter le processus, Torgersen et ses collègues concepteurs C # ont adopté un mécanisme de champion, dans lequel chaque membre de l’équipe évaluera les idées qui arrivent via GitHub et défendra celles qu’ils jugent utiles d’apporter à la table.

Les décisions ne sont pas seulement basées sur le degré d’intérêt suscité par chaque idée, mais aussi sur sa compatibilité avec le chemin évolutif prévu de la langue et l’adoption d’idées similaires dans d’autres langues, explique Torgersen.

« C’est une approche très axée sur le débat », dit-il.

“Avoir une équipe de conception comme celle-là est vraiment la clé pour gérer ce type de processus et prendre les bonnes décisions. Vous devez avoir beaucoup de points de vue dans la salle à tout moment, mais aussi un processus pour qu’ils ne se contentent pas de parler dans toutes les directions.

“Nous tournons beaucoup autour pour nous assurer que nous avons couvert toutes les bases, mais nous avons aussi un moyen de parvenir à un accord et de dire, ‘OK – c’est ce que nous faisons’. C’est un équilibre entre avoir beaucoup d’apports et faire beaucoup de choses, mais avoir une gestion solide de la façon dont tout cela s’assemble, de sorte que ce qui en ressort ait l’impression d’avoir été conçu de manière holistique.

Fixer des jalons

Bien que C # ne détienne peut-être pas la première place en termes de popularité (cet honneur revient à C ou JavaScript, selon l’index que vous consultez), il est crédité d’avoir introduit des changements techniques importants dans le paysage des développeurs avec le passage à la programmation asynchrone dans le milieu des années 2000, qui a été largement dirigé par les modifications de conception de base apportées par Torgersen et son équipe chez Microsoft.

La prise en charge du langage de programmation pour les langages de programmation asynchrones est soudainement passée d’un désir marginal à un aspect clé pour de nombreux développeurs, établissant une nouvelle norme pour l’industrie et obligeant plusieurs autres langages de programmation majeurs – y compris JavaScript – à prendre le maquette.

“Ce fut un grand tournant, car cela nous a aidés à faire face à l’un de ces grands changements dans le paysage des développeurs, à savoir le virage vers le cloud et le mobile”, déclare Torgersen.

« Tout d’un coup, il y avait beaucoup plus besoin que les programmes communiquent entre différents appareils, que ce soit vers un serveur dans le cloud, ou entre des appareils mobiles et des serveurs, etc. Nous avons résolu ce problème avec beaucoup de succès et l’industrie a depuis repris notre approche. C’est quelque chose dont je suis très fier.

Bien sûr, il s’est passé beaucoup de choses au cours des 15 années qui se sont écoulées depuis que Torgersen a repris la tête de C# du créateur Anders Hejlsberg. Plus récemment, la montée en puissance des plates-formes sans code et à faible code – en particulier au milieu de la pandémie de COVID-19 – a commencé à uniformiser les règles du jeu en permettant aux personnes ayant peu ou pas de capacité de codage de créer des applications.

VOIR: Commandes Linux pour la gestion des utilisateurs (TechRepublic Premium)

Compte tenu de la pénurie mondiale actuelle de développeurs, ces plates-formes sont suffisamment simples pour permettre même aux non-programmeurs de développer des applications de flux de travail d’entreprise entièrement fonctionnelles qui peuvent être intégrées dans l’infrastructure informatique plus large des entreprises.

“Je sais que beaucoup de programmeurs voient cela avec un peu de mépris, et nous réalisons également que cela ne peut vous mener que très loin, mais en même temps, j’apprécie vraiment que cela incite plus de gens à être créatifs avec les ordinateurs”, dit Torgersen.

“Cela en fait moins une sorte de chose ésotérique ou secrète ou cabale, tout le codage devient moins mystérieux et plus accessible.”

Torgersen est également optimiste sur le fait que les plates-formes low-code, no-code et la programmation traditionnelle peuvent coexister pacifiquement, bien qu’il reconnaisse qu’il y a un défi « quant à ce qui se passe à la frontière ».

“Cela a toujours été le défi des approches low-code, avant même que nous les appelions ainsi, à savoir que la configuration low-code, no-code introduit simplement de manière inhérente – du moins, avec les technologies que nous avons aujourd’hui – certaines limitations sur ce que vous pouvez faire », dit-il.

“Cela a toujours été un terrain difficile dans le passé, au point que je pense que cela a contribué à l’échec de certaines approches sans code qui n’avaient pas d’histoire de croissance lorsque les choses devaient devenir un peu plus intelligentes. C’est un défi que nous devons continuer à essayer de relever.

C# 9.0 et au-delà

Comme tous les langages de programmation modernes, C# continue d’évoluer. Avec C# 9.0 sur le point d’arriver en novembre, la prochaine mise à jour se concentrera sur la prise en charge de la représentation « concise et immuable » (c’est-à-dire non modifiable) des formes de données.

“C # 9.0 essaie de franchir les prochaines étapes pour C # en facilitant le traitement des données qui transitent par le fil et en exprimant la bonne sémantique pour les données, si vous voulez, qui sortent de ce que nous appelons un orienté objet paradigme à l’origine », déclare Torgersen.

C# 9.0 franchit une nouvelle étape dans cette direction avec une fonctionnalité appelée Records, déclare Torgersen. Il s’agit d’un type de référence qui permet à un objet entier d’être immuable et le fait plutôt agir comme une valeur.

“Nous nous sommes retrouvés, depuis longtemps maintenant, à emprunter des idées à la programmation fonctionnelle pour compléter la programmation orientée objet d’une manière qui aide vraiment, par exemple, la programmation orientée cloud et aide à la manipulation des données”, explique Torgersen. .

“Les enregistrements sont une fonctionnalité clé de C # 9.0 qui vous aidera à cela.”

Au-delà de C # 9.0, c’est là que les choses deviennent plus théoriques. Torgersen insiste sur le fait qu’il n’y a pas de “fin de partie” concrète pour le langage de programmation – ou du moins, pas avant qu’il n’atteigne enfin une date d’expiration encore inconnue.

« Ce qui arrivera un jour ! il ajoute. « Je pense que certaines choses intéressantes, qu’il est temps d’examiner à nouveau, ont à voir avec la composition du logiciel – ce qui facilite la combinaison de différents logiciels après coup.

“Il y a un degré d’adaptation dans lequel la plupart des langages de programmation sont bons, mais pas assez, et je veux mener une charge pour avoir des fonctionnalités d’adaptation plus puissantes afin que vous puissiez mieux mettre en jeu les composants logiciels existants avec chacun autre. ”

Peut-on s’attendre à cela en C# 10 ? “C’est en quelque sorte un projet à long terme sur lequel nous travaillons également, même si nous créons des fonctionnalités plus utiles à court terme”, déclare Torgersen.

« Ce serait universel. Cela aiderait tous ceux qui font du développement de logiciels, mais en particulier lorsque vous réunissez plusieurs frameworks et essayez de les faire coopérer.

Leave a Comment