Liens connexes

Dépêche modérée par

Dépêche éditée par

: Mono 2.0 : le singe continue ses grimaces

Posté par TImaniac (Jabber id, page perso, ). Modéré le 09 octobre 2008.
27
L'environnement d'exécution et de développement Mono vient de passer en version 2.0.

Mono est une plate-forme libre, multi-languages et multi-plates-formes compatible avec le framework .NET (produit Microsoft pour Windows). Il permet notamment d'exécuter des applications .NET sous Linux. C'est également une plate-forme de développement complète intégrant un IDE, un débogueur, la prise en charge de nombreux langages (C#, VB.NET, Python, Java, etc.) et de nombreuses bibliothèques de l'écosystème Linux (GNOME, OpenGL, etc.). Cette version majeure apporte son lot de nouveautés - plates-formes, fonctionnalités, outils - et d'améliorations en terme de performances et compatibilité.

Mono est utilisé dans des contextes variés :
  • Sous Linux par des applications de bureau comme F-Spot, Tomboy, Banshee et Beagle ;
  • Toujours sous Linux par des applications web comme mojoPortal ou Dekiwiki ;
  • Par des applications distribuées comme SecondLife (moteur exécution des scripts utilisateurs sur les serveurs de jeu) ;
  • Toujours dans les jeux, le moteur Unity3D ;
  • Enfin l’embarqué : lecteur MP3 Sansa Connect.

> Lire la suite (414 commentaires, moyenne: 2,7).   [dépêche : 6125 caractères]

Mono 2.0 tourne bien entendu sous Linux (x86, x86-64, PowerPC32, Itanium, SPARC, ARM, s390, s390x) mais également Solaris (x86-64, SPARC), les *BSD (x86, x86-64), Windows (x86), MacOSX (x86, PowerPC32) ainsi que sur des plates-formes embarquées ou consoles : Wii, iPhone, lecteurs MP3.

Ecosystème Linux/Unix
L'accent est mis sur l'intégration dans l'environnement GNOME et les technologies "standards" sous Linux/Unix à travers la prise en charge des :

Outils

Compatibilité
L'environnement d'exécution (CLR pour Common Langage Runtime) est compatible avec les différentes versions de l'environnement .NET existants à ce jour (jusqu'à .NET 3.5 basé sur le CLR 2.0)

Le langage C# 3.0 est pleinement supporté ainsi que le langage VB.NET en version 8. Mono est également compatible avec le moteur d'exécution de langages dynamiques (DLR) utilisés par les compilateurs IronPython et IronRuby : ce composant peut servir de base à l'intégration de nouveaux langages dynamiques et peut être comparé à Parrot avec tous les avantages de l'intégration au CLR : support de l'ensemble des bibliothèques .NET, et interopérabilité avec les autres langages de la plate-forme.

Les efforts de compatibilité se poursuivent, notamment avec l'implémentation d'ASP.NET 3.5, Silverlight 2.0 (concurrent de Flash) et WCF (Windows Communication Framework).

La plupart des composants/bibliothèques du framework .NET 2.0 sont implémentés :
Des composants plus récents (framework .NET 3.5) sont également implémentés :
Les composants COM (Windows/Mainsoft COM, XPCOM) sont également supportés

Le Framework .NET 2.1 à la base de Silverlight est en cours d'implémentation (projet Moonlight), une première version bêta est attendue prochainement. Ce projet controversé est pourtant le première signe de reconnaissance « officiel » de Mono par Microsoft : Moonlight représente un gage de portabilité pour la nouvelle technologie de Microsoft qui entre directement en concurrence avec Flash. Moonlight et Silverlight partagent du code, notamment les codecs audio/vidéo (malheureusement sous forme de binaire uniquement, Mono proposant une alternative à travers ffmpeg), les compilateurs IronPython, IronRuby et le moteur DLR que Microsoft a mis sous licence libre.

C# 3.0
Cette nouvelle version du langage C# apporte un grand nombre de nouveautés, notamment :
Voici un exemple de code écrit en C# 3 :

var rss = XDocument.Load("http://linuxfr.org/backend/news-homepage/rss20.rss");

var articles = from item in rss.Descendants("item")
let title = item.Element("title").Value
orderby DateTime.Parse(item.Element("pubDate").Value)
where title.Contains("Mono")
select new{
Titre = title,
Lien = item.Element("link").Value,
Description = item.Element("description").Value
};

if (articles.Any(article => article.Description.Contains("je me suis trouvé")))
Console.WriteLine("je me suis trouvé :)");

Historiquement proche des langages Java et C, le langage C# prend ici une nouvelle direction et devient également un langage fonctionnel (plus proche des langages issus de ML).

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.

polymique...

Posté par collinm (page perso, ) le 09/10/2008 à 09:01. (lien). Évalué à 5.

quel distribution installe ça par défaut?

son intégration dans gnome fait l'objet de polymique

