VisualC# oder C++ Wofür sollte man sich jetzt entscheiden?



  • für numerick ist afaik fortran am besten (= schnellsten) oder stimmt das nicht mehr?



  • Ich bin zwar nicht von C++ nach C# gewechselt, sondern andersrum aber ich kann dir sagen, dass C# auf jeden Fall einiges zu bieten hat. Gerade was GUI Programmierung unter Windows angeht sind Windows Forms für die klassische Seite und WPF für modernere Dinge sehr gute Bibliotheken! Die Sprache an sich empfinde ich als ein Zwischending zwischen Java und C++ - die Sauberkeit von Java, aber ohne so stocksteif zu sein, im Prinzip..
    Aber, plattformunabhängigkeit kannst du in der Pfeife rauchen - Mono lass ich nicht durchgehen. Ich setze mehr Hoffnungen darauf, dass Wine .NET emulieren lernt, als dass ich auf Mono setzen würde.. - das ist auch der Grund warum ich zu C++ gewechselt hab.



  • Birne schrieb:

    Ich bin zwar nicht von C++ nach C# gewechselt, sondern andersrum aber ich kann dir sagen, dass C# auf jeden Fall einiges zu bieten hat. Gerade was GUI Programmierung unter Windows angeht sind Windows Forms für die klassische Seite und WPF für modernere Dinge sehr gute Bibliotheken! Die Sprache an sich empfinde ich als ein Zwischending zwischen Java und C++ - die Sauberkeit von Java, aber ohne so stocksteif zu sein, im Prinzip..
    Aber, plattformunabhängigkeit kannst du in der Pfeife rauchen - Mono lass ich nicht durchgehen. Ich setze mehr Hoffnungen darauf, dass Wine .NET emulieren lernt, als dass ich auf Mono setzen würde.. - das ist auch der Grund warum ich zu C++ gewechselt hab.

    WIe sieht das denn mit der grafischen Schnittstelle aus, so vom Programmieraufwand her gesehen? So wie ich das mitbekommen habe, hat c# eine Grafik-Bibliothek, mit der man Pixelgrafik machen kann.

    Gruß Pascal2009



  • is denn die platformunabhaengigkeit nach der so viele schreien ueberhaupt benoetigt ? rechtfertigt es den aufwand einer sprache zu entsagen oder overhaed rein zu bringen ?

    ich programmiere mein zeug aussschliesslich fuer windows unter c# und wpf
    unabhaenigkeit interessiert mich unter anderem auch daran nicht das unix oder andere gar nicht im ziel focus liegen

    @post starter, ich hab c++ gelernt und auch recht lange angewendet und bin aber zu c# mit der wpf gewechselt - nur was wirklich besser oder/und gut/schlecht ist kann dir keiner festlegen
    besser du sagst was du eher machen moechtest - kannst dich dann per auschlussverfahren zur richtigen sprache durch arbeiten



  • s denn die platformunabhaengigkeit nach der so viele schreien ueberhaupt benoetigt ? rechtfertigt es den aufwand einer sprache zu entsagen oder overhaed rein zu bringen ?

    Als Linuxnutzer war dieses Windows-only jedenfalls nicht unbedingt das beste 🤡
    Ich selbst benutze nunmal Linux, aber Linux-only bei normalen Anwendungen erreicht nicht unbedingt alle die man erreichen will, deswegen entwickle ich meine Anwendungen für Windows und Linux.

    WIe sieht das denn mit der grafischen Schnittstelle aus, so vom Programmieraufwand her gesehen? So wie ich das mitbekommen habe, hat c# eine Grafik-Bibliothek, mit der man Pixelgrafik machen kann.

    naja, GDI+ für .NET - ist eigentlich ziemlich gut und dadurch, dass C# den "richtigen" Pointern nicht völlig entsagt hat kann man auch recht schnell die Pixel manipulieren.
    oder was genau meinst du?



  • Wie soll man das hier verstehen:

    Grafik mit Visual Studio
    Klasse Graphics
    •Zwei Methodengruppen:
    –Methoden, die mit Draw beginnen:
    •Zeichnen von Linienfiguren
    •DrawLine, DrawRectangle usw. **Es gibt kein DrawPixel
    **[u]–Methoden, die mit Fill beginnen:
    •Zeichnen von Flächenfiguren
    •FillRectangle, FillEllipse
    •Reihenfolge beachten!
    –Füllung und „breite“ Randlinien überdecken sich
    –Randlinien können gegenüber der Mittellinie positioniert werden.

    Gibt es wirklich kein DrawPixel? Genau das bräuchte ich nämlich.



  • pascal2009 schrieb:

    So wie ich das mitbekommen habe, hat c# eine Grafik-Bibliothek, mit der man Pixelgrafik machen kann.

    Sowas gibt's für nahezu jede Sprache.

    Der Nachteil von C# ist, dass du nicht nur die Sprache, sondern auch noch das .Net-Framework lernst. Bei C++ benutzt du in der Regel für jede Aufgabe eine eigene, unabhängige Biliothek, während .Net ein monolithischer Klotz ist, dessen Schicksal von einem einzigen Konzern abhängt. Wenn jetzt irgendwann z.B. deine Netzwerk-Lib nicht mehr weiter entwickelt wird, schreibst du eben deinen Netzwerk-Code neu. Wenn MS irgendwann .Net zu gunsten des nächsten Hypes einstampft, darfst du alles neu schreiben. Und die Wahrscheinlichkeit, dass das passiert, ist wesentlich höher, als dass deine C++-Libs alle gleichzeitig sterben.



  • Ratgeber schrieb:

    Der Nachteil von C# ist, dass du nicht nur die Sprache, sondern auch noch das .Net-Framework lernst. Bei C++ benutzt du in der Regel für jede Aufgabe eine eigene, unabhängige Biliothek, während .Net ein monolithischer Klotz ist, dessen Schicksal von einem einzigen Konzern abhängt. Wenn jetzt irgendwann z.B. deine Netzwerk-Lib nicht mehr weiter entwickelt wird, schreibst du eben deinen Netzwerk-Code neu. Wenn MS irgendwann .Net zu gunsten des nächsten Hypes einstampft, darfst du alles neu schreiben. Und die Wahrscheinlichkeit, dass das passiert, ist wesentlich höher, als dass deine C++-Libs alle gleichzeitig sterben.

    Und in der Realen Welt sind die Nachteile die du aufzaehlst exakt die Vorteile die die Entscheidung zugunsten .NET/Java bedeuten.



  • pascal2009 schrieb:

    Gibt es wirklich kein DrawPixel? Genau das bräuchte ich nämlich.

    omg, die Bitmap Klasse hat eine SetPixel Methode, alternativ kann man auch auf den raw data operieren. Notfalls schreibt man sich halt für die Graphics Klasse eine extension method, die eine Linie der Länge eines Pixels malt. 🙄



  • Dies ist wieder ein Thread wo es mich stört dass manche Unregistrierte einfach nur Müll schreiben...

    Wenn der Threadersteller schreibt

    pascal2009 schrieb:

    -Windows Benutzerschnittstelle

    Wieso kommt man dann mit Aussagen zu verschiedenen Plattformen an? Des ist doch voll am Thema vorbei.

    Denke schon dass C# für dich geeignet ist. Windows Programme schreibt man damit mit weniger Aufwand als mit C++, gerade weil C# (bzw. .Net) ne GUI Bibliothek hat im Gegensatz zum C++ Standard. Über die Geschwindigkeit brauch man sich auch keine Sorgen machen. Da auch in .Net der Code kompiliert wird (sogar für die aktuelle Maschine optimiert), ist irgend ne beliebige Berechnung nicht langsamer als in C++.

    C# bzw. .Net hat ja im Prinzip zwei GUI Bibliotheken. Windows Forms und WPF. WPF ist die neuere, und wesentlich leistungsstärkere Plattform, stellt aber gewisse Anforderungen an die Hardware. Nicht zu unterschätzen ist auch der Lernaufwand, da doch einige Konzepte erlernt werden müssen die es in anderen Frameworks nicht gibt. Wenn du die Zeit hast, schaus dir an, du wirst begeistert sein. Windows Forms ist auch nicht schlecht für sich gesehen. Damit lässt sich dein Pixelschubsen auch problemlos machen. Wenn man mit anderen GUI Frameworks in anderen Sprachen gearbeitet hat, kommt einen Windows Forms sicherlich vertrauter vor als WPF. Da wird man schneller zu einfachen Ergebnissen kommen, aber auch schnell an die Grenzen stoßen.

    Mit .Net und C# kannst du auf jeden Fall erreichen was du vorhast.

    Vielleicht noch nen Wort zu Mono:
    Ich find Mono toll 🙂 Klar, grad in den Eckbereichen wie z.B. GUI gibts einige Probleme weil die Mono Jungs und Mädels immer nen bissle hinterherhängen mitm Implementieren und teilweise eigene Wege gehen (müssen). Aber was die .Net Standardbibliothek und die Sprache C# angeht sind sie praktisch komplett.
    Mono ist eh verbreiteter als es einigen bewusst es. Es gibt z.B. zig Spiele fürs IPhone die Mono nutzen um C# Code auszuführen, es gibt Mono für die Wii, für Symbian usw. Alles Plattformen wo man es nicht unbedingt erwartet dass dort .Net Code ausgeführt wird.



  • Talla schrieb:

    Dies ist wieder ein Thread wo es mich stört dass manche Unregistrierte einfach nur Müll schreiben...

    Wenn der Threadersteller schreibt

    pascal2009 schrieb:

    -Windows Benutzerschnittstelle

    Wieso kommt man dann mit Aussagen zu verschiedenen Plattformen an? Des ist doch voll am Thema vorbei.

    Denke schon dass C# für dich geeignet ist. Windows Programme schreibt man damit mit weniger Aufwand als mit C++, gerade weil C# (bzw. .Net) ne GUI Bibliothek hat im Gegensatz zum C++ Standard. Über die Geschwindigkeit brauch man sich auch keine Sorgen machen. Da auch in .Net der Code kompiliert wird (sogar für die aktuelle Maschine optimiert), ist irgend ne beliebige Berechnung nicht langsamer als in C++.

    C# bzw. .Net hat ja im Prinzip zwei GUI Bibliotheken. Windows Forms und WPF. WPF ist die neuere, und wesentlich leistungsstärkere Plattform, stellt aber gewisse Anforderungen an die Hardware. Nicht zu unterschätzen ist auch der Lernaufwand, da doch einige Konzepte erlernt werden müssen die es in anderen Frameworks nicht gibt. Wenn du die Zeit hast, schaus dir an, du wirst begeistert sein. Windows Forms ist auch nicht schlecht für sich gesehen. Damit lässt sich dein Pixelschubsen auch problemlos machen. Wenn man mit anderen GUI Frameworks in anderen Sprachen gearbeitet hat, kommt einen Windows Forms sicherlich vertrauter vor als WPF. Da wird man schneller zu einfachen Ergebnissen kommen, aber auch schnell an die Grenzen stoßen.

    Mit .Net und C# kannst du auf jeden Fall erreichen was du vorhast.

    Ja danke für den Kommentar!

    Ich lese mich im Augenblick ein bißchen ein und habe den sicheren Eindruck, daß Gunnerson und Anders Hejlsberg mit c# ein großer Wurf gelungen ist.

    Hat jemand einen Link zu der englischen Version von:

    Gunnarson, Eric a programmer´s introduction to c#

    Die deutsche Version ist nämlich so grauenhaft, das ist nicht nur scheiße, sondern völlig sinnentstellend.

    Megascheiße, kann man sich nicht reinziehen.

    Gruß Pascal2009



  • Für windows entwicklung wird noch lange c++ und/oder COM(auch per COM-Interop in .NET) üblich sein. Es kommen immernoch neue APIs dazu, die auf COM aufbauen siehe: http://msdn.microsoft.com/en-us/windows/dd262126.aspx


Anmelden zum Antworten