PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c# / Leistung / Features?


Capt'N Coax
2004-01-24, 19:38:38
Tjaaa,

Also mal vorweg:
Da ich eigentlich viel von Java halte, von C++ aber auch, und ich um C++ nicht herumkomme (OpenGL), um Java aber auch nicht (Webentwicklung z.B.) wollte ich mal fragen wie es mit C# aussieht.


Wie ist die Sprache an sich zu beurteilen? Eher Java/C++?

Was ist mit der unter Windows/C++ nervigen (IMO) Fensterverwaltung? Hat sich da was erfreuliches getan?

C# und OpenGL? Das ist sehr wichtig für mich!

Wie sind die generellen Konzepte von C# (Pointer)?

Gibt es "gute" E.-Umgebungen (Von .Net einmalabgesehen, siehe z.B Delphi)?


Um es kurz zu machen:
Lohnt der Umstieg auf C#, wenn man einfach und schnell Fensteroberflächen generieren will, OpenGL programmiert, Java wegen der API schätzt, Netzzugriffe a la Java schätzt, aber die "Power" von C++ braucht?

Wie ist die Zukunftsaussicht? Java ist ja nun doch etabliert.

Fragen um Fragen...
Ps: Hab leider nicht viel Zeit (Klausuren) daher nur mal kurz gegoogelt, und Suchfunktion mit C# ist ja nicht wirklich sinnvoll :)
Ausserdem mal die Farbfunktion getestet :stolz:

Gast
2004-01-24, 19:47:38
Die Templates von C# haben bei weitem (!) nicht so viel "Power" wie die von C++!

Demirug
2004-01-24, 20:10:36
Original geschrieben von Gast
Die Templates von C# haben bei weitem (!) nicht so viel "Power" wie die von C++!

Welche Templates?

Generics gibt es erst dennächst und die sind durchaus mächtiger als das was C++ anzubieten hat.

Demirug
2004-01-24, 20:19:41
Original geschrieben von Capt'N Coax
Tjaaa,

Also mal vorweg:
Da ich eigentlich viel von Java halte, von C++ aber auch, und ich um C++ nicht herumkomme (OpenGL), um Java aber auch nicht (Webentwicklung z.B.) wollte ich mal fragen wie es mit C# aussieht.


Wie ist die Sprache an sich zu beurteilen? Eher Java/C++?

Was ist mit der unter Windows/C++ nervigen (IMO) Fensterverwaltung? Hat sich da was erfreuliches getan?

C# und OpenGL? Das ist sehr wichtig für mich!

Wie sind die generellen Konzepte von C# (Pointer)?

Gibt es "gute" E.-Umgebungen (Von .Net einmalabgesehen, siehe z.B Delphi)?


Um es kurz zu machen:
Lohnt der Umstieg auf C#, wenn man einfach und schnell Fensteroberflächen generieren will, OpenGL programmiert, Java wegen der API schätzt, Netzzugriffe a la Java schätzt, aber die "Power" von C++ braucht?

Wie ist die Zukunftsaussicht? Java ist ja nun doch etabliert.

Fragen um Fragen...
Ps: Hab leider nicht viel Zeit (Klausuren) daher nur mal kurz gegoogelt, und Suchfunktion mit C# ist ja nicht wirklich sinnvoll :)
Ausserdem mal die Farbfunktion getestet :stolz:

Für die UI Sachen ist Windows.Forms zuständig. Funktioniert eigentlich ganz gut. Ist aber nur eine Zwischenlösung bis Longhorn kommt.

Es gibt eine OpenGL Bibliothek für den Framework.

.Net ist nicht die IDE sondern die Implementierung. Als IDE kommt von MS das Visual Studio zum Einsatz. Alternativ gibt es auch den C# Builder oder auch das freie SharpDevelop.

Die Geschwindigkeit hängt etwas von der Aufgabe ab. Bei UI lastigen Sachen gibt es fast keinen unterschied zu C++. Fliesskomma Rechnungen sind allerdings noch etwas schlecht optimiert.

