C# nachfolger von C++



  • Hallo,

    erstmal danke für die Infos (auch wenn manche newbies wie dreck behandeln), also C# ist mehr auf GUI ausgerichtet so wie ich das verstehe ?

    Wenn das so ist wenn man denn dann bald die MFC ablösen und nur noch in C# programmieren bzw. die lib für GUIs nutzen ?

    Definitiv ist also C++ immer noch die mächtigste Programmiersprache auf dem Markt ja ? Ich verstehe ganz ehrlich gesagt nicht warum immer mehr Firmen auf C# bzw. .Net basieren und Leute mit solchen Kenntnissen suchen und nicht bei den C++ Programmierern bleiben. Kann mir auch da jemand ein Statement geben ?



  • C# wurde auf RAD ausgerichtet und bietet daher höhere Produktivität.



  • Es ist halt billiger für die Firmen einen C#- oder Java-Programmierer einzustellen. Denn umso mehr solcher Programmierer es auf dem Markt gibt, um so billiger werden sie. C++-Programmierer sind heute schwerer zu finden, also ist es teurer. Seit wann interessiert es Firmen wie gut etwas ist? Billig muß es sein. Sonst würden nicht so viele Firmen im Ost-Block oder in China etwas herstellen lassen. Würde es in Deutschland keine C#-/Java-Programmierer geben, würde man bestimmt mehr in Billiglohnländern entwickeln lassen.



  • Kurt01 schrieb:

    also C# ist mehr auf GUI ausgerichtet so wie ich das verstehe ?

    Hem, nö. Finde ich nicht. Ich kann in jeder Sprache gleich gut GUIs entwickeln. Für C++ gibts sogar mehr GUI-Toolkits als für Java und C# zusammen!

    Kurt01 schrieb:

    Wenn das so ist wenn man denn dann bald die MFC ablösen und nur noch in C# programmieren bzw. die lib für GUIs nutzen ?

    Nein, die MFC wird sicherlich irgendwann eingestellt werden, bedingt durch ihr Alter (15 Jahre?). Aber C# kann nicht die MFC ablösen. Wenn, dann wird das ein GUI-Toolkit sein, wie WindowsForms oder WPF. Aber diese kann man auch von C++ aus nutzen. Selbst als MFC-Benutzer kann man HEUTE bereits die WindowsForms aus .NET benutzen!
    http://msdn.microsoft.com/msdnmag/issues/06/05/MixAndMatch/default.aspx

    Denn MS hat bereits eine Brücke zwischen MFC und WindowsForms geschlagen. Wer .NET komplett und somit auch WinForms und WPF nutzen will, kann C++/CLI benutzen. C# ist lediglich eine von vielen Sprachen, die .NET nutzen kann. C++/CLI ist ein Mitspieler, sogar ein mächtiger.

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/VS05Cplus.asp

    http://msdn.microsoft.com/msdnmag/issues/04/05/VisualC2005/default.aspx



  • Ich kann Artchi da nicht ganz zustimmen.

    C# und .Net fühlen sich wesentlich zusammenpassender an als C++/CLI und .Net.
    C++/CLI kann man vielleicht mehr machen aber dafür hat C# nicht dieses unmanaged Ballast. Wenn man wirklich nur für .Net programmieren will, dann ist man in C# produktiver.

    Was die GUI angeht mag es sicherlich stimmen das es für C++ mehr Toolkits gibt die man natürlich auch aus C++/CLI nutzen kann - das zeigt aber auch gleich das Dilemma: C++ bringt standardmäßig nichts mit. Das ist gerade für Einsteiger ein großes Problem, freie Wahl zu haben - aber aufgrund der Komplexität der Toolkits kaum eine präzise Entscheidungen fällen zu können.

    Auch muss man sagen das es schwer wird in der C++ Welt(meine damit ohne .Net) was Vergleichbares zu WPF zu finden. WPF und C++/CLI werden aber auch nie ein gutes Paar werden. Klar kann man prinzipbedingt durch .Net auch C++/CLI mit der WPF verwenden, aber der Großteil der Oberfläche wird eh in XAML beschrieben und für die Programmiersprache bleibt dann "nur" noch der funktionale Teil der Anwendung. Da kommts dann wieder auf eigene Vorlieben an, das ist ja das gute an .Net. Fakt ist aber auch dass die XAML Files in C# übersetzt werden und wenn man in denen jetzt auf Fehlersuche ist, könnts als Ur C++ Programmierer der .Net nur durch C++/CLI kennt, einige Schwierigkeiten geben manche Konstrukte zu verstehen.

    Ich denke auf lange Sicht wird C++/CLI das normale C++ verdrängen(eben weil es ja auch alle Möglichkeiten vom normalen C++ bereithält), aber für die .Net Entwicklung wird es nie diesen Stellenwert erreichen den z.b. C# hat.

    Die Aussagen beziehen sich natürlich nur auf einfache Desktopapplikationen auf dem PC. Auf anderen Plattformen mags natürlich auch anders aussehen.
    Aber auch wenns natürlich möglich ist, möchte ich mir z.b. kein ASP.NET mit C++/Cli vorstellen 🙂



  • Zwergli schrieb:

    Ich denke auf lange Sicht wird C++/CLI das normale C++ verdrängen

    nee, C++\CLI geht nur mit .NET. normales C++ geht auch ohne...



  • Für Windows selbst (.Net != Windows) ist aber die Diskussion völlig unerheblich. Die Vista-GUI (Aero?) ist weiterhin eine Win32-API die ich über das Windows Platform SDK über plain C++ benutzen kann (nicht mal C++/CLI).

    WPF finde ich vom optischen her genial. Will ich dieses nutzen, ist es egal ob ich C# oder C++/CLI nutze. Kann ich mir nach Lust und Laune raussuchen.

    Windows Forms selbst habe ich als C++-Entwickler bisher kein Bedürfnis nach gehabt. Denn WinForms bauen letztendlich auf die Win32-API auf. Wer C# programmiert, muß ja WinForms nutzen.

    Die Diskussion ist eigentlich überflüssig. Weil letztendlich jeder mit seiner Sprache sich das nimmt, was er für sich und seine Aufgabe besser empfindet. Es ist aber unbestreitbar, das ich als C++-Entwickler die meisten Möglichkeiten habe. Und das sehe ich nicht als Nachteil an.



  • Aber mal was zum Jobthema. Ich war erst gestern auf ner Kontaktbörse wo relativ viele Unternehmen vertreten waren. Also v.a. die größeren Unternehmen wie Siemens, Thomson, und auch viel große in der Automobilindustrie suchen nach wie vor C++ Entwickler. Wenn da jemand ankommt und sagt dass er z.B. nur C# kann, dann hat er schon verschissen 😉
    Gibt natürlich auch andere Unternehmen, und da war halt v.a. Java gefragt.



  • Das ist sicherlich alles im Embeddedbereich, wo in den Konzernen noch C oder verstärker C++ benötigt wird. Richtig. Aber ich sitze in einem der größen Konzerne und hier ist Java ganz einfach Konzernstandard. C++ interessiert nicht die Bohne im Desktop- und Server-Bereich. Java, Java, Java! 😡

    Leider, habe ich hier in meinem Umfeld keinen C++-Bedarf. 😞



  • Doch, ein Kollege hier von mir macht C auf nem Mainframe-Gateway. Weil da ist dann doch wieder Performance gefragt. Aber wirklich eine große Ausnahme der Kollege.



  • Artchi schrieb:

    Java, Java, Java! 😡
    Leider, habe ich hier in meinem Umfeld keinen C++-Bedarf. 😞

    jaja, man ist nie zufrieden mit dem was man hat...
    vielleicht findest du mal einen job als c++ coder.
    aber wenn du dich dann jeden tag mit c++ rumschlagen musst, könnt's vielleicht passieren, dass du schreibst: 'heul, schluchz, ich will wieder java machen!'



  • C++ ist herstellerübergreifend und ANSI-Standard, C# ist von einer einzelnen Firma definierte Sprache, die zumindest in Teilen ECMA-Status erlang hat (was weniger ist als ANSI). Ich persönlich würde einen herstellerübergreifenden Standard immer bevorzugen. Und die fokussierung auf ein bestimmtes Betriebssystem schränkt die Einsetzbarkein einer Sprache doch ein. Es gibt zwar inzwischen Ports für andere Systeme, das kann aber nicht darüber hinweg täuschen, daß die Sprache von einem einzelnen Hersteller definiert wird.

    Im Unix-Bereich ist es heute undenkbar, C# einzusetzen. C# wird im Produktivumfeld praktisch ausschließlich unter Windows eingesetzt.

    Von der Sprache her finde ich C++ eine hervorragende Programmiersprache. Es erfordert ein gewisses Know-How, dankt aber durch beste Performance und gute Wartbarkeit. Für mich gibt es keinen Grund, etwas anderes, als C++ zu verwenden (ausser der Kunde natürlich - und der ist König 🙂 ).

    Tntnet



  • @tntnet! Du bist leider nicht auf dem aktuellen Stand. C# ist mittlerweile ISO-Norm, genauso wie es auch CLI ist (ich meine nicht C++/CLI). C# ist neben C++, Cobol, C und Pascal eine der wenigen Sprachen, die ISO genormt sind. Deshalb ist es für Novell ein leichtes C# und Mono (welches sich an CLI hält) zu implementieren, sowohl für Linux als auch Unix und sogar Windows.

    Hier der Link zu den Normungen von CLI:
    http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=36769&ICS1=35&ICS2=60&ICS3=
    http://www.ecma-international.org/publications/standards/Ecma-335.htm

    Hier noch ISO C#:
    http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=36768&ICS1=35&ICS2=60&ICS3=

    C++/CLI, welches sich an CLI hält, ist noch keine ISO-Norm, aber immerhin ECMA.



  • Ok - danke für die Korrektur. Wieder was dazu gelernt. 👍



  • Artchi schrieb:

    Das ist sicherlich alles im Embeddedbereich, wo in den Konzernen noch C oder verstärker C++ benötigt wird. Richtig. Aber ich sitze in einem der größen Konzerne und hier ist Java ganz einfach Konzernstandard. C++ interessiert nicht die Bohne im Desktop- und Server-Bereich. Java, Java, Java! 😡

    Leider, habe ich hier in meinem Umfeld keinen C++-Bedarf. 😞

    Jein. Da sind zwar viele auch im Embeddedbereich tätig, aber die Stellen wofür die Leute suchen haben eigentlich relativ wenig mit den eigentlichen Embedded-Systemen zu tun. Die haben meistens C++ Frameworks als Abstraktionsschichten und genau in dem Bereich suchen die dann auch Leute, d.h. du musst von dem ganzen Embedded-Kram eigentlich Null Ahnung haben.
    Ausserdem gibts da auch noch andere Sachen, z.B. im Bildverarbeitungsbereich, wo auch C++ sehr stark gefragt ist.

    Also was ich jetzt so bisher an Erfahrungen gemacht habe ist die, dass sehr viel Java-Leute gesucht werden, aber das auch C/C++ nach wie vor sehr gefragt ist.
    Im C# Bereich siehts da bisschen kläglicher aus. Es werden zwar auch ab und an C# Leute gesucht, aber das sind im Vergleich zu Java/C++ eher wenige. Soll jetzt aber kein Flamewar oder sowas geben...



  • Hallo,

    erstmals danke für die vielen Infos. Kann mir jetzt schon ein besseres Bild machen. Mich irritiert ständig diese .Net-Diskussion und Werbungen in Fachzeitschriften. Da wird das immer so dargestellt das .Net alleine die Zukunft ist. Also so wie ich das verstehe ist folgendes:

    C/C++: für komplexe Anwendungen, Echtzeit- und Desktopanwendungen
    Java: für Client-Server-Programme
    C# und C++/CLI: für .Net-Anwendungen

    ist das richtig so ?



  • in der Microcontrollerprogrammierung (Atmel, Pic, ...) wird auch im Wesentlichen C/C++ eingesetzt (es gibt zwar auch Leute, die da Basic benutzen ...), bei Mikrocontrollern mit extrem begrenztem Speicher (vgl. z.B. ATtiny 26 - 128 Bytes - hoffe hab das net verwechselt) empfiehlt es sich auch teilweise Assembler zu nehmen



  • Kurt01 schrieb:

    Hallo,

    erstmals danke für die vielen Infos. Kann mir jetzt schon ein besseres Bild machen. Mich irritiert ständig diese .Net-Diskussion und Werbungen in Fachzeitschriften. Da wird das immer so dargestellt das .Net alleine die Zukunft ist. Also so wie ich das verstehe ist folgendes:

    C/C++: für komplexe Anwendungen, Echtzeit- und Desktopanwendungen
    Java: für Client-Server-Programme
    C# und C++/CLI: für .Net-Anwendungen

    ist das richtig so ?

    Hmm also was man im Prinzip glaub auch sagen kann, dass .NET eigentlich so etwas wie das JDK von Java ist, also eine sehr große umfassende Bibliothek. Nur, dass .NET eben "universell" ist, also von den verschiedensten Sprachen genutzt werden kann, eben z.B. auch von C++.
    C# ist eben eine Sprache, die im Prinzip sehr vieles von Java abgeschaut hat, und deshalb auch relativ ähnlich aufgebaut ist. Und wenn du C# programmierst benutzt du natürlich auch das .NET Framework, während das in C++ im Moment eher weniger gemacht wird...



  • nep schrieb:

    Hmm also was man im Prinzip glaub auch sagen kann, dass .NET eigentlich so etwas wie das JDK von Java ist, also eine sehr große umfassende Bibliothek.

    wohl eher von C#



  • Checker&Murckser schrieb:

    nep schrieb:

    Hmm also was man im Prinzip glaub auch sagen kann, dass .NET eigentlich so etwas wie das JDK von Java ist, also eine sehr große umfassende Bibliothek.

    wohl eher von C#

    Habt ihr auch manchmal das Gefühl, dass Leute sätze nicht verstehen.


Anmelden zum Antworten