est-ce qu'il y a vraiment un marché pour ça?

car bon moindrement je ferais un soft commercial en .net, j'oserais pas me fier à ça face à des clients

de plus seul une partie de .net est standardisé

avec tout ce que java propose, jvm, librairie.... et sa fort popularité dans le libre... il me semble avoir lu que c'est le langage avec le plus de projet sur sourceforge... à moins d'être un pro windows... l'intéret d'utiliser ce produit est limité

--
www.laboiteaprog.com

C# n'est pas un langage à typage fort !

Posté par syj () le 09/10/2008 à 09:10. (lien). Évalué à 2.

Je pensais que C# était un langage à typage fort ?


var rss = XDocument.Load("http://linuxfr.org/backend/news-homepage/rss20.rss");
var articles = from item in rss.Descendants("item")


çà me parrait bizarre. D'ailleurs, il manquerait pas plein de ";".

F-Sport, Tomboy et Beagle sont 3 applications fort sympathiques

Posté par phocean (page perso, ) le 09/10/2008 à 09:40. (lien). Évalué à 1.

Tout ce que je me permettrai de dire c'est que F-Sport, Tomboy et Beagle sont 3 applications fort sympathiques dont j'aurais du mal à me passer.

Les débats techniques et philosophiques échapent à ma compréhension, j'attends de voir les réactions ici :D

--
JC

Tire de l'annonce sur slashdot!

Posté par abramov_MS () le 09/10/2008 à 12:21. (lien). Évalué à 10.

InternetNews points out that only about half of the .NET apps out there will work on Mono 2.0, for a variety of reasons including (but not limited to) legacy Windows-only libraries and Microsoft's progress on .NET 3.0 and 3.5 APIs.

Je rigole doucement en lisant cela comme prevu mono sera toujours a la traine et en retard d'un train. C'est rigolo comme cela rappelle "legerement" les formats de documents MS Office...

http://www.internetnews.com/dev-news/article.php/3776201/Is+(...)

.NET et portabilité GUI = 2

Posté par tanguy_k (page perso, ) le 09/10/2008 à 15:09. (lien). Évalué à 2.

Si l'application est développée avec les outils MS, notamment les WinForms, l'application fonctionne (1) seulement sous Windows.

Si l'application est développée avec Mono, celle-ci va donc utiliser Gtk# et l'application ne tournera pas sous Mac et j'imagine que sous Windows ca doit être encore assez bancale. (1)

Java SWING ou SWT ne pose pas ce problème
Qt permet de développer pour plusieurs plateformes, WxWidgets et autres aussi.

Si utiliser .NET/Mono signifie qu'il faut recoder sa GUI pour chaque plateforme c'est un retour de 10 ans en arrière !

Existe il au moins une application graphique .NET/Mono qui soit réellement multiplateforme ?




(1) fonctionne != experimental

Pas de Mono pour moi...

Posté par David Sporn (page perso, ) le 09/10/2008 à 16:08. (lien). Évalué à 8.

Mon avis sur Mono est totallement idéologique : pas d'outil de développement calqué sur la propriété intellectuelle de Microsoft dans mon monde libre.

L'attitude de Microsoft (abus de position de monopole constaté et sanctionné par les instances judiciaires américaine et européenne), qu'on a encore pu constater dans le déroulement de la procédure accélérée de certification de leur format bureautique montre qu'on ne pourra pas leur faire confiance avant bien longtemps.

J'avais mis en pause mes développement en Java à cause du "piège Java" ( http://www.gnu.org/philosophy/java-trap.html ) et maintenant que Java est en passe de devenir complètement libre, je me suis remis à la tâche.

Pour moi, Mono est un simple rouage d'un nouveau piège similaire au "piège Java", servant de masque au "piège .Net".

Je n'ai aucun avis sur le mérite technique de la technologie en elle-même, car jusqu'à maintenant, j'ai eu la chance (de mon point de vue actuelle) de ne pas avoir besoin de l'utiliser. Et je dirais que je ne suis pas pressé que ça change...

Portabilité !

Posté par kowalsky () le 09/10/2008 à 17:56. (lien). Évalué à 4.

Je vois beaucoup parler de portabilité dans cette dépêche, et donc, Mono/C# est comparé à Java. Mais java n'est pas pour moi un exemple de portabilité. Java ne tourne pas sur la majorité des architectures ou OS existant. Certe, la JVM tourne sur les plus importants d'entre eux, mais bon... Donc prendre java comme exemple de portabilité, ça m'embête,car on peut dire pareil de Flash dans ce cas.

--
You got the money, I got the soul.

"le singe continue ses grimaces"

Posté par windu.2b (Jabber id, page perso, ) le 09/10/2008 à 19:16. (lien). Évalué à 7.

On parle de Steve Ballmer ?

====>[]

Intérèt de mono et .Net

Posté par Adrien () le 09/10/2008 à 20:39. (lien). Évalué à 4.