Was die Zukunftsaussichten angeht sage ich nur das bei Longhorn alle neuen APIs primär für die Nutzung über .Net und damit auch für C# ausgelegt sind.

Capt'N Coax
2004-01-24, 20:52:32
Original geschrieben von Demirug

Es gibt eine OpenGL Bibliothek für den Framework.

.Net ist nicht die IDE sondern die Implementierung. Als IDE kommt von MS das Visual Studio zum Einsatz. Alternativ gibt es auch den C# Builder oder auch das freie SharpDevelop.


Hätte Visual Studio .NET schreiben sollen.

Original geschrieben von Demirug
Für die UI Sachen ist Windows.Forms zuständig. Funktioniert eigentlich ganz gut. Ist aber nur eine Zwischenlösung bis Longhorn kommt.


Wieso gefällt mir der Satz nicht?
Zwischenlösung...Was kann man da erwarten?

Original geschrieben von Demirug
.Net ist nicht die IDE sondern die Implementierung. Als IDE kommt von MS das Visual Studio zum Einsatz. Alternativ gibt es auch den C# Builder oder auch das freie SharpDevelop.


Wie ist da deine Bewertung? Mit Visual C++ in der Net Umgebung kenn ich mich ein wenig aus.

RoKo
2004-01-25, 00:01:44
Original geschrieben von Demirug
Welche Templates?

Generics gibt es erst dennächst und die sind durchaus mächtiger als das was C++ anzubieten hat.
Für mich ist mächtiger = mehr Möglichkeiten. Wenn man danach geht, kann ich mir kaum vorstellen, wie man die C++ Templates übertreffen sollte - man kann die durchaus als funktionale, zur Kompilierzeit ausgeführte Programmiersprache verwenden.
Ich denke, der MSDN C# Generics Artikel bringt es auf den Punkt: "Compared to C++ templates, C# generics can provide enhanced safety but are also somewhat limited in capabilities."
Mit seine Constraints liegt es wohl näher an Eiffel als an C++.
Zudem wird bei der Kompilierung bei Objekten die Java Methode (es wird nur rumgecastet) und bei Strukturen die klassische Methode (es wird tatsächlich neuer Code erzeugt) verwendet.

Aber in die C# bzw. .net Generics lese ich mich gerade erst ein, ist nur so, was mir erstmal primär aufgefallen ist ;D

Edit:
So, habe ein wenig weitergelesen - der interessante Sache der C# Implementierung ist, daß die Sache eigentlich erst bei der Kompilierung IL -> Maschinencode passiert und damit zur Laufzeit. Der JIT-Compiler merkt sich, welche Instanzen eines Struct-Generics schon erzeugt wurden - das klassische JIT-Kompilierungsprinzip auf Generics angewandt, schon cool.
Ist aber natürlich auch eine Einschränkung, zur Kompilierzeit passiert ja praktisch gar nix.

grakaman
2004-01-25, 08:22:40
Original geschrieben von Capt'N Coax
Wieso gefällt mir der Satz nicht?
Zwischenlösung...Was kann man da erwarten?


Windows.Forms gibt es auch weiterhin bei Longhorn, also keine Aufregung. Ich würde da nicht unbedingt von Zwischenlösung sprechen, denn für Avalon Anwendungen benötigt man auch entsprechende Rechenpower und ich sehe das eher für den Consumereinsatz. Für Businessanwendungen wird man wohl auch weiterhin mit Windows.Forms programmieren.

MfG

beta3
2004-01-26, 13:55:11
ne frage

was ist denn der grosse vorteil von generics?

Nagilum
2004-01-26, 14:07:53
Wartbarkeit, Wiederverwendbarkeit.

Stell dir vor du müsstest eine Containerklasse für fünf verschiedenen Datentypen schreiben. Entweder schreibst du jetzt fünf verschiedene Containerklassen oder gibst die Typsicherheit auf.

grakaman
2004-01-26, 18:32:05
Original geschrieben von Nagilum
Wartbarkeit, Wiederverwendbarkeit.

Stell dir vor du müsstest eine Containerklasse für fünf verschiedenen Datentypen schreiben. Entweder schreibst du jetzt fünf verschiedene Containerklassen oder gibst die Typsicherheit auf.

