• # Pourquoi pas mono ?

    Posté par (site web personnel) . En réponse au journal Mono: C’est un grave danger et seuls les imbéciles l’ignoreront, jusqu’au jour où il sera trop tard.. Évalué à 10.

    Concrètement RMS ne dis pas qu'il est contre MONO, mais contre son utilisation pour des projets libre, du fait du danger de "disparition" de cette technologie si Microsoft met son grain de sable en plein milieu. Ce en quoi je pense que l'on ne peut qu'être d'accord, si le système est dangereux, faut-il prendre le risque d'utiliser le système ?

    En clair, le jeu en vaut il la peine ?

    Mono est pour beaucoup de développeurs Gnome une "grande bouffée d'air frais" car il permet de s'affranchir du développement Gtk+ en C qui, je crois que l'on est presque tous d'accord la dessus, est fort peu sympathique. Mais pourquoi Mono/C# et pas un autre langage ?

    Je pense que GTK est en C pour des raisons d'interlope habilité. Le C est un langage simple, beaucoup plus simple que le C++, il est hautement portable et inter opérable (ce qui n'est pas le cas du C++, principalement du fait que chaque compilateur utilise une convention différente pour le "manglage" des symboles de fonctions). Mais derrière cela je pense que le but de GTK n'est pas d'être utilisé en C, mais grâce à un binding dont la réalisation est extrêmement simple du fait que GTK soit écrit en C tout en suivant un paradigme objet avancé.

    Je pense donc qu'à l'heure actuelle, écrire une application en gtk+/C est une bêtise, pour le temps de développement que cela impose, pour la qualité de développement qui en ressort (le C restera toujours plus difficile à maintenir qu'un langage de plus haut niveau et possédera toujours des dangers tel que les buffers overflows et autres drôleries). Parlons de performances, le toolkit faisant déjà un travail dingue (la gestion de l'affichage de widget sur un écran est un travail extrêmement complexe). Bref, le fait d'appeler ces fonctions complexes dans un autre langage ajoute une surcharge de calcul tellement minime devant la complexité du traitement effectué dans le widget que toute optimisation à ce niveau relevé, de l'optimisation inutile et précoce.

    Maintenant la grande question est donc, quel binding utiliser ? Il en existe dans tous les langages existants, en C++ pour ceux qui aiment, en python, en ruby, en haskell, en php, j'en oublie.

    Tous ces langages sont matures et ont pour la plupart une implémentation libre ayant moins à craindre de la part de microsoft que mono. Ils possèdent tous de nombreuses librairies pouvant rivaliser avec le "framework" .Net. Ils possèdent tous des environnements de développement très compétitifs.

    Ma question est donc simple, supposons qu'il y ai un danger à utiliser Mono (je ne m'avancerais pas la dessus, je pense qu'il y en a un, mais je ne tient pas à débattre de cela), cela en vaut il la peine ? Et même plus, en supposant qu'il n'y ai aucun danger, qu'apporte ce "nouveau langage" (mono est tout de même plutôt récent dans le paysage des langages disponibles) face à ces concurrents directs ?

    Personnellement j'ai jeté un oeil attentif sur Mono/libG (gtk, gobject, ...) et après plusieurs années d'utilisation de python/libG, je ne vois vraiment pas ce que Mono peut m'apporter. A vous, développeur, décideur et utilisateur, que vous apporte-t-il ? Au lieu de prendre du temps à crée et améliorer Mono, le gain pour la communauté n'aurait il pas été plus important si cette énergie étaient aller en faveur d'autre technologie ?