grundlegende frage zu mono/c#
- marmeladebomber
- Beiträge: 1002
- Registriert: 09.11.2002 23:34:58
- Wohnort: Österreich/Tirol
grundlegende frage zu mono/c#
ist c# eine sprache die
a) kompiliert in 1/0 wird
b) ähnlich wie java in bytocde kompiliert wird
c) in 1/0 kompiliert wird aber mono/.net braucht um zu laufen
ich tappe da zurzeit ein wenig im dunklen. oft wird "konkurrenz" zu java gesprochen, dann sehe ich wieder etwas anderes, ich kenne mich nicht mehr aus?
a) kompiliert in 1/0 wird
b) ähnlich wie java in bytocde kompiliert wird
c) in 1/0 kompiliert wird aber mono/.net braucht um zu laufen
ich tappe da zurzeit ein wenig im dunklen. oft wird "konkurrenz" zu java gesprochen, dann sehe ich wieder etwas anderes, ich kenne mich nicht mehr aus?
b)
Allerdings werden (IIRC) in .NET alle Programme in den CLI-Bytecode compiliert, also auch C, VisualBasic etc.
http://de.wikipedia.org/wiki/.NET
Allerdings werden (IIRC) in .NET alle Programme in den CLI-Bytecode compiliert, also auch C, VisualBasic etc.
http://de.wikipedia.org/wiki/.NET
- marmeladebomber
- Beiträge: 1002
- Registriert: 09.11.2002 23:34:58
- Wohnort: Österreich/Tirol
danke für die aufklärung
aber dotgnu.org möchte ja einen "echten" compiler schreiben, oder ist das nur die implementation des compilers?
EDIT: der gnudot compiler ist in C geschrieben, der mono in c#
Problem dabei ist das henne/ei prinzip. der mono muss irgendwann unter MS.net compiliert werden. da könnte MS theoretisch einen riegel vorschieben.
aber dotgnu.org möchte ja einen "echten" compiler schreiben, oder ist das nur die implementation des compilers?
EDIT: der gnudot compiler ist in C geschrieben, der mono in c#
Problem dabei ist das henne/ei prinzip. der mono muss irgendwann unter MS.net compiliert werden. da könnte MS theoretisch einen riegel vorschieben.
Zuletzt geändert von marmeladebomber am 04.06.2004 20:17:38, insgesamt 1-mal geändert.
- suntsu
- Beiträge: 2947
- Registriert: 03.05.2002 10:45:12
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: schweiz
-
Kontaktdaten:
die Antwort ist wie schon geschrieben b.
Es würde auch dem konzept wiedersprechen native programme zu machen.
Allerdings ist es nicht auszuschliesen das es etwas wie den gcj für java.
gruss
manuel
edit:
Der mono compiler musste einmal mit dem ms compiler gebaut werden. Jetzt wird er mit mono gebaut.
http://www.go-mono.com
Es würde auch dem konzept wiedersprechen native programme zu machen.
Allerdings ist es nicht auszuschliesen das es etwas wie den gcj für java.
gruss
manuel
edit:
Der mono compiler musste einmal mit dem ms compiler gebaut werden. Jetzt wird er mit mono gebaut.
http://www.go-mono.com
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
Das hindert aber niemand daran auf die vm zu verzichten und einen "richtigen" Kompiler zu schreiben, du kannst z.B. mit dem gcc auch java Programme kompilieren so das sie ohne vm ausgeführt werden können. Ich könnte mir also auch gut vostellen das was ähnliches für C# geplant ist.
Edit: suntsu war etwas schneller
ich kenne mich jetzt nicht mit C# im Detail aus, vom Prinzip ist es aber wie Java angelegt, in Bytecode kompilieren und dann durch eine vm ausführen.marmeladebomber hat geschrieben: aber dotgnu.org möchte ja einen "echten" compiler schreiben, oder ist das nur die implementation des compilers?
Das hindert aber niemand daran auf die vm zu verzichten und einen "richtigen" Kompiler zu schreiben, du kannst z.B. mit dem gcc auch java Programme kompilieren so das sie ohne vm ausgeführt werden können. Ich könnte mir also auch gut vostellen das was ähnliches für C# geplant ist.
Edit: suntsu war etwas schneller
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
Das GCC musste auch mal mit einem anderen Compiler compiliert werden; das GCC in C und mono in C# gechrieben ist, finde ich ganz lustigmarmeladebomber hat geschrieben:EDIT: der gnudot compiler ist in C geschrieben, der mono in c#
Problem dabei ist das henne/ei prinzip. der mono muss irgendwann unter MS.net compiliert werden. da könnte MS theoretisch einen riegel vorschieben.
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Da hätte MS theoretisch den Riegel vorschieben können. Jetzt ist der Mono-Compiler schon recht lange self-hosted.marmeladebomber hat geschrieben:EDIT: der gnudot compiler ist in C geschrieben, der mono in c#
Problem dabei ist das henne/ei prinzip. der mono muss irgendwann unter MS.net compiliert werden. da könnte MS theoretisch einen riegel vorschieben.
Die grössten Unterschiede zwischen .NET und Java sind:
- Java wird grundsätzlich interpretiert und - wenn ein Codestück oft ausgeführt wird - mit dem JIT kompiliert und nach und nach optimiert. Bei .NET (nicht bei Mono, die haben einen portablen Intepreter und einen JIT-Compiler für x86) wird alles JIT kompiliert.
- .NET ist für mehrere Sprachen gedacht - nicht nur C# sondern auch C++, Basic, etc
Mal abgesehen davon sind die Lizenzen bei beidem böse - und eine komplette freie Implementierung gibts weder von .NET noch von Java.
MfG Peschmä
-
- Beiträge: 790
- Registriert: 09.07.2002 23:01:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dresden
Dann musst du aber ganz fix den debian maintainern auf die Finger hauen, die haben nämlich mono (eine .NET Implementierung :) nach unstable in den main tree geschoben :)peschmae hat geschrieben: Mal abgesehen davon sind die Lizenzen bei beidem böse - und eine komplette freie Implementierung gibts weder von .NET noch von Java.
MfG Peschmä
Grüße
- marmeladebomber
- Beiträge: 1002
- Registriert: 09.11.2002 23:34:58
- Wohnort: Österreich/Tirol
weitere grundlegende fragen:
die frage welches toolkit man nehmen soll um eine gui zu kreieren:
a) windows.forms (wird, wies ausschaut bald gut implementiert)
b) wx.net (osx, windows, linux unter einem hut)
c) gtk# (windows, linux, osx nativ ist fraglich. gtk gibts auch nicht nativ)
sympatisch finde ich wx.net, da osx dabei ist und frei.
windows.forms wird bald gut unterstützt; warum soll ich mir die "mühe" machen in wx.net zu implementieren. Außerdem würde sich der windowsanwender eine Installation bzw. eine Fehlerquelle sparen.
Wie seht ihr das?
die frage welches toolkit man nehmen soll um eine gui zu kreieren:
a) windows.forms (wird, wies ausschaut bald gut implementiert)
b) wx.net (osx, windows, linux unter einem hut)
c) gtk# (windows, linux, osx nativ ist fraglich. gtk gibts auch nicht nativ)
sympatisch finde ich wx.net, da osx dabei ist und frei.
windows.forms wird bald gut unterstützt; warum soll ich mir die "mühe" machen in wx.net zu implementieren. Außerdem würde sich der windowsanwender eine Installation bzw. eine Fehlerquelle sparen.
Wie seht ihr das?
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Naja, insgesamt sehe ich den Vorteil einer VM einfach nicht ganz.
(Und ja, ich habe recht lange Java programmiert und mache das immer noch ab und zu)
Zu den Toolkits - die Frage ist vor allem wie konsistent Wx.Net (bzw. WxWidgets im allgemeinen) implementiert ist. Mit SWT hatte ich diesbezüglich noch recht grosse Probleme.
Gtk ist für Portierungen auf nicht-X11-Plattformen nicht gerade der Hammer, leider.
Von Windows.Forms habe ich nicht wirklich ne Ahnung - ich nehme mal an dass es gelungener ist als MFC, schliesslich war da ja der Borland-Chefentwickler, den sich M$ geklaut hat, dran mit beteiligt. Fragt sich nur ob es endlich LayoutManager gibt
Naja, nach dem Release muss ich mir das alles wohl man noch n bisschen angucken. Aber irgendwie hat das ganze .NET-Zeugs einen ungemütlichen Beigeschmack - man weiss nie was Microsoft noch alles anstellt.
In der Zwischenzeit geht meine Stimme an C++ mit Qt.
MfG Peschmä
(Und ja, ich habe recht lange Java programmiert und mache das immer noch ab und zu)
Zu den Toolkits - die Frage ist vor allem wie konsistent Wx.Net (bzw. WxWidgets im allgemeinen) implementiert ist. Mit SWT hatte ich diesbezüglich noch recht grosse Probleme.
Gtk ist für Portierungen auf nicht-X11-Plattformen nicht gerade der Hammer, leider.
Von Windows.Forms habe ich nicht wirklich ne Ahnung - ich nehme mal an dass es gelungener ist als MFC, schliesslich war da ja der Borland-Chefentwickler, den sich M$ geklaut hat, dran mit beteiligt. Fragt sich nur ob es endlich LayoutManager gibt
Naja, nach dem Release muss ich mir das alles wohl man noch n bisschen angucken. Aber irgendwie hat das ganze .NET-Zeugs einen ungemütlichen Beigeschmack - man weiss nie was Microsoft noch alles anstellt.
In der Zwischenzeit geht meine Stimme an C++ mit Qt.
MfG Peschmä
- marmeladebomber
- Beiträge: 1002
- Registriert: 09.11.2002 23:34:58
- Wohnort: Österreich/Tirol
wie macht das eigentlich gimp?
Das läuft unter MACos, Linux und Windows. Und verwenden wird wahrscheinlich GTK (Gimp Tool Kit)
Wird da der Code stark verändert für die platformunabhängig, oder ist sind die Änderungen nicht besonders groß und man braucht im wesentlichen nur den Code unter eineme anderen System kompilieren?
Das läuft unter MACos, Linux und Windows. Und verwenden wird wahrscheinlich GTK (Gimp Tool Kit)
Wird da der Code stark verändert für die platformunabhängig, oder ist sind die Änderungen nicht besonders groß und man braucht im wesentlichen nur den Code unter eineme anderen System kompilieren?
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
vom Prinzip reicht es wenn du GTK+ auf windows installierst, solange du keine gnome libs verwendest sollten du die Programme dann kompilieren können. Von daher ist es ähnlich wie Qt/kde-libs.
In der Praxis ist es aber nichtmehr so einfach. Ich habe mal eine Zeit lang damit experimentiert und es nicht geschafft GTK+ so einzurichten, dass ich einfache GTK Programme unter windows kompilieren konnte.
Auf der GTKmm Seite gibt es eine relativ einfache Anleitung, allerdings sah die GTK+ Anleitung damals auch relativ einfach aus.
Irgendwie fehlt mir auch die Motivation es nochmal mit gtkmm zu probieren seit ich Qt kenne.
Die einzige Motivation ist, dass ich als gnome user gerne mit "meinem" Toolkit programmieren würde, aber diese Motivation hält sich momentan in Grenzen.
vom Prinzip reicht es wenn du GTK+ auf windows installierst, solange du keine gnome libs verwendest sollten du die Programme dann kompilieren können. Von daher ist es ähnlich wie Qt/kde-libs.
In der Praxis ist es aber nichtmehr so einfach. Ich habe mal eine Zeit lang damit experimentiert und es nicht geschafft GTK+ so einzurichten, dass ich einfache GTK Programme unter windows kompilieren konnte.
Auf der GTKmm Seite gibt es eine relativ einfache Anleitung, allerdings sah die GTK+ Anleitung damals auch relativ einfach aus.
Irgendwie fehlt mir auch die Motivation es nochmal mit gtkmm zu probieren seit ich Qt kenne.
Die einzige Motivation ist, dass ich als gnome user gerne mit "meinem" Toolkit programmieren würde, aber diese Motivation hält sich momentan in Grenzen.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
- marmeladebomber
- Beiträge: 1002
- Registriert: 09.11.2002 23:34:58
- Wohnort: Österreich/Tirol
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Also die Windows-Ausgabe ist eine "richtige" Portierung - nicht nur (wie bei Qt, Werbespot (uups, ist ja verboten hier )) einfach neu kompilieren.marmeladebomber hat geschrieben:wie macht das eigentlich gimp?
Das läuft unter MACos, Linux und Windows. Und verwenden wird wahrscheinlich GTK (Gimp Tool Kit)
Wird da der Code stark verändert für die platformunabhängig, oder ist sind die Änderungen nicht besonders groß und man braucht im wesentlichen nur den Code unter eineme anderen System kompilieren?
Bei MacOS X weiss ichs nicht - da dürfte ein nativer port noch schwieriger werden. Oder verwendet der etwa X11 im Hintergrund (dann ists wohl kein Problem)
WxWidgets ist dafür gemacht - von dem her schauts gut aus. Allerdings kann ich nicht beurteilen wie konsistent die Implementierungen untereinander sind.
(Qt (Werbespot, schon wieder ) hat diesbezüglich keine Probleme, weil es die Widgets selber zeichnet (dabei wird allerdings unter MacOS die native Theme-Engine berücksichtigt))
Würde mich auch interessieren wie reibungslos bei WxWidgets Ports vor sich gehen.
MfG Peschmä
- marmeladebomber
- Beiträge: 1002
- Registriert: 09.11.2002 23:34:58
- Wohnort: Österreich/Tirol
wie seht ihr das (strategisch, bitte kein flameware gnome/kde)?
Redhat/Fedora dh. USA, GB, China, Japan sind, glaube ich die meisten gnomuser
Europa -> KDE User
Dann gibts ein Projekt auf freedesktop.org dass qt/gtk zusammenführt, sodass die Programme einheitlich ausschauen werden. dh. es ist wurst ob gnome/kde
Suse/Novell/OpenOffice Ximian/Ximian Red Carpet...
Mono/Evolution/Novell Ifolder sind alles gtk Programme
java was auch ein rolle spielen wird, ist swing ua.
also jezt rein strategisch, den Markt beobachtend würde ich derzeit eher gtk (dh. wxwidgets) Programmieren als qt. Platformunabhängigkeit wird immer wichtiger werden. Zumindest Windows und Linux. Apple ist sicherlich ein thema, da die meisten Entscheidungsträger mit Apple rundumlaufen und man die so ködern kann.
dh:
c++ => wxwidgets (11 Jahre erfahrung, dh was)
c => gtk (eine ewigkeit, sollte auch funktionieren)
c# => gtk oder wx.net (würde ich eher als sehr jung bzeichnen)
Redhat/Fedora dh. USA, GB, China, Japan sind, glaube ich die meisten gnomuser
Europa -> KDE User
Dann gibts ein Projekt auf freedesktop.org dass qt/gtk zusammenführt, sodass die Programme einheitlich ausschauen werden. dh. es ist wurst ob gnome/kde
Suse/Novell/OpenOffice Ximian/Ximian Red Carpet...
Mono/Evolution/Novell Ifolder sind alles gtk Programme
java was auch ein rolle spielen wird, ist swing ua.
also jezt rein strategisch, den Markt beobachtend würde ich derzeit eher gtk (dh. wxwidgets) Programmieren als qt. Platformunabhängigkeit wird immer wichtiger werden. Zumindest Windows und Linux. Apple ist sicherlich ein thema, da die meisten Entscheidungsträger mit Apple rundumlaufen und man die so ködern kann.
dh:
c++ => wxwidgets (11 Jahre erfahrung, dh was)
c => gtk (eine ewigkeit, sollte auch funktionieren)
c# => gtk oder wx.net (würde ich eher als sehr jung bzeichnen)