C# oder C++? Womit macht der Anfang Sinn



  • C# ist nicht auf Windows begrenzt, sondern es gibt zum einen Mono für Linux und gerade für die mobilen Geräte (Android, iOS, WinPhone) gibt es Xamarin (vom selben Entwickler).



  • Und das Motivation nur von einem selbst kommt ist falsch. Einfach mal nach folgendem suchen - intrinsische und extrinsische Motivation



  • Th69 schrieb:

    C# ist nicht auf Windows begrenzt, sondern es gibt zum einen Mono für Linux und gerade für die mobilen Geräte (Android, iOS, WinPhone) gibt es Xamarin (vom selben Entwickler).

    Ich denke du weißt was ich meine.

    Wenn er C# lernt, dann nimmt er wahrscheinlich ein Buch in dem API Funktionen von .NET verwendet werden und davon sind einige Windows only und lernen wird er es höchstwahrscheinlich mit einer .NET Runtime Umgebung und schon ist er im Windows Sumpf verfangen.

    Zumal Mono im Vergleich zur .NET Runtime nicht besonders schnell ist.
    Das motiviert nicht gerade.

    Die Java Hotspot Engine gibt's dagegen auch für Linux.

    @motivatooor

    Sag ich doch.



  • .NET wird demnächst Open Source und von Microsoft selbst auf Linux, OsX etc portiert.



  • Zumal Windows wohl eher nicht zu unseren Lebzeiten vom Markt verschwinden wird. Grund sind nicht der Ottonormalverbraucher, sondern die Firmen. Da wird heute noch MS-DOS-Software eingesetzt und man sieht wie schwer es fällt ein WindowsXP zu Grabe zu tragen und das ist mittlerweile 15 Jahre alt. Firmen brauchen seeeeehr lange um sich umzustellen, genau wie alter C und C++ - Code noch seeeehr lange existieren wird. Eine Umstelle würde viele einfach in die Insolvenz treiben, weil die die Zeit und damit das Geld nicht haben um zurüsten "Never change a running system". Ich denke, selbst wenn Microsoft totalen Mist baut, wird es locker 50 Jahre dauern bis es komplett nicht mehr genutzt wird, ähnlich wie C und C++.

    Windows10 sieht danach aus, als würde wieder mehr auf den Kunden eingegangen und wenn das Windows dann noch günstiger wird(Eigentlich ist es eh kostenlos, da bei jedem PC mit dabei), dann wird es den Markt nicht gerade schwächen. Wenn Linux in den nächsten 10 Jahren über 2% Marktanteil kommt, bin ich tief beeindruckt und wenn es irgendwann so verbreitet ist wie OSX, dann wäre dies fast schon ein Wunder. Allerdings sollte man nicht erwarten, dass es Windows jemals auch nur Ansatzweise den Rang ablaufen wird.

    Einen großen Marktanteil hat Linux bei den Mobilen durch Android. Im restlichen Desktop-Markt sehe ich keine großen Run von Linux, auch wenn Spielfirmen da jetzt ein wenig probieren was geht. Wenn die Kunden nicht kaufen, wird das auch ganz schnell wieder eingestampft und welche Firma kann es sich schon leisten auf Dauer nur 1% der PC-Nutzer derart zu supporten?

    Wer "nur" für Windows und Android entwickelt hat die meisten Kunden im Sack. Das heißt mit C# und Java ist man schon gut im Rennen und kann auch schnell und unkompliziert entwickeln, allein schon durch die genialen Stdlibs der beiden.

    Und darum geht es doch, dem Programmierer so viel Arbeit abzunehmen wie es geht. Denn eins ist immer noch begrenzt und das ist die Lebenszeit. Ich denke in 90% der Softwareprojekten braucht es kein C oder C++, da es dort einfach nicht auf die ultimative Geschwindigkeit ankommt.



  • Nur dass der Desktop Markt immer uninteressanter wird bzw schon ist. Laptops gehen noch halbwegs aber mal sehen wie lange noch.
    Tablets und Smartphones laufen ihnen den Rang ab und da sind die Big Player Google und Apple und nicht Microsoft.



  • Wenn die Mobilen wirklich den Markt erobern, hast du recht. Ich sehe dies aber nicht so extrem. Sicherlich brauchen ein paar Menschen dank Tablet oder Smartphone keinen zusätzlichen Rechner mehr, weil ihnen Chats und Fotobearbeitung unter Android reichen. Es gibt aber immer genug Leute, die auch ihre Hobbys haben, wie Musik machen, Fotografieren, größere Spiele zocken. Auch der Schriftverkehr, Drucksachen, Hard- und Softwareentwicklung sind weite Damänen des klassischen PCs, Laptops. Keiner möchte wirklich längere Arbeiten auf einem Tablet oder Smartphone machen, da sind wir dann ganz schnell wieder bei Zusatztastaturen. Auch wollen die Menschen dann wieder mehr auf dem Bildschirm sehen usw.

    Mobile Geräte sind für einige ein komplette Ersatz, für viele denke ich einfach nur ein Zusatz. Touch ist eben nie so ergonomisch wie ein haptisches Feedback, die die Mechanik einen bietet. Berühren und damit Fühlen geht schneller als Sehen, deswegen gibt es Kampfkünste wie WingTsun die darauf aufbauen. Ein voll geschmierter Bildschirm ist auch nicht jedermann Sache, wenn er wirklich mit dem Gerät arbeiten will.

    Tablets und Smartphones sind daher Casual-Geräte und ersetzen in meinen Augen nicht oft den PC, sondern ergänzen ihn eher.

    Ich glaube nicht dass der Laptopmarkt noch groß weiter einbrechen wird. So ein Ultrabook ist schon sehr mobil und angenehm bei der Arbeit, das möchte man ungern gegen ein Tablet komplett eintauschen.



  • wenn du bei einer firma angestellt werden moechtest, wirst du mit c++ bessere chancen haben.
    wenn du fuer dich spiele machen moechtest, kannst du das in der sprache machen die dir am besten gefaellt, c++, c#, VB, java, js, etc. fuer alle gibt es libs und umgebungen sowie foren die dir helfen spass zu haben.



  • Ethon schrieb:

    Nur dass der Desktop Markt immer uninteressanter wird bzw schon ist.

    Bei Privatkunden vielleicht (wobei ich noch nie was mit einem Tablet anfangen konnte, und obwohl ich jetzt selber einen habe, kann ich immer noch nichts damit anfangen). Aber in Firmen werden noch lang genug Windows PCs eingesetzt werden. Ich kann den Trend Richtung Windows leider bestätigen. Unsere Software gabs früher auch für Linux und alle möglichen Unix Varianten. Wir machen was im CAD/PDM Bereich. Da gabs früher die Unix CAD Workstations, z.B. mit Irix. Gibts alles praktisch nicht mehr, interessiert keinen mehr. Wir haben seit paar Jahren nur noch die Windows Version, alles andere haben wir eingestampft. Seh da jetzt keine Chance, dass sich da großartig was ändern wird. Diese ganze Software ist sehr komplex und umfangreich und es gibt hunderte Zuliefererfirmen wie uns, die da auch sehr viel Software schreiben. Den Catia Client gibts jetzt nur noch für Windows, die werden nicht ohne sehr gute Gründe wieder eine Linux Version schreiben.



  • rapso schrieb:

    wenn du bei einer firma angestellt werden moechtest, wirst du mit c++ bessere chancen haben.
    wenn du fuer dich spiele machen moechtest, kannst du das in der sprache machen die dir am besten gefaellt, c++, c#, VB, java, js, etc. fuer alle gibt es libs und umgebungen sowie foren die dir helfen spass zu haben.

    Bin mir nicht so sicher. Wenn hier Firmen suchen dann immer Leute mit Unity Erfahrung.



  • Ethon schrieb:

    Bin mir nicht so sicher. Wenn hier Firmen suchen dann immer Leute mit Unity Erfahrung.

    Das sind dann aber eher kleinere Firmen und viel mobile bereich, oder? Bei groesseren wird naemlich schon sehr viel in C++ gemacht oder aufs UDK gesetzt.



  • Ich habe mich nun für C# entschieden. Wenn Java und C# ähnlcih sind, sollte ein Umsteigen mit einem Aufwand ja möglich sein. Und wenn das Großteilig beherrscht wird, werde ich versuchen auf eine Sprache wie C++ umzusteigen

    Ich denke nicht das der PC Bereich verschwinden wird. Mittlerweile gibt es PCs für knapp 200-400€auf dem vernünftig Spiele laufen.
    Der PC wird soweit nicht verschwinden, eher ist es für mich so das der PC noch "erweitert" wird. Heißt das diese ganzen Tablets, Mobiles etc. den Computer auf lang oder kurz unterstützen werden.
    Es wird nie so angenehm sein, auf einem Tablot zu schreiben wie auf einem PC, einfach weil die Tastatur viel angenehmer ist 🙂
    Der PC bietet durch die Aufrüstungsmöglichkeiten auch einen nachhinein Komfort welchen ich bei Tablets & Co nicht habe.
    Daher sind Tablets, Handys und Co eher so ein Ding was "nice to have" ist und welches den Computer auf lang oder kurz wohl ergänzen wird



  • Ich glaube auch nicht, dass der PC verschwinden wird. Ich habe jahrelang mir nur Laptops gekauft, dann kamen Smartphone und Tablets dazu. Am Ende habe ich mir doch wieder einen richtig schönen Desktop-PC, mit zwei Monitoren und dicker GPU, hingestellt und das Tablet verschenkt und ich habe die Entscheidung nicht bereut. Nirgends kann man so vernünftig arbeiten wie am Desktop. Abends im Bett oder auf der Couch dann mit einem Ultrabook noch Kleinigkeiten machen, ist aber auch sehr entspannend. An manchen Tagen wird auch nur im Bett geblieben und programmiert.



  • Zur Frage C# oder C++, da würde ich auf jeden Fall zu C++ raten. Da hast du von Void-Zeigern und blanken Arrays bis STL alles in einem Paket. Ja sogar Assembler kannst du nutzen. Du kannst ganz weit runter an die Maschine gehen, oder bequem abstrahieren, wo dir so gut wie jedes Problem der Speicherverwaltung durch RAII, Smartpointer und STL komplett abgenommen wird. Und du kannst deine Klassen extrem fein einstellen, das musst du aber nicht. Und all die schönen Libs wie OpenCV und so laufen mit bestmöglicher Geschwindigkeit.



  • Kael schrieb:

    Ich habe mich nun für C# entschieden.

    Deine Wahl war:
    https://www.youtube.com/watch?v=0H3rdfI28s0



  • Aber... Ernsthaft? Ich werde immer mehr verwirrt ^^



  • Ach, vergiss es. Das Thema Programmiersprache ist wunderbar geeignet für Flame Wars.



  • Mechanics schrieb:

    Ach, vergiss es. Das Thema Programmiersprache ist wunderbar geeignet für Flame Wars.

    ... bei Menschen, die mal aus dem Keller gehen und ein paar Hobbies an der frischen Luft & mit anderen Menschen betreiben sollten.



  • Ethon schrieb:

    ... bei Menschen, die mal aus dem Keller gehen und ein paar Hobbies an der frischen Luft & mit anderen Menschen betreiben sollten.

    Schau mal in eine beliebige Webcam(1). An der frischen Luft isses zu kalt. Jetzt ist Winter.

    (1) ~keine in Australien, ihr Scherzkekse.~



  • Ethon schrieb:

    rapso schrieb:

    wenn du bei einer firma angestellt werden moechtest, wirst du mit c++ bessere chancen haben.
    wenn du fuer dich spiele machen moechtest, kannst du das in der sprache machen die dir am besten gefaellt, c++, c#, VB, java, js, etc. fuer alle gibt es libs und umgebungen sowie foren die dir helfen spass zu haben.

    Bin mir nicht so sicher. Wenn hier Firmen suchen dann immer Leute mit Unity Erfahrung.

    der unity source code ist in c++, darfst dir also sicher sein.

    c# ist die client seite die quasi das scripting abdeckt, das ist aber nichts anspruchsvolles und wird bei den firmen als selbstverstaendlich erwartet, was auch immer du fuer eine scriptsprache zur engine dazu koennen musst. bei unreal engine gab es da unreal script, bei cryengine lua und flowgraph, bei id-tech engines gab es in jeder generation etwas c-artiges und bei unity ist es halt c#.

    ist natuerlich was anderes wenn man die kostenfreie hobby version nutzt.


Anmelden zum Antworten