Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mono / dotGNU : .NET pour Linux

183 réponses
Avatar
Sébastien Kirche
Bonjour à tous,

je sors agréablement surpris d'une semaine de formation sur .NET en
environnement M$.

J'y ai découvert la programmation en C++.NET (je développe en C/C++
traditionnel sur Mac au boulot et je bidouille sous GNU/Linux à la
maison).

Déjà voir que .NET faisait usage d'un compilo JIT m'a un peu fait revoir
mon appréciation négative sur .NET que je considérais (mal) comme Java
avec son code interprété.

Ensuite la surprise vient que le formateur (qui ne pratique pas Linux) a
su m'indiquer qu'il existait une implémentation pour Linux. Deux en fait
après avoir creusé le sujet : Mono (sponsorisé par Ximian/Novell) et
dotGNU.

Et l'agréable vient qu'après avoir bataillé avec des paquetages un peu
expérimentaux (tout n'est pas encore finalisé) j'ai pu voir que mes
programmes de test fonctionnaient directement sous Linux _et_ sous Win
avec le même exécutable (qui d'ailleurs est aussi un .exe sous Linux).

Tiens d'ailleurs pour ajouter à la surprise, le VB.NET est aussi en
cours de portage, ça fait un peu bizarre :)

Sinon on peut pour le moment partager du C# et de l'assembleur IL en
plus de VB (je pense que d'autres suivront mais je n'ai pas vu de c++)
et l'IDE que j'ai testé (MonoDevelop) bien qu'en v0.5 a l'air pas mal.

J'aime bien la complétion intelligente à la Visual Studio (qui àma est
la seule application vraiment valable chez M$ ;).

D'autres ont-il aussi testé .NET en cross-plateforme et qu'en
pensent-ils ?

Crosspost & Suivi prudent vers fr.comp.os.linux.debats
--
Sébastien Kirche

10 réponses

1 2 3 4 5
Avatar
talon
Sébastien Kirche wrote:
Le 27 mai 2005, Richard Delorme vraute :

Déj๠fait non :

http://www.mono-project.com/FAQ:_Licensing

¹ au détail près que tout ne fonctionne pas nécessairement.


Oui, mais non. Moi je parle du langage, pas d'une implémentation
particulière.

Pis de toutes façons Mono est en GPL (sauf les bibliothèques de classes
en MIT X11).

Oùlà on va voir arriver le méta-troll...



Tu veux le méta troll? Mono c'est bien beau, mais qu'est ce que ça vaut
sans tout ce qu'il y a autour dans .NET? Est-ce que tu vas prétendre que
tout ça est libre, que toutes les librairies de classes existent dans Mono,
etc. Tu sais trés bien que la réponse est NON, et plus que non, parceque
presque tout est couvert par des brevêts de Microsoft qui peut tout arrêter
à tout moment si ça lui échappe. Donc la portabilité dont tu parles c'est du
pipot à la puissance 100. A coté de ça, tu as Java, qui fait exactement la
même chose que C#, qui est ni moins bien ni mieux que C# vu que c'est la même
chose à des chiures de mouche prés, qui lui dispose d'une énorme librairie de
classes disponible partout, et rééllement portable, qui est utilisé par des
millions de gens dans le monde. Ne pas voir que C# est encore un Java tordu
made in Microsoft dont le seul but est de torpiller Sun et de torpîller
la portabilité c'est faire preuve d'une nîveté absolument incroyable.


--

Michel TALON


Avatar
Sébastien Kirche
Le 27 mai 2005, Eric Jacoboni vraute :

