Reflector est “mort”, longue vie à ILSpy

Ce petit billet a pour objectif de mettre en avant un petit logiciel nommé ILSpy (et géré par la SharpDevelop Team) qui a pour objectif d’être le remplaçant gratuit du célèbre décompilateur .Net : Reflector.

Si ILSpy n’en est qu’à ses débuts et est encore bien loin de son prédécesseur, il peut déjà tirer parti de l’expérience de ce dernier et apporter on l’espère, rapidement de nouvelles fonctionnalités. Le produit n’en est qu’à la M1 de sa toute première version, mais permet déjà d’être utilisé au jour le jour pour décompiler des assemblies.

On est très loin du système de plug-ins que permet Reflector mais en tant que fonctionnalité principale, la décompilation est présente et cela devrait convenir à la plupart des utilisations. Ce dernier est téléchargeable sur le site officiel : https://www.ilspy.net/

ILSpy - yield return

Comme je l’expliquerai plus bas dans ce post, suite à l’annonce de rendre payant un logiciel qui était gratuit depuis 10 ans, j’encourage tous les développeurs à préférer ILSpy et aider à son développement et ne garder Reflector qu’en cas de réel besoin où ILSpy ne saurait aider.

Mais pourquoi tant de haine?

Un peu d’histoire:

  • En 2000, Lutz Roeder créé Reflector. Rapidement ce petit outil évolue et devient le petit couteau suisse utilisé par un tiers des développeurs .Net.
  • En aout 2008, il s’accorde avec Red Gate Software pour la reprise du développement du logiciel, où Red Gate (cf James Moore son responsable du développement) s’engage à sortir rapidement version 6 du logiciel et à le maintenir gratuitement pour tous.
  • En 2010, ils proposent un reflector premium quasi identique à la version gratuite, mais permettant de faire rentrer un peu d’argent pour réduire les coûts de développement.
  • En février 2011, la version gratuite de Reflector cessera d’exister à partir de juin 2011 et se retrouve payante pour 25€ (35$) pour sa version la plus simple et jusqu’à 69€ (95$) pour sa version la plus complète.

On obtient donc une société qui reprend un logiciel gratuit pour finalement le rendre payant sans même avoir tenté le mode donation. Pourtant, les donations peuvent faire vivre un projet et les exemples courent les rues (Wikipédia, Mozilla, etc.). Encore récemment, Xmarks (synchronisation de favoris inter-navigateurs) devait fermer ses portes, mais les gens ont dit être prêts à payer un peu (quelques dollars) pour faire vivre les serveurs. Et XMarks est encore là et pourtant cela ressemble comme deux gouttes d’eau à l’histoire de Reflector. J’en veux donc à Red Gate d’avoir tout de suite envisager de tirer des bénéfices de Reflector (même si je ne renie pas les coûts qu’ils ont enduré pour son support depuis trois ans - mais ils le savaient en s’engageant!) et apprécie fortement cette initiative de projet ILSpy. Je trouvais donc nécessaire de faire passer le message pour encourager ce nouveau projet.

Pourquoi absolument refuser d’utiliser une application sous prétexte qu’elle soit payante?
Le fait qu’elle soit payante n’est pas un problème, surtout que le prix n’est pas excessif, mais tout d’abord cette nouvelle version n’apporte pas grand chose et les gens semblent d’ailleurs s’en interroger sans obtenir de réponse, mais c’est surtout parce que Reg Gate revient sur sa parole lorsque la société disait avoir repris le bébé de Lutz uniquement pour l’améliorer mais surtout le garder gratuit pour tout développeur.

Pourquoi supporterai-je une société qui, dans un dessein mercantile, a profité du buzz autour d’un produit gratuit pour ensuite tuer son côté ouvert et dédié à la communauté comme le souhaitait son auteur originel?

Un petit détail, pour ceux qui pensent pouvoir utiliser les anciennes versions gratuitement, celui risque d’être difficile. En effet, les exécutables sont time-bombés pour une période de six mois. Passé ce délai la mise à jour est obligatoire et l’application ne se lance plus. Bien que ce time-bombing n’ait surement pas été mis là par Red Gate pour forcer l’achat de la nouvelle version, ces derniers tiennent deux discours quant à cette fonctionnalité:

  • Première raison: le support était facilité. en forçant les personnes à utiliser une version récente, on évite la remontée de bugs déjà corrigés
  • Seconde raison selon Greg Tillman, ce time-bombing était déjà implémenté par Lutz (le créateur) depuis les toutes premières versions. Ceci est en partie vrai, mais si l’update était proposé, il n’était pas obligatoire et l’on pouvait utiliser la version désuète. C’est donc bien Red Gate qui a implémenté cette fonctionnalité et refusé de la retirer depuis 2008.

A chacun de se faire son opinion, mais pour moi, Red Gate a fait le choix d’investir dans un produit gratuit et aurait dû le laisser gratuit ou bien le laisser se faire maintenir par la communauté. Il y avait un but mercantile derrière cet achat (ils ne le cachent pas => promotion d’Ants profiler / SQL Compare) mais c’est maintenant un retour en arrière sur leurs promesses et surtout un retour en arrière pour la communauté des développeurs.

Longue vie à ILSpy!

Le twitter d’ILSpy