burli
Anmeldungsdatum: 27. April 2007
Beiträge: 8985
|
mich interessiert schon lange, wieso an Mono so viel Kritik geübt wird, mal abgesehen davon, dass es ursprünglich von Microsoft stammt. Die Kerntechnologien sind alle Standardisiert und freigegeben. Einzig einige Bibliotheken wie ADO.NET oder ASP.NET sind so weit ich weiß bedenklich. Ansonsten finde ich das .NET Framework eigentlich nicht schlecht, jedenfalls besser als Java. Ich möchte hier jetzt keinen Flamewar und kein Gebashe sondern mal eine sachliche Diskussion, warum man Mono für Programme verwenden sollte und warum nicht. Bisher sehe ich eigentlich nur zwei Kritikpunkte: die Verbindung zu Microsoft und den manchmal etwas seltsamen Entwickler von Mono. Wikipedia schreibt:
Teile der Klassenbibliothek berühren möglicherweise Softwarepatente der Firma Microsoft.
In diesem Satz sind zwei entscheidende Worte. Teile und möglicherweise. Einige der Teile werden genannt
Andere Teile, wie zum Beispiel Windows Forms, ADO.NET, und ASP.NET sind hiervon jedoch ausgeschlossen.
Windows Forms sollte unter Linux eh keine Rolle spielen, ASP.NET ist für Desktop Anwendungen uninteressant und für ADO.NET gibt es Alternativen (NHibernate beispielsweise). Interessant wäre vor allem, welche Teile der Klassenbibliothek denn noch möglicherweise irgendwelchen Patenten unterliegen könnte und die man meiden sollte. Eindeutiges Pro ist die einheitliche Typisierung unter den Sprachen. Einen Vorteil von "interpretierten" Sprachen (ich weiß, dass es nicht stimmt) wie C#, Java oder auch Python gegenüber compilierten Sprachen ist die fehlende Notwendigkeit, sich um viele fehleranfällige Dinge wie Speicherverwaltung zu kümmern. Außerdem bringen solche Sprachen immer große Klassenbibliotheken mit, die man sich bei C, C++ usw zusammensuche muss (glib, gobject, Qt, Boost...)
|
Vegeta
Anmeldungsdatum: 29. April 2006
Beiträge: 7943
|
Also mein Eindruck von Mono-Programmen: Sie starten langsamer und sind auch in der Benutzung träger. Ist für mich schon Grund genug Mono-Programme zu meiden.
|
der_alex1980
Anmeldungsdatum: 7. November 2007
Beiträge: 112
|
Ich denke nicht, dass Mono stärker von Software-Patenten bedroht ist als andere Open Source Projekte. Durch die Vereinbarung zwischen Novell und Microsoft sogar eher weniger, wobei ich nicht weiß, ob diese Vereinbarung mit Attachmate fortgeführt wird. Wie man zu Mono steht, kommt auch auch stark auf persönliche Vorlieben an. Ich programmiere mit C# am produktivsten. Die Sprache bietet einige Konstrukte, die es in ähnlichen Sprachen wie Java nicht gibt, zum Beispiel Delegates, Properties, LINQ, Extension Methods, etc und mit MonoDevelop gibt es eine ordentliche IDE, die ich inzwischen sogar teilweise für C++ Programmierung hernehme. Natürlich ist der Funktionsumfang von MonoDevelop noch weit von Eclipse oder Visual Studio entfernt, aber für meine Ansprüche ausreichend. Mono läuft auf sehr vielen Plattformen, allerdings werden nicht alle Komponenten auf jeder Plattform unterstützt und damit unterscheidet es sich von Java. Vor allem einige GUI Komponenten sind bei Mono plattformspezifisch. Es gibt zum Beispiel neben GTK# und WinForms, welche mehr oder weniger auf den drei großen Systemen Windows, Linux und Mac unterstützt werden (ok, Winforms eher weniger 😉 ), noch spezielle Bindings für OSX, iPhone und Android, da man generell der Meinung ist, plattformunabhängige GUIs seien nicht der Weisheit letzter Schluss und spätestens wenn man für mobile Plattformen entwickelt, stößt man sowieso an deren Grenzen. Meiner Meinung nach ist Mono gut geeignet für Desktop Anwendungen. Komplexe Serveranwendungen auf Mono Basis kenne ich nicht, das dürfte weiterhin die Domäne von Java sein. Die Runtime oder nur Teile davon kann man auch in C / C++ Anwendungen einbetten und damit C# quasi als Skriptsprache nutzen. Einige Spiele Engines nutzen Mono auf diese Weise. Was mich momentan noch stört ist der Speicherverbrauch, allerdings wird die nächste Version einen neuen Garbage Collector beinhalten, der nach bisherigen Tests deutlich besser arbeitet als der aktuelle.
|
burli
(Themenstarter)
Anmeldungsdatum: 27. April 2007
Beiträge: 8985
|
Vegeta schrieb: Also mein Eindruck von Mono-Programmen: Sie starten langsamer und sind auch in der Benutzung träger. Ist für mich schon Grund genug Mono-Programme zu meiden.
Verwendest du Firefox und Thunderbird? Oder Evolution? Einer der wenigen Schnellstarter ist Chromium, aber auch nur mit einem leeren Tab. Hat man ein paar offene Tabs kann es manchmal dauern, weil er jede Seite neu läd. Mal ehrlich, die Startzeiten von den meisten Programmen sind sekundär und meistens eher dem Programmierer geschuldet als der Programmiersprache. Ich habe schon schnelle Java/Mono Programme gesehen und lahme C++ Programme. Habe gerade mal einen kleinen Vergleich gemacht. Rhythmbox braucht etwa 3 Sekunden zum Starten. Und zwar ohne Titel, nur mit Jamendo und Magnatune und den normalen Plugins. Banshee braucht etwa 4 Sekunden. Mit Amazon Store, Ubuntu One Store, Miro, ein paar Titeln ... Wenn ich Bansee nur etwas abspecke startet er genauso schnell wie Rhythmbox (beide mehrfach gestartet, damit sie im Cache sind. Frisch von Platte sieht es aber auch nicht anders aus. Da brauchen beide 5-6 Sekunden). Sogar beim Speicherverbrauch kann Banshee punkten. Banshee braucht mit 30 Titeln und einer gewissen Laufzeit weniger als Rhythmbox, frisch gestartet und ohne einen Titel in der Datenbank. Frisch gestartet braucht Banshee hier aktuell 33,7MB, Rhythmbox 49,4MB Bedienung von Banshee ist auch flott. Ähnliches Bild bei Tomboy. Startet relativ schnell und braucht relativ wenig Speicher. Monodevelop braucht schon etwas länger zum starten. Verglichen mit Eclipse aber ein Wimpernschlag und außerdem ein Speicherwunder.
|
Vegeta
Anmeldungsdatum: 29. April 2006
Beiträge: 7943
|
burli schrieb: Verwendest du Firefox und Thunderbird? Oder Evolution?
Nee, Opera ☺
Mal ehrlich, die Startzeiten von den meisten Programmen sind sekundär und meistens eher dem Programmierer geschuldet als der Programmiersprache. Ich habe schon schnelle Java/Mono Programme gesehen und lahme C++ Programme.
Ich habe noch nie ein schnelles Java-Programm gesehen, weswegen ich da sogar noch einen größeren Bogen rum mache. Leider gibts für JDownloader keine Alternative, der braucht auf meiner alten Kiste mit 1GB RAM ca. 5-10 Sekunden zum Starten und ist von der Bedienung sehr träge. Selbst unter Windows gelten NET-Programme als langsamer, zumindest war das bis zu meinem endgültigen Wechsel weg von Windows noch so. Wenn du einen schnellen Rechner mit ausreichend viel RAM hast, wirst du vermutlich keine großen Unterschiede merken, aber auf älteren Rechnern merkt man schon, dass z.B. Tomboy einige Sekunden bis zum Start braucht und andere Programme quasi sofort da sind. Wenn du testen möchtest, wäre vielleicht Tomboy und Gnote eine gute Auswahl.
Monodevelop braucht schon etwas länger zum starten. Verglichen mit Eclipse aber ein Wimpernschlag und außerdem ein Speicherwunder.
Ja ja, Java 😉
|
burli
(Themenstarter)
Anmeldungsdatum: 27. April 2007
Beiträge: 8985
|
Vegeta schrieb: Wenn du einen schnellen Rechner mit ausreichend viel RAM hast, wirst du vermutlich keine großen Unterschiede merken,
Ein Pentium E2140 (Dual Core mit 1,6GHz), 2GB RAM, HD4350 und eine normale 250GB Festplatte von Samsung ist jetzt nicht gerade ein High End Gerät auf dem neuesten Stand. Auf einem Atom N270 mag es vielleicht deutlicher ausfallen. Hab leider keinen greifbar. Wer natürlich mit Gewalt einen Pentium 3 mit 256MB RAM bis zum Ende seiner Tage nutzen will mag den Unterschied vermutlich spüren. Aber da kann ich auch nicht helfen.
aber auf älteren Rechnern merkt man schon, dass z.B. Tomboy einige Sekunden bis zum Start braucht und andere Programme quasi sofort da sind. Wenn du testen möchtest, wäre vielleicht Tomboy und Gnote eine gute Auswahl.
Tomboy ca 2 Sekunden, Gnote ca 3 Sekunden. Beide aus dem Speicher. Von Platte (frisch nach dem Booten) mit je 3,5 Sekunden etwa gleich schnell. Dabei muss man bedenken, dass Tomboy auch noch so Sachen wie das Indicator Applet und UbuntuOne hat. Einzig beim Speicherverbrauch kann Gnote punkten. 19,5MiB Tomboy, 6,7MiB Gnote Ich sehe hier keinen nennenswerten Vorteil. Im Gegenteil, die Mono Programme starten in etwa gleich schnell wie ihre C/C++ Varianten und können mehr. Lange Rede, kurzer Sinn: Startzeiten, Bedienkomfort oder Speicherverbrauch sind keine KO Kriterien für Mono Programme. Die sind viel mehr irrelevant und vernachlässigbar
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17432
|
burli schrieb: mich interessiert schon lange, wieso an Mono so viel Kritik geübt wird, mal abgesehen davon, dass es ursprünglich von Microsoft stammt.
Wieso sollen wir davon absehen? Ich kann nicht davon absehen.
Die Kerntechnologien sind alle Standardisiert und freigegeben. Einzig einige Bibliotheken wie ADO.NET oder ASP.NET sind so weit ich weiß bedenklich.
Ist dass die Begründung um absehen zu sollen? Da sieht die Sache für mich aber ganz anders aus. Die Geschichte ist ja, soweit ich weiß die, dass Java sich Mitte der 90er rasch zum Hype entwickelte, alles sprach von Applets mit denen man die Kaffeekanne über das Netzwerk steuern können sollte - faktisch war da wenig dran, und in Wahrheit punktete Java mehr und mehr auf dem Server. Und Server heißt natürlich, dass das nicht alles Windows, sondern wohl oft Unixmaschinen waren.
Und dann kam Microsoft mit ihrem Microsoft-Java raus, und ermutigten dessen Gebrauch, aber der Murks war nicht kompatibel zum Sun-Java: Programme, die mit Suns Java entwickelt waren liefen auf den MS-Geräten, aber viele MS-Javaprogramme nicht unter Suns JVM. Sun ging dagegen gerichtlich vor, was MS damit bestrafte, dass sie dann gar keine JVM mehr auf den Windowsrechnern vorinstalliert wurde. Aber sie entwickelten ein .net, welches ähnlich plattformneutral aufgestellt war wie Java; es lief mit Win98, WinNT und Windows2000. Und damit verbunden war natürlich der Unix/Linux Plattform das Wasser abzugraben, als strategische Zielrichtung; selbst das Geschäft machen, und die Leute dazu zu bringen MS als Serversoftware einzusetzen, welches ja das natürliche Betriebssystem für .net ist.
Ansonsten finde ich das .NET Framework eigentlich nicht schlecht, jedenfalls besser als Java.
Es kam auch paar Jahre später, und konnte aus dessen Fehlern lernen - das hat es auch. Fast könnte man sagen 'muss ich neidvoll anerkennen' aber mit Scala liegt die JVM natürlich wieder vorne. 😉 Was natürlich nicht besser, sondern schlechter war, war, dass es nicht von vorneherein plattformneutral ausgerichtet war; das Linux daher eben stiefmütterlich behandelt wird. Die Community leistet zwar Beachtliches um am Ball zu bleiben - Details dazu kann ich nicht auflisten - dazu stehe ich .net dann doch zu fern.
Ich möchte hier jetzt keinen Flamewar und kein Gebashe sondern mal eine sachliche Diskussion, warum man Mono für Programme verwenden sollte und warum nicht.
Ich hoffe mein natürlich vorne (Scala) kann großmütig geduldet werden. ☺
... die fehlende Notwendigkeit, sich um viele fehleranfällige Dinge wie Speicherverwaltung zu kümmern.
Dinge wie Speicherveraltung? Gibt es mehrere? Ich halte Speicherverwaltung für eine recht einsame Sache im Programmierwesen - was wäre denn noch so was?
|
Vegeta
Anmeldungsdatum: 29. April 2006
Beiträge: 7943
|
burli schrieb: Wer natürlich mit Gewalt einen Pentium 3 mit 256MB RAM bis zum Ende seiner Tage nutzen will mag den Unterschied vermutlich spüren. Aber da kann ich auch nicht helfen.
Athlon 64 3200+, 1GB RAM, 500GB HDD Tomboy war bei mir, als ich es noch benutzt habe, beim Starten langsamer als Zim. Heute benutze ich myNotes und das ist quasi sofort da, auch beim Erststart. Aber ist auch kein Wunder, da neben dem Programm auch erst die Mono Runtime Library geladen werden muss.
Tomboy ca 2 Sekunden, Gnote ca 3 Sekunden. Beide aus dem Speicher.
Also 2-3 Sekunden ist schon übel, da sollte jedes halbwegs ordentliche Programm (Ausnahme Dickschiffe wie OpenOffice) sofort erscheinen.
Ich sehe hier keinen nennenswerten Vorteil. Im Gegenteil, die Mono Programme starten in etwa gleich schnell wie ihre C/C++ Varianten und können mehr.
Es gibt selbst unter Windows Glaubenskriege wegen NET. Die werden sicherlich nicht seit meinem Abgang verschwunden sein, schau am besten da mal nach weswegen die Leute das Zeug nicht benutzen. Da liest man immer wieder langsamer Start, träger im Vergleich zu C++ & Co., größerer Speicherverbrauch wegen der Libraries etc. Das kannst du dann 1 zu 1 auf Mono übertragen, gibt selbst hier im Forum genügend Stellen wo über Mono bereits diskutiert wurde und solche Argumente immer wieder fallen.
Lange Rede, kurzer Sinn: Startzeiten, Bedienkomfort oder Speicherverbrauch sind keine KO Kriterien für Mono Programme. Die sind viel mehr irrelevant und vernachlässigbar
Rein subjektive Meinung, du solltest nicht die zwangsläufige langsamere Geschwindigkeit der Mono-Programme außer Acht lassen, das macht sich natürlich erst bei größeren Datenmengen bemerkbar.
|
burli
(Themenstarter)
Anmeldungsdatum: 27. April 2007
Beiträge: 8985
|
user unknown schrieb: burli schrieb: mich interessiert schon lange, wieso an Mono so viel Kritik geübt wird, mal abgesehen davon, dass es ursprünglich von Microsoft stammt.
Wieso sollen wir davon absehen? Ich kann nicht davon absehen.
Mono hat in dem Sinn ja erstmal nichts mit Microsoft zu tun. Mono verwendet nur eine Technologie, die ursprünglich von Microsoft entwickelt und anschließend freigegeben wurde. Würde .NET nicht von Microsoft sondern z.B. von Google stammen (ansonsten alles 100% identisch) würde sich glaube ich keiner aufregen. Die Kerntechnologien sind alle Standardisiert und freigegeben. Einzig einige Bibliotheken wie ADO.NET oder ASP.NET sind so weit ich weiß bedenklich.
Ist dass die Begründung um absehen zu sollen?
Nein, dass ist der Versuch, festzustellen, von welchen Teilen von Mono man die Finger lassen sollte, um mit Microsoft nicht in's Gehege zu kommen, sollten die es sich doch mal anders überlegen.
Dinge wie Speicherveraltung? Gibt es mehrere? Ich halte Speicherverwaltung für eine recht einsame Sache im Programmierwesen - was wäre denn noch so was?
Ich finde, die Speicherverwaltung einen ganz entscheidenden Punkt. Die kostet bei der Entwicklung und beim Debuggen viel Zeit und war in der Vergangenheit für viele Sicherheitsprobleme verantwortlich. Außerdem bieten solche "Framework Systeme" wie Java, .NET oder Python eine riesige Klassenbibliothek. Bei C oder C++ muss man sich die Mühsam zusammensuchen. Bei C++ gibt es ja erstmal nur die STL. Der Rest sind externe Quellen (Boost, Qt...) Vegeta schrieb: Also 2-3 Sekunden ist schon übel, da sollte jedes halbwegs ordentlichen Programm (Ausnahme Dickschiffe wie OpenOffice) sofort erscheinen.
Ich finde, 2-3 Sekunden Startzeit ist absolut im Rahmen.
Da liest man immer wieder langsamer Start, träger im Vergleich zu C++ & Co., größerer Speicherverbrauch wegen der Libraries etc. Das kannst du dann 1 zu 1 auf Mono übertragen, gibt selbst hier im Forum genügend Stellen wo über Mono bereits diskutiert wurde und solche Argumente immer wieder fallen.
Rein subjektive Meinung, du solltest nicht die zwangsläufige langsamere Geschwindigkeit der Mono-Programme außer Acht lassen, das macht sich natürlich erst bei größeren Datenmengen bemerkbar.
Ich glaube, viele unterliegen dem gleichen Fehler wie du und vergleichen Äpfel mit Birnen. Ja, dein Programm startet schneller als Tomboy, aber bring deinem Programm zum Beispiel mal Plugins bei, die geladen werden sollen, Syntaxprüfung, Verlinkung zwischen den Notizen, Hervorhebung von WikiWords, Synchronisation mit WebDav, UbuntuOne oder ähnlichem usw. Ich will deine Leistung nicht schmälern, es ist ein nettes Programm. Aber vom Funktionsumfang halt auch deutlich einfacher als zum Beispiel Tomboy. Ich hab bei Tomboy einfach mal alle Plugins deaktiviert. Schon startet es fast ne Sekunde schneller. Und ob ein Programm jetzt eine oder zwei Sekunden braucht ist mal völlig Banane Ich glaube, hier sind viele Vorurteile und viel FUD im Spiel. Wenn man Startzeiten, Speicherverbrauch und Bedienoberfläche als KO Kriterium ansieht dürfte es kein einziges Java Programm geben. Projekte wie Tryton (umfangreiches Warenwirtschaftssystem komplett in Python) oder Eric dürfte es dann auch nicht geben. Aber es gibt sie. Und warum? Weil die Entwicklung mit solchen Frameworks erhebliche Zeitvorteile bringt und in der Nutzung nur minimale Nachteile. Ich sehe in Mono nach wie vor nur ein Problem: die Verwendung von Modulen, die Microsoft nicht freigegeben hat. Und da wäre es halt mal nützlich zu wissen, welche das sind
|
Vegeta
Anmeldungsdatum: 29. April 2006
Beiträge: 7943
|
burli schrieb: Ich finde, 2-3 Sekunden Startzeit ist absolut im Rahmen.
Da hat jeder andere Präferenzen. 😉
Der eine möchte ein kleines Programm was nur die nötigsten Funktionen besitzt, andere benutzen lieber eine überfrachtete Anwendung, kennt noch jemand ACDSee?
Ich glaube, viele unterliegen dem gleichen Fehler wie du und vergleichen Äpfel mit Birnen. Ja, dein Programm startet schneller als Tomboy, aber bring deinem Programm zum Beispiel mal Plugins bei, die geladen werden sollen, Syntaxprüfung, Verlinkung zwischen den Notizen, Hervorhebung von WikiWords, Synchronisation mit WebDav, UbuntuOne oder ähnlichem usw.
Also die genannten Funktionen ließen sich ohne sehr großen Aufwand einbauen, bis auf die Synchronisation, da müsste man erst schauen wie das im Detail funktioniert und ich bin mir sicher, dass mein Programm immer noch deutlich schneller laden würde. 😉
Ich hab bei Tomboy einfach mal alle Plugins deaktiviert. Schon startet es fast ne Sekunde schneller. Und ob ein Programm jetzt eine oder zwei Sekunden braucht ist mal völlig Banane
Hast du auch schon mal Zim probiert? Das ist auch eine Art Wiki, myNotes ist ja vom Aufbau ganz anders.
Ich glaube, hier sind viele Vorurteile und viel FUD im Spiel. Wenn man Startzeiten, Speicherverbrauch und Bedienoberfläche als KO Kriterium ansieht dürfte es kein einziges Java Programm geben.
Alle Java-Programme, die ich kenne und benutzt habe, waren deutlich langsamer als andere Anwendungen. JDownloader und Eclipse wurden bereits genannt, TV-Browser gehört genauso dazu wie auch eine Anwendung von der ich den Namen nicht mehr weiß und mit der man optimal Dateien auf CDs aufteilen konnte. Deutlich langsamer beim Start und auch bei der Berechnung der Aufteilung als z.B. Burn to the Brim.
Ich sehe in Mono nach wie vor nur ein Problem: die Verwendung von Modulen, die Microsoft nicht freigegeben hat. Und da wäre es halt mal nützlich zu wissen, welche das sind
Ich habe meine Vorurteile von Windows mitgebracht und da gabs damals schon erheblich mehr Programme in NET als es jetzt unter Linux in Mono gibt. Es gibt etliche Diskussionen darüber, wenns dich interessiert im Forum essential-freebies.de kannst du da einige finden, sofern die nicht gelöscht wurden (Offtopic wird/wurde dort schnell gelöscht). Hier mal eine kurze Contra-Liste aus einem angestaubten Thread, Pro-Punkte werden aber auch genannt:
....NET ist mit 24 MB zu groß, .NET müllt das System zu ....NET läuft auf keinem anderen OS, außer Windows ....NET ist langsam ...dank meines etwas älteren Rechners merkt man, daß die Programme langsamer sind als vergleichbare Programme in anderen Sprachen (als.NET). ...Java und.NET sind Runtime-Compiler ergo geht auch Performance verloren gegenüber herkömmlichen Kompilaten.
Oder eine andere Meinung von ghosthunter aus demselben Thread: Das mag wohl daran liegen das.net in keinster Weise irgendeinen Vorteil hat. Es läuft nicht im Gegensatz zu JAVA auf anderen OS. NET Anwendungen sind langsam und müllen das System unheimlich zu. Ich kenne etliche Leute die sich sowas niemal installieren, dazu gehöre ich auch. Erst wenn es keine Anwendungen mehr außer NET geben sollte, dann werde ich 100% auf Linux umsteigen. Denn.NET ist nun wirklich der allerletzte... den MS rausgebracht hat. Deshalb wird es ein Wunschtraum sein das die Diskussionen aufhören werden.
Aber wie gesagt, muss jeder selber wissen ob er solche Programme mag oder nicht. Ich mache jedenfalls einen Bogen drum.
|
burli
(Themenstarter)
Anmeldungsdatum: 27. April 2007
Beiträge: 8985
|
Vegeta schrieb: Der eine möchte ein kleines Programm was nur die nötigsten Funktionen besitzt, andere benutzen lieber eine überfrachtete Anwendung, kennt noch jemand ACDSee?
Du kannst den Programmumfang und den damit einher gehenden Mehrkosten an Ressourcen aber nicht der Programmiersprache anlasten. Man kann mit Mono sicher ein zu deinem identischen Programm schreiben, das dann ähnlich schnell startet und nur unwesentlich mehr Speicher braucht als deins. Ich weiß ja nicht, wie du so arbeitest, aber wenn dein System aus 1000 kleinen Programmen besteht, die alle in 0,1s starten ist das ja schön. Aber wenn du, um eine Aufgabe zu erledigen, 20 davon starten musst kommst du auch auf 2 Sekunden Startzeit und hast auch nichts gewonnen. Dann lieber ein Programm 2 Sekunden starten lassen und mit dem dann alle Aufgaben erledigen können.
Tomboy braucht 19MB. Ein leere GTK Fenster nur 5MB. Irgendwas macht der wohl falsch. Oder meint der den Download? Kann auch sagen "Ubuntu ist 700MB groß und müllt das System zu." oder "MS Office ist 1,8GB groß und müllt das System zu". Die Aussagen sind genauso sinnfrei Wir reden hier von Mono das ist relativ. Normale Desktop Anwendungen sind, richtig programmiert, genauso schnell wie andere auch. Zumal die Reaktionszeit der GUI (Aufklappen von Menus z.B.) ja nichtmal von der Sprache abhängig ist sondern vom Toolkit. Einzige Ausnahme sind vielleicht langwierige wissenschaftliche Berechnungen oder ähnliches. Aber deshalb muss ich nicht gleich das komplette Programm in Assembler schreiben. Da schreibt man nur die zeitkritischen Teile in einer schnelleren Sprache. Das mag sein. Und auf meinem C64 funktioniert der Mist gar nicht... Wie Relevant ist das? Wie stark fällt das in's Gewicht? Bei allen Mono Programmen, die ich hier getestet habe, ist das jedenfalls nicht relevant. Oder eine andere Meinung von ghosthunter aus demselben Thread: Das mag wohl daran liegen das.net in keinster Weise irgendeinen Vorteil hat. Es läuft nicht im Gegensatz zu JAVA auf anderen OS. NET Anwendungen sind langsam und müllen das System unheimlich zu. Ich kenne etliche Leute die sich sowas niemal installieren, dazu gehöre ich auch. Erst wenn es keine Anwendungen mehr außer NET geben sollte, dann werde ich 100% auf Linux umsteigen. Denn.NET ist nun wirklich der allerletzte... den MS rausgebracht hat. Deshalb wird es ein Wunschtraum sein das die Diskussionen aufhören werden.
Aber wie gesagt, muss jeder selber wissen ob er solche Programme mag oder nicht. Ich mache jedenfalls einen Bogen drum.
Na sicher. Aber du darfst auch OpenOffice nicht mit Nano vergleiche, oder Banshee mit dem play Befehl, um es mal in's Extreme zu ziehen. Wie gesagt, der Funktionsumfang eines Programms hat nicht das geringste mit der Programmiersprache zu tun, in der es programmiert wurde. Ich bin im Übrigen kein Mono Fanboy und kein Microsoft Fan. Ich programmiere in Python und werde bis auf Weiteres auch dabei bleiben. Aber ich schaue immer wieder über den Tellerrand und hätte einfach mal ein paar stichhaltige Gründe, die gegen Mono sprechen. Bisher wurde noch keiner genannt. Zumindest keiner, den ich nachvollziehen konnte.
|
der_alex1980
Anmeldungsdatum: 7. November 2007
Beiträge: 112
|
burli schrieb: Ich sehe in Mono nach wie vor nur ein Problem: die Verwendung von Modulen, die Microsoft nicht freigegeben hat. Und da wäre es halt mal nützlich zu wissen, welche das sind
Es geht nicht um einzelne Module, sondern eher um die Frage, welche Patente Microsoft an .NET Technologien besitzt und ob Mono diese Patente ebenfalls verletzt. Zweiteres ist keineswegs klar, da Softwarepatente in der Regel nicht nur das Softwaresystem an sich, sondern auch einige Umsetzungsdetails beschreiben. Zum Beispiel hat das VFAT Modul des Linuxkernels angeblich das VFAT Patent von Microsoft verletzt. Nach einem Patch, der die Implementierung etwas ändert, verletzt es das Patent angeblich nicht mehr. Samba verletzt nach eigenen Angaben auch keine MS Patente, da es sich um einige Details unterscheidet. Ähnliches gilt für freetype. Ich verstehe deshalb nicht, wieso die Patentdiskussion immer nur im Zusammenhang mit Mono auftaucht, nicht aber bei anderen Projekten. Bei Android zum Beispiel wäre die Diskussion wesentlich angebrachter. 😉 Mono ist jetzt 10 Jahre alt und in der Zeit haben es die Kritiker nicht geschafft, auch nur ein einziges Patent vorzuzeigen, gegen das Mono verstößt. Vegeta schrieb:
Ähmm...deine kleine Notizzettelanwendung "müllt" das System ebenfalls mit fast 20 MB an Abhängigkeiten zu. 😛
|
Vegeta
Anmeldungsdatum: 29. April 2006
Beiträge: 7943
|
burli schrieb: Du kannst den Programmumfang und den damit einher gehenden Mehrkosten an Ressourcen aber nicht der Programmiersprache anlasten. Man kann mit Mono sicher ein zu deinem identischen Programm schreiben, das dann ähnlich schnell startet und nur unwesentlich mehr Speicher braucht als deins.
Das bezweifle ich, eben weil neben dem Programm die Runtime Library geladen werden muss. So was müssen herkömmliche Programme nicht.
Tomboy braucht 19MB. Ein leere GTK Fenster nur 5MB. Irgendwas macht der wohl falsch. Oder meint der den Download?
Yap, zu damaligen Zeiten war der Download 24MB groß, entpackt waren es dann über 100MB. Wie groß heutzutage NET ist kann ich nicht beurteilen, aber sicherlich um ein Vielfaches größer.
* ....NET ist langsam
das ist relativ. Normale Desktop Anwendungen sind, richtig programmiert, genauso schnell wie andere auch. Zumal die Reaktionszeit der GUI (Aufklappen von Menus z.B.) ja nichtmal von der Sprache abhängig ist sondern vom Toolkit. Einzige Ausnahme sind vielleicht langwierige wissenschaftliche Berechnungen oder ähnliches. Aber deshalb muss ich nicht gleich das komplette Programm in Assembler schreiben. Da schreibt man nur die zeitkritischen Teile in einer schnelleren Sprache.
Wenn damals, der Thread ist von Ende 2004, gesagt wurde NET ist langsam, meinst du wirklich die haben sich das alles aus den Fingern gesogen? Und die GUI ist auch von der verwendeten Sprache abhängig, hier nehme ich wieder JDownloader, das bei Wechsel des Tabs ca. ½ - knappe Sekunde braucht bis sich das Tab wechselt. Die GUI von Firefox ist auch langsam, eben weil sie auf JavaScript aufbaut.
* ...Java und.NET sind Runtime-Compiler ergo geht auch Performance verloren gegenüber herkömmlichen Kompilaten.
Wie Relevant ist das? Wie stark fällt das in's Gewicht? Bei allen Mono Programmen, die ich hier getestet habe, ist das jedenfalls nicht relevant.
Wie relevant das ist? Eine Anwendung die Aufgaben immer und immer wieder neu berechnen muss, ist halt langsamer als eine die fertig kompiliert ist. Dazu brauchst du dir doch nur JavaScript ansehen, da wird auch ständig alles neu berechnet und wie schnell das geworden ist, weil da zuerst in Bytecode übersetzt wurde und nun sogar zu Maschinensprache kompiliert wird.
Wie gesagt, der Funktionsumfang eines Programms hat nicht das geringste mit der Programmiersprache zu tun, in der es programmiert wurde.
Theoretisch schon, es gibt Programmiersprachen die sind beschränkt, z.B. Basic, da wirst du nicht alles umsetzen können, was z.B. in C++ möglich ist. Oder meinst du, du könntest damit z.B. Kernel Hooks erstellen? 😀
Aber ich schaue immer wieder über den Tellerrand und hätte einfach mal ein paar stichhaltige Gründe, die gegen Mono sprechen. Bisher wurde noch keiner genannt. Zumindest keiner, den ich nachvollziehen konnte.
Also wenn dir die Gründe alle nicht zusagen, die man so im Netz findet und auch andere aufführen, dann bleibt natürlich kein Contra-Punkt mehr übrig und NET oder Mono ist das beste, was die Menscheit jemals erfunden hat. der_alex1980 schrieb: * ....NET ist mit 24 MB zu groß, .NET müllt das System zu
Ähmm...deine kleine Notizzettelanwendung "müllt" das System ebenfalls mit fast 20 MB an Abhängigkeiten zu. 😛
24MB Downloadgröße, entpackt waren das weit über 100MB.
|
burli
(Themenstarter)
Anmeldungsdatum: 27. April 2007
Beiträge: 8985
|
Mir ist klar, dass Mono (Java, Python...) Programme langsamer starten, mehr Speicher brauchen und etwas langsamer in der Ausführung sind. Die entscheidende Frage ist "Ist das relevant?". In Ausnahmefällen vermutlich schon, mit steigendem Hardwarealter höchst wahrscheinlich. Nur sind die Ausnahmefälle Grund genug, solche Frameworks komplett zu verurteilen? Und warum jammert keiner, dass sein Windows 7 nicht auf seinem alten Pentium 3 mit 128MB RAM läuft? Mal ehrlich, gerade bei Windows Nutzern finde ich Diskussionen über 20MB RAM oder gar Festplattenbelegung einfach nur lächerlich. der_alex1980 schrieb:
Es geht nicht um einzelne Module, sondern eher um die Frage, welche Patente Microsoft an .NET Technologien besitzt und ob Mono diese Patente ebenfalls verletzt.
Die Kerntechnologie ist IMHO komplett frei und von MS wurde mit Nachdruck bestätigt, dass es keine Patentklagen geben wird. Gleiches gilt für C#. Bei VB.NET könnte das schon wieder anders aussehen. Interessant ist deshalb eigentlich vor allem die Klassenbibliothek. Hier sind mir nur die drei bereits genannten Klassenmodule bekannt, um die man einen Bogen machen sollte.
Zweiteres ist keineswegs klar, da Softwarepatente in der Regel nicht nur das Softwaresystem an sich, sondern auch einige Umsetzungsdetails beschreiben.
Es wäre denkbar, dass z.B. der JIT, zufällig oder absichtlich, eine patentierte Technologie verwendet. Aber wie gesagt, angeblich seien alle Kernkomponenten frei verfügbar.
Ich verstehe deshalb nicht, wieso die Patentdiskussion immer nur im Zusammenhang mit Mono auftaucht, nicht aber bei anderen Projekten. Bei Android zum Beispiel wäre die Diskussion wesentlich angebrachter. 😉 Mono ist jetzt 10 Jahre alt und in der Zeit haben es die Kritiker nicht geschafft, auch nur ein einziges Patent vorzuzeigen, gegen das Mono verstößt.
Interessante Fragen, die ich mir auch schon gestellt habe. Vegeta schrieb:
Ähmm...deine kleine Notizzettelanwendung "müllt" das System ebenfalls mit fast 20 MB an Abhängigkeiten zu. 😛
So gesehen... 😛. Aber das stimmt schon. Egal, womit man programmiert, irgendwelche Bibliotheken braucht man immer. Und man kann, speziell unter Linux, nicht von der ganzen Welt erwarten oder sogar verlangen, dass alle das gleiche verwenden. Ich könnte genauso sagen, wenn man alles in C# programmieren würde (also auch den Desktop usw) könnte man auf die ganzen C/C++ Libraries verzichten. Dann bekäme Canonical wieder mehr Platz im ISO Image und könnte Gimp# wieder mit drauf packen *SCNR* 😉
|
burli
(Themenstarter)
Anmeldungsdatum: 27. April 2007
Beiträge: 8985
|
Vegeta schrieb: Wenn damals, der Thread ist von Ende 2004, gesagt wurde NET ist langsam, meinst du wirklich die haben sich das alles aus den Fingern gesogen?
Was die sich 2004 aus den Fingern gesogen haben ist doch wumpe. Wir haben 2011. Und die GUI ist auch von der verwendeten Sprache abhängig, hier nehme ich wieder JDownloader, das bei Wechsel des Tabs ca. ½ - knappe Sekunde braucht bis sich das Tab wechselt. Die GUI von Firefox ist auch langsam, eben weil sie auf JavaScript aufbaut.
Ich meinte etwas anderes. Es ist egal, ob ich ein Programm in C++ schreibe und Qt verwende oder ob ich das Programm in Python schreibe und Qt verwende. Qt ist immer in C++ programmiert und immer gleich schnell. Einzig wenn viele Daten angezeigt werden sollen, die vom Programm vorher aufbereitet werden müssen, macht es sich vielleicht bemerkbar.
Wie relevant das ist? Eine Anwendung die Aufgaben immer und immer wieder neu berechnen muss, ist halt langsamer als eine die fertig kompiliert ist.
Die Compilierung wird aber nur einmal durchgeführt, wenn eine Funktion aufgerufen wird. Nicht bei jedem Funktionsaufruf. Es wird auch nicht das komplette Programm beim Start compiliert sondern nur der Teil, der benutzt wird. In der Praxis macht sich das kaum bemerkbar. Theoretisch schon, es gibt Programmiersprachen die sind beschränkt, z.B. Basic, da wirst du nicht alles umsetzen können, was z.B. in C++ möglich ist. Oder meinst du, du könntest damit z.B. Kernel Hooks erstellen? 😀
Verlass dich nicht darauf, dass C/C++ die einzigen Sprachen sind, die direkt auf die Hardware zugreifen können. Es gibt inzwischen Prozessoren, die zum Beispiel Java Bytecode in der Hardware ausführen. Prinzipiell könnte man ein komplettes Betriebssystem ohne eine Zeile C oder ASM schreiben. Außerdem kannte schon der C64 PEEK und POKE in Basic 😉. Und ich denke, die wenigsten Programmierer müssen sich mit dem Kernel rumschlagen.
Also wenn dir die Gründe alle nicht zusagen, die man so im Netz findet und auch andere aufführen
Argumente aus 2004 sind uninteressant. Seit dem sind 7 Jahre vergangen. In der Informatik sind das Welten. Ich kann, wie bereits mehrfach erwähnt, zum Beispiel das Argument mit der Startzeit nicht nachvollziehen. Die Startzeiten hängen nicht von der Programmiersprache ab. Amarok braucht für den ersten Start hier fast 15 Sekunden, braucht noch mehr RAM und ist nicht in Mono programmiert. Und ob ein Programm jetzt 40 oder 50MB braucht ist ja heutzutage auch Banane. Selbst 2004 war das schon Banane. Ich hatte schon 1999 256MB RAM als Standard in meinem Laptop und 512 in meinem Desktop, wenn ich mich richtig erinnere! 2004 dürfte es 1GB gewesen sein. Seit meinem Pentium 4 (den ich auch schon 2005 oder 6 gekauft hab) hat eigentlich jeder Rechner mindestens 2GB. Wer also heute noch wegen 10 oder 20MB jammert muss irgendwann Ende des letzten Jahrtausends hängen geblieben sein.
|