Euh, tu retardes un peu pour Java... c'est aussi un compilo JIT,
maintenant (depuis le 1.3, je crois, mais je n'en suis pas certain).


Ah ? Au temps pour moi.
N'empêche que j'aime pas tellement. J'ai peut-être tort remarque.

--
Sébastien Kirche

Avatar
Eric Jacoboni
(Michel Talon) writes:

A coté de ça, tu as Java, qui fait exactement la
même chose que C#, qui est ni moins bien ni mieux que C# vu que c'est la même
chose à des chiures de mouche prés, qui lui dispose d'une énorme librairie de
classes disponible partout, et rééllement portable


A ceci prêt que Mono est plus portable que Java... Essaie de faire
tourner Java 1.5 sur OS X, ou sur toute plateforme/architecture non
supportée par Sun, on en reparlera (le seul cas d'espèce étant le
portage FreeBSD, mais à coup de patchs ayant une licence
particulière).

Bon, évidemment, je sais ce qu'on va me dire... A part Intel et Linux,
le reste c'est de la merde. Mais bon, dire que Java est portable,
c'est faux. Les programmes sont portables, mais uniquement sur des
machines disposant d'une JVM donc ce terme est une arnaque pure et
simple. Java appartient à Sun, et je ne vois pas pourquoi on ne lui
reprocherait pas ce que l'on reproche à MS.

Si C# et .NET peuvent venir emmerder Sun sur son terrain, ce sera
toujours ça de gagné. Qu'ils se bouffent le museau, moi je compte les
points. Si Java 5 à ajouté la généricité, le boxing, les structs et
les enum, c'est aussi parce que C# les proposait : c'est comme au
supermarché, la concurrence profite au consommateur (et nique les
petits producteurs, ce qui n'est pas le cas de MS ni de Sun).
--
Éric Jacoboni, né il y a 1420663009 secondes

Avatar
Irvin Probst
On 2005-05-27, Michel Talon wrote:

. A coté de ça, tu as Java, qui fait exactement la
même chose que C#, qui est ni moins bien ni mieux que C# vu que c'est la même
chose à des chiures de mouche prés


Pourrais-tu préciser les critères d'évaluation te permettant d'affirmer
cela ?
Merci.

--
Irvin

Avatar
pikatxu
Michel Talon wrote:
Sébastien Kirche wrote:

Le 27 mai 2005, Richard Delorme vraute :


Déj๠fait non :

http://www.mono-project.com/FAQ:_Licensing

¹ au détail près que tout ne fonctionne pas nécessairement.


Oui, mais non. Moi je parle du langage, pas d'une implémentation
particulière.

Pis de toutes façons Mono est en GPL (sauf les bibliothèques de classes
en MIT X11).

Oùlà on va voir arriver le méta-troll...




Tu veux le méta troll? Mono c'est bien beau, mais qu'est ce que ça vaut
sans tout ce qu'il y a autour dans .NET? Est-ce que tu vas prétendre que
tout ça est libre, que toutes les librairies de classes existent dans Mono,
etc. Tu sais trés bien que la réponse est NON, et plus que non, parceque
presque tout est couvert par des brevêts de Microsoft qui peut tout arrêter
à tout moment si ça lui échappe. Donc la portabilité dont tu parles c'est du
pipot à la puissance 100. A coté de ça, tu as Java, qui fait exactement la
même chose que C#, qui est ni moins bien ni mieux que C# vu que c'est la même
chose à des chiures de mouche prés, qui lui dispose d'une énorme librairie de
classes disponible partout, et rééllement portable, qui est utilisé par des
millions de gens dans le monde. Ne pas voir que C# est encore un Java tordu
made in Microsoft dont le seul but est de torpiller Sun et de torpîller
la portabilité c'est faire preuve d'une nîveté absolument incroyable.




doit en conclure que python est mieux que .net et java réunis ?



Avatar
Eric Jacoboni
(Michel Talon) writes:

A coté de ça, tu as Java, qui fait exactement la
même chose que C#, qui est ni moins bien ni mieux que C# vu que c'est la même
chose à des chiures de mouche prés, qui lui dispose d'une énorme librairie de
classes disponible partout, et rééllement portable


A ceci prêt que Mono est plus portable que Java... Essaie de faire
tourner Java 1.5 sur OS X Panther, ou sur toute
plateforme/architecture non supportée par Sun, on en reparlera (le
seul cas d'espèce étant le portage FreeBSD, mais à coup de patchs
ayant une licence particulière).

Bon, évidemment, je sais ce qu'on va me dire... A part Intel et Linux,
le reste c'est de la merde. Mais bon, dire que Java est portable,
c'est faux. Les programmes sont portables, mais uniquement sur des
machines disposant d'une JVM donc ce terme est une arnaque pure et
simple. Java appartient à Sun, et je ne vois pas pourquoi on ne lui
reprocherait pas ce que l'on reproche à MS.

Si C# et .NET peuvent venir emmerder Sun sur son terrain, ce sera
toujours ça de gagné. Qu'ils se bouffent le museau, moi je compte les
points. Si Java 5 à ajouté la généricité, le boxing, les structs et
les enum, c'est aussi parce que C# les proposait : c'est comme au
supermarché, la concurrence profite au consommateur (et nique les
petits producteurs, ce qui n'est pas le cas de MS ni de Sun).
--
Éric Jacoboni, né il y a 1420663009 secondes

Avatar
talon
pikatxu wrote:

doit en conclure que python est mieux que .net et java réunis ?


Python n'a pas les librairies de C# ou Java, est beaucoup plus lent que
les deux autres etc. Il est trés bien mais ne remplit pas les mêmes fonctions.
Par contre il ne pose aucun problème de liberté.


--

Michel TALON

Avatar
Sébastien Kirche
Le 27 mai 2005, Michel Talon vraute :

Tu veux le méta troll?


Non non. c'était juste une remarque rapport à ma mention de la GPL dans
un fil qui traite de libre.

Mais ma question initiale portait sur les retours d'expérience de .NET
en version MS et libre. Pour le reste je n'ai pas l'intention ni le
besoin de troller sur la liberté du C#. Puisque je vois des
implémentations libres mon idée est faite.

Mono c'est bien beau, mais qu'est ce que ça vaut sans tout ce qu'il y
a autour dans .NET? Est-ce que tu vas prétendre que tout ça est libre,
que toutes les librairies de classes existent dans Mono, etc. Tu sais
trés bien que la réponse est NON, et plus que non, parceque presque
tout est couvert par des brevêts de Microsoft qui peut tout arrêter à
tout moment si ça lui échappe. Donc la portabilité dont tu parles
c'est du pipot à la puissance 100.


Cela a été dit par ailleurs dans le fil mais je crois que la même
remarque peut s'appliquer à Java, non ?

A coté de ça, tu as Java, qui fait exactement la même chose que C#,
qui est ni moins bien ni mieux que C# vu que c'est la même chose à des
chiures de mouche prés, qui lui dispose d'une énorme librairie de
classes disponible partout, et rééllement portable, qui est utilisé
par des millions de gens dans le monde.


La différence c'est que la jvm c'est made-in-Sun. Et donc le java ne
fonctionne que là où le veut bien Sun. Je ne sais pas comment
l'alternative libre de Java est développée, mais je doute que ce soit de
la même façon que pour Mono et dotGNU.

Quand au fait que la base installée soit large, cela n'en fait pas
automatiquement un truc forcément bien. Après tout on critique tant L'OS
de Microsoft qui est pourtant tant utilisé.

Ne pas voir que C# est encore un Java tordu made in Microsoft dont le
seul but est de torpiller Sun et de torpîller la portabilité c'est
faire preuve d'une nîveté absolument incroyable.


Sauf que là n'importe qui peut faire son Common Language Runtime, la jvm
de .NET. Et c'est normalisé.

--
Sébastien Kirche

Avatar
Richard Delorme
pikatxu wrote:

doit en conclure que python est mieux que .net et java réunis ?



Oui.

Python n'a pas les librairies de C#


Si là :
http://www.ironpython.com/

ou Java,

Si aussi, là :
http://www.jython.com/

est beaucoup plus lent que les deux autres etc.


Il existe aussi des JIT pour python.

Il est trés bien mais ne remplit pas les mêmes fonctions.


En effet, il permet beaucoup plus.

Par contre il ne pose aucun problème de liberté.


--
Richard


Avatar
noone
Salut,


Déjà voir que .NET faisait usage d'un compilo JIT m'a un peu fait revoir
mon appréciation négative sur .NET que je considérais (mal) comme Java
avec son code interprété.


Java comme .Net c'est pas du code interprété
C'est de la compilation Just In Time, non ?
En tout cas c'est pas de l'interprétation mot par mot façon Bash...


Ensuite la surprise vient que le formateur (qui ne pratique pas Linux) a
su m'indiquer qu'il existait une implémentation pour Linux. Deux en fait
après avoir creusé le sujet : Mono (sponsorisé par Ximian/Novell) et
dotGNU.


Je crois + en Mono qu'en DotGNU


Et l'agréable vient qu'après avoir bataillé avec des paquetages un peu
expérimentaux (tout n'est pas encore finalisé) j'ai pu voir que mes
programmes de test fonctionnaient directement sous Linux _et_ sous Win
avec le même exécutable (qui d'ailleurs est aussi un .exe sous Linux).


;-)


Tiens d'ailleurs pour ajouter à la surprise, le VB.NET est aussi en
cours de portage, ça fait un peu bizarre :)


Il existe déja "mbas" le compilo VB.Net pour Mono (jamais testé)
mono ton_fichier.exe pour lancer
et mcs pour la compilation C#


Sinon on peut pour le moment partager du C# et de l'assembleur IL en
plus de VB (je pense que d'autres suivront mais je n'ai pas vu de c++)
et l'IDE que j'ai testé (MonoDevelop) bien qu'en v0.5 a l'air pas mal.

J'aime bien la complétion intelligente à la Visual Studio (qui àma est
la seule application vraiment valable chez M$ ;).


En fait c'est rendu possible par la possibilité d'instrospection de
chaque classe (qui est donc capable de donner ses attributs/méthodes)
En C++, ça manque beaucoup (je crois qu'il faut aller chercher dans la
lib Boost pour trouver un truc semblable)

La sérialisation est aussi un gros avantage (stocker directement les
attributs des objets dans du XML)... En C++ il faut utiliser Boost... or
je considère que la persistance d'un objet devrait être un élément de
base du langage (surtout quand c'est un langage orienté objet...)




D'autres ont-il aussi testé .NET en cross-plateforme et qu'en
pensent-ils ?



Pour le côté multiplateforme je suis très réservé quand on utilise les
Winforms même si les mecs de Mono bossent pas mal dessus
http://www.go-mono.com/winforms.html


Je pense que pour faire du vrai multiplateforme en .Net, actuellement,
il faut s'imposer d'utiliser Mono/Monodevelop, éviter les Winforms et
préférer la lib GTK# au moins il n'y aura pas de surprise... (ou très peu)

parce que j'ai essayé de lancer sous Linux une petite appli faite en C#
avec SharpDevelop... c'est pas joli joli...
http://s.cls.free.fr/wikini/wakka.php?wiki=ProjetFieldEB



Au final, je trouve que le projet Mono va permettre d'avoir un
environnement de développement sympa et assez facile à prendre en main
sous Linux... ce qui n'était pas trop le cas avant...
Il faut que l'équipe de Monodevelop bosse encore un peu sur Staetic
(designer d'interface pour Monodevelop)
http://www.mono-project.com/Stetic

Il faudrait aussi que l'interface de Monodevelop soit capable de
facilement (graphiquement) lier les évènements aux fonctions (un peu
comme dans Visual Basic 5.... oui je sais c'est vieux... mais c'est le
seul que j'ai connu ;-) )

Dans le genre je place un bouton sur ma feuille, je double clique dessus
ça crée la fonction Button1_Click(...) et la lie à l'évènement... et moi
je n'ai qu'à écrire à l'intérieur.

... je pense que de ce côté il y a encore BEAUCOUP à faire pour
augmenter la productivité des développeurs débutants comme moi...

En leur donnant un outil de qualité (et surtout facile à prendre en
main)... ils seront beaucoup + tenté de créer des petits programmes pour
améliorer le quotidient de notre OS favori.


Cordialement

1 2 3 4 5