Ich habe es für C# nur einmal schnell überflogen, aber die Generics sind ebenfalls typensicher.

MfG

Nagilum
2004-01-26, 18:46:08
Jo, ähm, das sollten sie auch besser sein. :)

Wie siehts eigentlich mit Spezialisierungen aus? Ist sowas auch geplant?

grakaman
2004-01-26, 19:03:59
Original geschrieben von Nagilum
Jo, ähm, das sollten sie auch besser sein. :)

Wie siehts eigentlich mit Spezialisierungen aus? Ist sowas auch geplant?

Ich habe mich noch nicht wirklich damit beschäftigt (Zeit), aber hier kannst du ja selbst einen Einblick gewinnen:


http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dv_vstechart/html/csharp_generics.asp

EgonOlsen
2004-01-28, 00:06:30
Original geschrieben von Capt'N Coax
Da ich eigentlich viel von Java halte, von C++ aber auch, und ich um C++ nicht herumkomme (OpenGL)Du weißt aber schon, dass es auch OpenGL-Bindings für Java gibt? (Jogl, LWJGL)
Nur als Hinweis. OpenGL heißt nicht automatisch auch C++.

Capt'N Coax
2004-01-28, 01:22:15
Original geschrieben von EgonOlsen
Du weißt aber schon, dass es auch OpenGL-Bindings für Java gibt? (Jogl, LWJGL)
Nur als Hinweis. OpenGL heißt nicht automatisch auch C++.

Java/OpenGL ist meines Wissens im Moment alles andere als günstig, da nicht vollständig unterstützt etc.pp. Allerdings bin ich auch da nicht auf den neuesten Stand.

Bei C# interessieren mich vor allen Dingen die Möglichkeiten der GUI- Entwicklung, die mir in C++ nicht gefällt. Die Plattformunabhängigkeit ist weniger mein Hauptanliegen. Da spielt jetzt allerdings auch der Performance- Anteil rein. Wobei ich nicht weiß wie hier die Unterschiede C#/Java sind. Taugen zur rechenintensiven 3D Programmierung wahrscheinlich beide nicht viel.

Mittlerweile steh ich kurz davor zu sagen Java oder C# als Frameworksprache einzusetzen, und die rechenintensiven Prozesse auszulagern (C++/dll).
Da ich allerdings NULL Erfahrung mit C# habe, dieser Beitrag. Ich hätte gerne ein paar Daten , vielleicht ein paar Benches, konkreter Vergleich Java/C# etc. Vorteile/Nachteile halt. Komme da momentan nicht zum recherchieren :(:(.

Muss ich die Tage mal viel googeln,
de Capt'N

EgonOlsen
2004-01-28, 01:46:29
Original geschrieben von Capt'N Coax
Java/OpenGL ist meines Wissens im Moment alles andere als günstig, da nicht vollständig unterstützt etc.pp. Allerdings bin ich auch da nicht auf den neuesten Stand.

.... Wobei ich nicht weiß wie hier die Unterschiede C#/Java sind. Taugen zur rechenintensiven 3D Programmierung wahrscheinlich beide nicht viel.

Mittlerweile steh ich kurz davor zu sagen Java oder C# als Frameworksprache einzusetzen, und die rechenintensiven Prozesse auszulagern (C++/dll).
Ich würde die OpenGL-Bindings für Java nicht so pauschal (vor-)verurteilen. Hier sind ein paar Links zu entsprechenden Foren, falls du dir einen Überblick verschaffen möchtest:

http://www.javagaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=jogl

http://www.javagaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=LWJGL

Ich selber verwende LWJGL und habe da bisher eigentlich nichts vermisst (jedenfalls nicht was OpenGL angeht). Das Auslagern der rechenintensiven Prozesse ist sicher eine Option, aber ich würde weder Java noch C# vorschnell als "zu langsam" abtun. Ich kann z.B. in Java mit LWJGL wunderbar durch Level mit der Komplexität von Quake3 rennen und da ist auch durchaus noch mehr drin.