jeudi 11 décembre 2008

Ma réconciliation avec Visual Studio

A mon nouveau poste, on utilise C#.Net. Bon. Ceux qui me connaissent savent que je suis un open-sourceux convaincu mais que je m'étais résigné à mon ancien travail à Visual Studio. C'est donc avec fatalité que j'ai commencé à explorer le C#. Il y avait cependant, un brin de curiosité également. A Planète Sciences, un nommé Guillaume m'avait surpris en combinant un linuxisme prononcé avec une adoration pour C# et son intérpréteur open source et multi-plateforme : Mono. C'est avec cet état d'esprit ambigu que j'ai découvert que, pour une fois, Microsoft avait bien fait les choses.

Je ne sais pas par où commencer... Tout d'abord, et je l'ai appris récemment bien que ce soit le cas depuis un bon moment, vous pouvez développer des applications C# professionnelles gratuitement. Non, il ne s'agit pas des licences étudiantes bridées et limitées dans le temps que vous avez peut être connu à l'époque où le monstre de Redmond ne prenait pas l'open source au sérieux. Les versions express de visual studio sont très complètes et permettent du véritable développement sans débourser un sou de trop. Ca, déjà, c'est une évolution remarquable. Mais j'en viens au langage lui même.






C# n'a rien d'exceptionnel : c'est du C++ auquel ont été rajoutées les choses qui auraient du l'être depuis des années. Des listes, des templates propres, des notions des propriétés accessibles différemment en lecture et en écriture. Si on compare à du Java, par exemple, il n'y a pas grand chose de plus. La différence est dans .Net et dans l'IDE. Avez vous déjà essayé de programmer en MFC, l'ancienne librairie graphique de windows ? C'était une horreur non-euclidienne indicible et mal documentée. Quelque chose écrite par une équipe de schizophrènes (ou de stagiaires) qui hésitaient entre C et C++ et qui ne documentaient pas deux choses de la même manière. Le .Net est vraiment un grand nettoyage par le vide. Oh, ce n'est pas encore parfait, mais il y a de la cohérence dans les API et le code généré par le designer d'interfaces graphiques est enfin compréhensible par le commun des mortels. Bon, la doc est toujours aussi mal foutue quoique apparemment un peu plus complète, mais c'est moins grave aujourd'hui car l'intellisense (la téchnologie d'auto-complétion de Microsoft) est arrivé à un point tel que la doc devient inutile dans 80% des cas. L'équipe Microsoft ayant mis au point la version .Net de Visual Studio est dirigée par le créateur de Delphi, transfuge de Borland. On arrive enfin au niveau du créateur d'interface, au niveau de ce que faisait Borland il y a quelques années avec Borland C++ Builder. Les connaisseurs comprendront le soulagement et le confort que c'est.

Autre bonne surprise : Microsoft semble avoir tiré les leçons de l'expérience malheureuse de Sun et du java, longtemps mal aimé de la communauté Open Source. Pour une fois, un format venant de Redmond semble respecter une spécification claire. Ou bien le développeur de Mono est un génie. Mono c'est donc l'implémentation open source et multi-plateforme du C#, intégrant une partie impressionante du .Net windows, y compris les WinForms, les successeurs des MFC. Le boulot entrepris est impressionant. Il existe sous linux des outils semblables au Visual Studio de Microsoft, incluant un GUI designer et de l'intellisense (à un niveau moindre que leurs confrères windows mais à un niveau impressionant d'utilisabilité néanmoins). Je ne l'ai pas encore testé mais il semblerait que les bytecodes générés sous windows fonctionnent sous Mono sans problèmes dans la plupart des cas. Si cela est vrai, considérant que de plus en plus d'applications windows vont être codées de cette façon, c'est une petite révolution.

Voila, fini pour le post long technique et indigeste, mais bon, j'avais envie de sortir un peu tout ça. Je trouve important de voir que Microsoft a enfin relancé la compétition avec les softs open source et innove un peu quelque part. C'est bien, c'est important, ça va dans le sens du progrès.

Aucun commentaire: