Liens connexes

Dépêche modérée par

Dépêche éditée par

: Mono 1.0 : le singe est laché

Posté par TImaniac (Jabber id, page perso, ). Modéré le 02 juillet 2004.
0
La version finale 1.0 de Mono est sortie.

Cette plateforme développée par Ximian se présente comme une alternative à la plateforme Java en proposant une implémentation libre de la plateforme .NET de Microsoft ainsi qu'un ensemble d'API destiné à la programmation objet sous GNU/Linux mais aussi Mac OS X et Windows. Les principaux objectifs et atouts de cette version sont :
- un environnement d'exécution comparable à celui de Java;
- le support de plusieurs langages de programmation dont C# et Java;
- un ensemble d'API orienté, Gnome et Mozilla;
- un serveur web pour la programmation dynamique de sites web;
- le support de plusieurs architectures matérielle : x86, SPARC et PPC;
- compatibilité avec Microsoft .NET 1.0 afin de faciliter la migration d'application Windows;

Très controversé, le projet Mono a été initié par Miguel de Icaza (un des fondateurs de Gnome) il y a maintenant 3 ans. Cette plateforme est déjà utilisée en production par Novell (qui a récemment racheté Ximian) et a entre autres permis à la ville de Munich de migrer 300 de ses serveurs sous GNU/Linux.

NdM : merci à Nicam, Romanito et D. Pierre pour avoir également soumis la news

> Lire la suite (88 commentaires, moyenne: 3).   [dépêche : 4760 caractères]

Présentation
Mono est une plateforme de développement complète basée sur une implémentation de la machine virtuelle et des API de base définis à l'ECMA (également normes ISO).

Mono propose entre autre :
- des API indépendants de l'environnement : sécurité, base de données, web services, XML, web forms;
- des API destiné à la programmation sous Linux et plus particulièrement Gnome : GTK#, Glade# Gecko#, Gst#;
- des API compatibles avec le framework .NET de Microsoft avec en preview les Winforms (utilisation de WineLib);
- un IDE (environnement de développement) : Monodevelop, avec notamment le support de la complétion de code qui fait le bonheur des utilisateurs de Visual Studio et d'Eclipse;
- un outil pour naviguer dans la documentation : Monodoc, qui a l'originalité de pouvoir être modifier par le programmeur qui peut ensuite envoyer automatiquement les modifications au CVS de Mono;
- un compilateur pour le langage C# qui est souvent présenté comme une évolution du langage Java avec une pincée de C++. Sans être une révolution, ce langage apporte de réels plus qui le rendent très agréable et puissant. Mono propose également un compilateur Javascript et VB.NET;
- une pré-version de C# 2.0 avec notamment le support des generics;
- un serveur web léger entièrement compatible avec le serveur ASP.NET qui permet d'utiliser n'importe quel langage de la plateforme pour générer des sites web dynamiques. Un module apache est également disponible.

Comparaison avec la plateforme Java :
Souvent comparé à Java, cette plateforme en partage de nombreux aspects techniques comme l'utilisation d'un langage intermédiaire (IL pour Intermediate Langage, équivalent du bytecode Java), le support d'application Web, la portabilité (toute relative cependant pour les deux plateformes) et un ensemble impressionnant d'API fournis en standards.

Mono se démarque cependant de la solution de Sun :
- le langage IL a été conçu pour être compilé et non interprété mais aussi pour supporter plusieurs langages orientés objet (C#, Java mais aussi VB.NET, Nemerle et Javascript, etc.);
- la plateforme décrit également un système facilitant l'interopérabilité entre les langages : le programmeur développe dans le langage de son choix mais sa bibliothèque pourra être utilisé par tous les langages de la plateforme, de manière transparente, sans créer de bindings souvent lourd et coûteux à utiliser et maintenir;
- des fonctionnalités supplémentaires comme les méta-données, la détection de débordement ou encore le versionning et la simplicité d'utilisation d'API écrits en C;
- la plateforme Java est une solution propriétaire alors que Mono est une implémentation libre des normes de l'ECMA qui garantissent entre autres l'impossibilité de faire valoir des brevets logiciels (seuls les WinForms, spécifiques à Windows et non normalisés à l'ECMA, sont susceptibles de poser des problèmes légaux).

Note : la plateforme est conçu pour des langages compilés et orientés objets. L'implentation de Python IronPython a cependant démontré qu'il était tout à fait possible d'obtenir des performances similaires avec un langage historiquement interprété. Il faut également noter que la plateforme est facilement interfaçable avec d'autres langages compilés de manière traditionnel comme le langage C.

Perspectives
Présentant de nombreux atouts face à son principal concurrent Java, Mono a toutefois l'handicap de la jeunesse, la documentation n'est pas complète (cependant il est possible d'aller consulter la documentation impressionnante du site MSDN de Microsoft ou encore la documentation de GTK), les performances sont encore en retrait par rapport à l'implémentation de Microsoft : il n'y a pas de comparatifs entre Mono et Java sous Linux, mais est-ce un mal étant donné l'objectivité et l'exhaustivité de ceux-ci ? De plus l'IDE n'est pas terminé, la compatibilité avec la version de Microsoft n'est que partielle et n'est prévue que dans les prochaines versions.

De nombreux débats ont lieu sur une éventuelle intégration de Mono au projet Gnome : en effet la fondation Gnome cherche a fournir une nouvelle plateforme qui éviterait notamment le support de plusieurs bindings pour différents langages tout en proposant un langage de plus haut niveau que l'actuel C. Reste le problème "philosophique" de l'intégration d'une technologie initialement développée par Microsoft. Mais il n'y a pas de réelle solution alternative qui soit libre et qui respectent des standards (DotGNU étant un projet similaire, avec les même avantages et inconvénients). Cette intégration n'est cependant pas à l'ordre du jour et il est sans doute nécessaire d'attendre que la plateforme Mono atteigne une certaine maturité.

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

[+] mouais

Posté par vrm (page perso, ) le 02/07/2004 à 10:18. (lien). Évalué à -10.

est-ce que mono est plus un sujet à troll que les news java ?
1,2,3 partez !

...

Posté par xsnipe () le 02/07/2004 à 10:28. (lien). Évalué à 6.

Juste une question, est-ce que les Threads ont été améliorés ??
Parce que de Windows à Linux (et du SDK officiel à Mono), il y avait de sacrés différences (il était d'ailleurs pas très conseillé de porter des applis multithread vers Mono à l'époque du 0.28...).

--
Debian ... gentoo moi ça et vite :)

Munich ?

Posté par Stéphane TRAUMAT (page perso, ) le 02/07/2004 à 10:34. (lien). Évalué à 4.

Cette plateforme est déjà utilisée en production par Novell (qui a récemment racheté Ximian) et a entre autre permis à la ville de Munich de migrer 300 de ses serveurs sous GNU/Linux.

Je n'arrive pas à trouver d'où vietn cette info. On m'avait dit que mono n'etait en production pour le moment que chez Novell.

Munich

Posté par gnap gnap (page perso, ) le 02/07/2004 à 10:34. (lien). Évalué à 1.

« Cette plateforme est déjà utilisée en production par Novell (qui a récemment racheté Ximian) et a entre autre permis à la ville de Munich de migrer 300 de ses serveurs sous GNU/Linux. »

De quelle manière ?

Compilé ou pas ?

Posté par chl (page perso, ) le 02/07/2004 à 10:45. (lien). Évalué à 4.

Mono se démarque cependant de la solution de Sun :
- le langage IL a été conçu pour être compilé et non interprété


Je comprend pas bien ... il y a un IL (Intermediate Language), qui est compilé ! Ben s'il est compilé et non interpreté, c'est du code natif, alors ! Si c'est natif pourquoi l'avoir appellé IL ?

Quelqu'un m'explique mon erreur, je comprend pas :(

article concernant Mono sur Wikipedia : à compléter

Posté par j (page perso, ) le 02/07/2004 à 10:59. (lien). Évalué à 7.

==> http://fr.wikipedia.org/wiki/Mono(...)

Et au niveau du FUD, il va comment, Mono ?

Posté par Nicolas Delsaux (page perso, ) le 02/07/2004 à 11:34. (lien). Évalué à 19.

C'est pas pour être lourd, mais moi, cette news me fait plutôt l'effet d'un commiqué de presse conjoint Ximian/Microsoft attaquant en règle Java. Je cite :


Comparaison avec la plateforme Java :
Souvent comparé à Java, cette plateforme en partage de nombreux aspects techniques comme l'utilisation d'un langage intermédiaire (IL pour Intermediate Langage, équivalent du bytecode Java),


Jusqu'ici, tout va bien.

le support d'application Web, la portabilité (toute relative cependant pour les deux plateformes)

Là, ça dérape déja bien. Si .Net est supportée pour Linux, Windows et Mac, grâce à Mono, la liste des plateformes supportant Java (que ce soit en Open-source ou non), est quand même un peu plus longue, incluant par exemple des téléphones portables, des PDAs, des routeurs, des automates programmables, des robots mobiles, des cartes bleues, etc, ...


Mono se démarque cependant de la solution de Sun :
- le langage IL a été conçu pour être compilé et non interprété


On sent que c'est un avantage énorme, effectivement, surtout quand la plupart des JVMs supportent le JIT compiling, qui revient à disposer d'un code ... compilé.

mais aussi pour supporter plusieurs langages orientés objet (C#, Java mais aussi VB.NET, Nemerle et Javascript, etc.);


Le site http://www.robert-tolksdorf.de/vmlanguages.html(...) donne effectivement une liste fabuleusement courte de langages pouvant être compilés en bytecode, sans passer par le langage Java. Et, chose étonnante, tous ne sont pas orientés objet (je citerai par exemple Lisp, Logo, Prolog, Eiffel, Smalltalk, Ada, mais pas Cobol, malheureusement)


- la plateforme décrit également un système facilitant l'interopérabilité entre les langages : le programmeur développe dans le langage de son choix mais sa bibliothèque pourra être utilisé par tous les langages de la plateforme, de manière transparente, sans créer de bindings souvent lourd et coûteux à utiliser et maintenir;


Là, je m'avance, mais dans la mesure où tous ces langages sont compilés en bytecode, il doit être possible de faire facilement des binbdings de l'un à l'autre. je sais que c'est au moins possible pour JScheme, implémentation java d'un interpréteur Scheme permettant d'aller de l'un à l'autre et réciproquement.


- des fonctionnalités supplémentaires comme les méta-données,la détection de débordement


Ben .. ça existe depuis un bon moment en Java, à moins qu'on ne parle pas de la même chose. Quant aux metadonnées, elle sont présentes dans Java 1.5 (ou Java 5) qui sort ces temps-ci.

ou encore le versionning et la simplicité d'utilisation d'API écrits en C;

Tu peux être plus explicite sur la simplicité d'utilisation du C ? Ca me laisse pantois !


- la plateforme Java est une solution propriétaire


Non. le langage Java est libre, et son évolution est pilotée par le java Community Process, qui va parfois à l'encontre des souhaits de Sun. En revanche, effectivement, la machine virtuelle de Sun n'est pas libre, mais il existe un certain nombre de JVM libres, qui sont cependant en retard sur celle de Sun.

alors que Mono est une implémentation libre des normes de l'ECMA qui garantissent entre autres l'impossibilité de faire valoir des brevets logiciels (seul les WinForms, spécifiques à Windows et non normalisés à l'ECMA, sont susceptibles de poser des problèmes légaux)

Ca fait peut-être un peu Don Quichotte, mais pour moi cet article est symptômatique : sous couvert de défense du libre, on assiste là) à une attaque en règle contre Java, au profit de quoi , D'une plateforme dont le développement est piloté par Microsoft ? Super.

--
"Putain, mais quelle fichue imagination je peux avoir ! ..."
John Brunner - Tous à Zanzibar

"Thème" de la dépêche

Posté par j (page perso, ) le 02/07/2004 à 12:10. (lien). Évalué à 2.

Le thème actuel pour cette dépêche est "Communauté".

"Technologie" me parait quand même plus approprié...

[+] Intense réflexion...

Posté par Sirrus () le 02/07/2004 à 12:31. (lien). Évalué à -5.

Mono... Singe...

C'est le nouveau mono qui lave plus blanc que blanc le tout crado ? Ooohhhhh....

Usine à languages

Posté par philou (page perso, ) le 02/07/2004 à 12:46. (lien). Évalué à 6.

Séquence petite humeur après une choucoutre bien garnie...

L'industrie fut une usine à copeaux !
L'informatique est une usine à languages !

Vous me direz que chaque domaines a ses modes :
- le management : le dernier concept, cette source de la productivité tant attendue,
- la politique : la décision courageuse qui va faire baisser le chômage (du moins officiellement),
- l'informatique : le dernier language, la grande fusion des paradigmes.

C'est symptomatique : sur ma babasse, la principale occupation de mon disque dur est consacrée aux langages, aux bibliothèques, aux compilateurs et autres interpréteurs.

Comment reconnaissons-t-on un informaticien (à une utilisateur avancé) ? Aux nombres des langages connus ! Quelle est la principale source financière du libre ? Les bouquins traitant des langages/bibliothèques informatiques.

Quelle est la consécration d'un informaticien ? Pondre un language ! La réalisation d'une bibliothèque, d'un interpréteur ou compilateur font néanmoins très bien sur un cv.

Question à 100 boules : Quelle est le prochain language qui fera tout péter ? ( suite de l'épisode dans 4-5ans).


Séquence recul épistémologique ...

Je ne dit pas que le diversité en soi pose problème. Loin de moi l'idée de coder uniquement en lisp (arg !) suite à un élan passéiste. J'use (souvent simultanément) moi même de beaucoup de language (prochaine conquète ocaml).

Tout simplement, je me pose juste la question sur la signification d'une telle diversité. Ainsi que de ce qu'il en reste après 10 ans ?

Mono...tonie

Posté par Christophe Garault (page perso, ) le 02/07/2004 à 13:30. (lien). Évalué à 8.

Bon, c'est bien gentil de proposer une soit-disant alternative à Java. Mais que peux-t-on réellement faire avec Mono dans une entreprise???
(la même réflexion s'applique à .Net )

Quelques questions en vrac:

- Où est le serveur d'application de Mono?
- Est-ce que Com+ va être porté sous *nix?
- Existe-t-il des alternatives à Com+ pour Mono?
- Si oui quels sont les services offerts pour les composants? (sécurité, transactions, messaging, ...)

Tout ça me rappelle la propagande Microsoftienne lors des dev days où une démo bidon est faite sur un BSD pour 'prouver' que .Net est portable. Et tous les béni-win-win de faire Hooooo devant une bête boite de dialogue affichant un bouton OK!

Java n'est surement pas la panacée et il subsiste certainement des lacunes. Mais avant de combler le fossé galactique qui le sépare des autres environnements de devt d'entreprise, m'est d'avis que l'informatique aura beaucoup changé...

intégration Gnome

Posté par 007 () le 02/07/2004 à 13:58. (lien). Évalué à 4.

> De nombreux débats ont lieu sur une éventuelle intégration de Mono au projet Gnome

Ça reste au niveau du débat actuellement. Java est aussi très bien placé et même s'il a l'air technologiquement moins "hype" il a une grosse communauté, est mature, à plein d'outils et librairies. Pour le côté "hype", java peut toujours évoluer. Rien n'est définitivement figé. Mono a des problèmes de licences/brevets/chez_pas_quoi_d_autre qui en calme plus d'un (à tord ou à raison). Quoiqu'il en soit, Red Hat ne veut actuellement pas mettre de mono dans Fedora (ni Fedora Extra) pour des problèmes de licences/brevets/chez_pas_quoi_d_autre. Or il y a gcj, tomcat, etc dans Fedora .
Red Hat (du moins par la voie d'Havoc) a clairement une préférence pour Java. On aime ou on n'aime pas Red Hat mais son influence ne peut pas être ignorée. Et je n'oublie pas que Sun qui est plus free software friendly que MS (ya pas photo).
Bref, c'est vraiment pas gagné pour l'un ou pour l'autre.

L'intégration d'un java ou mono, c'est du long terme et aucune décision n'est prise. Il se peut que l'intégration d'un tel langage n'arrive pas avant plusieurs années. En autre car les bindings marchent et rendent service. Puis il y a aussi le raprochement de mozilla avec Gnome qui peut répondre à d'autres besoins.

Pour être honnète, je ne vois pas la situation de façon très claire car c'est techniquement très complexe et qu'il faut prendre en compte la "sensibilité" de la communauté.
Mais je suis toujours méfiant lorsqu'on annonce la déferlante d'une technologie qui va tout remplacer. L'historique de Java est un bon exemple. On devait avoir du java à tous les étages et sur une distribution Linux "classique" moderne c'est généralement limité au plug-in mozilla ou tomcat. Si je fais un tour sur freshmeat, Il n'y a pas beaucoup de projet sexy en java pour le desktop.
Puis MS a repris le développement d'IE :-)

Pour moi c'est : wait and see.

Hors-sujet:
--------------

Comme je ne peux pas faire de journaux, donc j'en profite ici.
Ébauche (donc c'est loin d'être définitif) de FC3 (servira aussi de base pour RHEL 4) :
http://www.redhat.com/archives/fedora-devel-list/2004-July/msg00056(...)
Pas aussi "révolutionnaire" que FC2.
Pour ma part je relève :
- Pango support for Mozilla
Un petit raprochement supplémentaire entre Gnome (en fait Gtk+) et mozilla.

Trou de sécurité Linux 2.4 et 2.6 :
http://www.redhat.com/archives/fedora-announce-list/2004-July/msg00(...)
During an audit of the Linux kernel, SUSE discovered a flaw in the
Linux kernel that inappropriately allows an unprivileged user to change the group ID of a file to his/her own group ID. The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned the name CAN-2004-0497 to this issue.

Corrections

Posté par manalfer () le 02/07/2004 à 14:19. (lien). Évalué à 1.

un outil pour naviguer dans la documentation : Monodoc, qui a l'originalité de pouvoir être modifié par

Mais il n'y a pas de réelle solution alternative qui soit libre et qui respecte les standard

Je remplacerait aussi solution alternative par solution concurrente, ou plus simplement autre solution.

De mauvaise foi !

Posté par Hive Arc (page perso, ) le 02/07/2004 à 15:43. (lien). Évalué à 5.

Le lien "Points communs et différences avec la plateforme Java" est de mauvaise fois, car on compare ici principalement les langages et certainement pas les possibilités offertes par les plateformes ! Sans compter que l'on parle de .net sur cette page et pas du tout des possibilités de mono (sauf comme référence). Le jour au mono sera certifié .net je veux bien reconsiderer ce point. En attendant, mono n'a rien a voir avec .net ;-)

De plus, que je sache Java est disponible dans sa toute derniere version sur Linux et avec une compatibilité de 100% (merci au TCK). Alors passer aussi rapidement sur un "détail" à son importance.

Pour moi c'est de la mauvaise fois pure et simple.

Franchement, quite a faire du "portable à tout prix" autant faire du python !

Maintenant si, la portabilité doit être conservé et l'environement souple, alors Java reste le meilleur compromit. Et la confiance renouvellée de Apache avec le passage du projet Geronimo comme projet de premier niveau prouve que le temps n'est plus aux tergiversations dans la communauté.

Mieux vaut laiser icaza jouer avec son mono, moi pendant ce temps je joue avec Looking Glasses :

https://lg3d-core.dev.java.net/lg3dgettingstarted.html(...)

A chacun ces "jeux" ;-)

Point de vue d'un "javateux"

Posté par Julien Bidault (page perso, ) le 02/07/2004 à 18:02. (lien). Évalué à 3.

Je confirme la mauvaise foi sur tout ce qui a été dit sur Java...mais ca a été parfaitement démontré par les réponses précédentes...


Faut pas oublier de bien comparer par rapport à Java 1.5, qui implique des changements assez profonds dans le langage, et des améliorations diverses un peu partout...c'est une plateforme largement utilisée en entreprise, qui de ce fait bénéficie d'un gros feedback des utilisateurs...ce qui se voit dans les JCP.

Enfin, Java est soutenu également par des gros, dont IBM, Borland, etc...

Bref, je pense que Mono va pas remplacer tt de suite Java...

maintenant, si Mono clarifie ses pb de licences vis à vis de MS, si les API sont toutes portées sous linux, si la compatibilité devient la même que celle de Java (nombre de plateformes supportées), alors y'aura un match intéressant, qui vue l'aspect ouvert des 2 langages, pourra que déboucher sur du bon...

[+] Mort au libre qui ne fait que copier, longue vie au libre qui innove!

Posté par HappyCrow () le 02/07/2004 à 19:03. (lien). Évalué à -2.

Micro$oft n'est pas du tout un modèle en
expertise informatique.
Par contre, en marketing peut-être
et en abus de position
dominante sûrement!

Revenir en haut de page