J'ai un peu de mal à comprendre…

.Net c'est la plateforme de développement de MS pour son windows.
Mono c'est .Net mais sous linux.

Mais d'après les commentaires plus haut les appli .Net pour windows ne sont pas directement portable sous mono.

D'où mon incompréhension :
À quoi sert mono ?
.Net semble être profondément attaché à windows, quel intérèt de le porter sous linux si c'est pour ne pas avoir une compatibilité direct avec le vrai .Net ?

[+] linux reste sectaire a ce que je vois...

Posté par dufour olivier () le 09/10/2008 à 21:49. (lien). Évalué à -3.

tout ca prouve a quel point certain reste sectaire...
Ca me rappelle un collègue qui adore le cobol sous AS400 et ne comprends pas l'interet des nouveaux languages.... ou encore les adepte de la console qui ne comprenne pas l'interet d'un gui car ca va moins vite a utilisé quand tu connais bien.

Bref, mono n'est pas la uniquement pour le coté cross plateform mais est surtout la pour fournir une plateforme complete de developpement ou on a pas a reinventé la roue. Donc le C/cpp oublie. Y a qu'a compter le nombre de lib qui font la même chose en C. On est sans arret entrain de réinventé la roue car il n'y a pas de framework.

Le GC permet de ne pas avoir a gérer la mémoire donc plus de memory leak ....

Concernant le java, c'est lent, ca oblige a avoir un server IBM en entreprise. En plus coté language, le java = le C# - foreach, - lambda - delegate - les generics ... bref c'est juste qu'on a plus de code a écrir pour faire la meme chose donc moins lisisble donc moins maintenable.

Vous voulez une appli utilisable par tout le monde ... monotorrent marche sur les 2.
maintenant, vu la mauvaise fois, on va surement me dire que ca compte pas...

L'avantage de mono est que c'est cross langage donc on peut coder dans le language que l'on veut.
Il y a déjà pas mal de language de supporté...

Pour ce qui est des performances, certain code écris en C# sont meme plus rapide que du C.
Et puis si on veut joué au con, coté perf arretons le Cpp et vive l'assembleur.

Mon experience .Net

Posté par Cook Captain () le 09/10/2008 à 22:31. (lien). Évalué à 9.

A la recherche d'un logiciel métier spécifique, je contacte un petit éditeur français d'une solution serveur intéressante développée en .Net . Discussion classique sur le produit puis:

Moi> le problème, c'est que votre solution tourne uniquement sous windows et mes serveurs sont en linux. Ca m'ennuie.
Lui> Pas de problème. Avec Linux Il y a mono.
Moi> (naif) Ah oui c'est vrai...

1 semaine plus tard :

Moi> (vicieux) Ok pour tester votre solution mais sous linux
Lui> Ah oui, euh, euh... c'est à dire que ... on va certifier la prochaine version, mais actuellement c'est pas le cas. Vous voulez pas essayer en windows?

Finalement, j'ai acheté le produit parce qu'il m'intéressait et j'ai installé un serveur windows (bouh!!!) . Depuis on a essuyé quelques platres et particulièrement des problèmes de perfs. (pas directement liés à .Net). Discussion avec un des développeurs de la société éditrice :

Lui> il faudrait upgrader la version de la librairie AJAX utilisée avec .Net car il y a des bugs et des fuites mémoire. Mais le directeur a les boules car la société créatrice de la librairie en question a augmenté ses tarifs par 3. Et puis, y a pas longtemps on a racheté 10 licences visual studio et c'est pas franchement donné.

Moralité :

1. les grosses applis développées .net ne tournent pas sous mono
2. Mono est utilisé comme argument marketing pour vendre des produits microsoft.
3. L'écosystème .Net est majoritairement closed source et payant

Ma question : les développeurs de mono ont-ils conscience de se faire manipuler par Microsoft ?

déçu

Posté par TImaniac (Jabber id, page perso, ) le 09/10/2008 à 23:28. (lien). Évalué à 2.

pfff 270 commentaires et pas un couillon pour s'apercevoir que mon bout de code C# 3 se trouve pas :(

[+] priviliégié

Posté par collinm (page perso, ) le 10/10/2008 à 09:40. (lien). Évalué à -4.

est-ce qu'il y a vraiment des gens qui vont utiliser ça au lieu d'une version natif d'un soft sous linux?

mis à par les vendu à ms?

--
www.laboiteaprog.com

Portable executable win32

Posté par Tanguy Ortolo (Jabber id, page perso, ) le 11/10/2008 à 00:12. (lien). Évalué à 3.

Est-ce que les applications Mono ont toujours pour identifiant magique celui des portable executables win32 ? C'est le genre de truc qui montre que .NET n'a pas vraiment été conçu pour être multiplate-forme, et qui oblige à des kludges pour détecter s'il faut lancer tel programme avec Wine ou avec Mono…