Warum sollte es C++ sein?


  • Mod

    Wieso sollte es wichtig sein, was die Leute Zuhause benutzen? Das ist doch mit viel gutem Willen vielleicht ein Drittel aller benutzter Computer. Kenne deine Nutzer. Wenn du Software für den Heimanwender schreibst, dann ist eine Spezialisierung auf Windows (und damit C#) sicher eine gute Wahl. Aber die Computerwelt ist wesentlich größer als deine Mudda am PC*.

    *: Hier hätte noch eine Pointe stehen sollen, wie große deine Mudda ist, aber dann fiel mir keine ein. 😞



  • Typisches Bier + Chips - Thema 😃

    Wie definiert ihr Rechner?
    Nur dieses Bigtower und ähnlichen Kram 😕

    Oder auch eure Waschmaschine?
    Oder die Rechner in eurem fahrbaren Untersatz (Auto)?
    Smartphone?
    Tablet-PC?
    Spielekonsole?

    hab da bestimmt noch das Eine oder Andere vergessen in den so ein Rechner werkelt. 😃

    So dann biegt das mal so hin das die jeweilige bevorzugte Betriebssystem-Statistik passt. 🙄

    MfG f.-th.



  • C# läuft auch auf Linux und Mac und iOS und Android...


  • Mod

    dot schrieb:

    C# läuft auch auf Linux und Mac und iOS und Android...

    Und GNU gibt's auch für Windows. Nur weil etwas technisch gesehen funktioniert, ist es nicht unbedingt toll.



  • f.-th. schrieb:

    Ich bin doof in der Grütze und hab nix besseres zu tun, also zu versuchen einfache Dinge unnötig kompliziert zu reden. Weiss zwar jeder wie "Rechner" in diesem Kontext zu verstehen ist, aber ich stell mich trotzdem mal ganz dumm (noch dümmer als ich bin, jau), und to so als tät ichs nicht checken. (...)

    *schnarch*

    ...und?



  • Die Frage müsste doch heißen: Wann sollte es C++ sein? Nicht "warum". Das würde ich beantworten mit "Wenn man die Stärken von C++ ausspielen kann". Die Stärken kann man von den Design-Zielen ablesen. Der Erfinder wollte eine Sprache, die bessere/mehr Abstraktionsmöglichkeiten gegenüber C bietet, ohne dass sich das negativ auf die Performance auswirkt. Und das ist IMHO auch gut erreicht worden. Was ich für hervorhebungswürdig halte, ist, dass es C++ einem erlaubt, die Verwendung von benutzerdefinierten Typen sehr angenehm zu gestalten. Benutzerdefinierte Typen mit schönen Schnittstellen sind ja eine Art von Abstraktion. Wo du in anderen Sprachen Dinge im Sprachkern definieren musstest, beispielsweise Dictionaries in Python, ist C++ mächtig genug, dass man solche Dinge wie Maps, Strings selbst in C++ implementieren kann und dies auch schon in der Standardbibliothek getan wurde.



  • SeppJ schrieb:

    dot schrieb:

    C# läuft auch auf Linux und Mac und iOS und Android...

    Und GNU gibt's auch für Windows. Nur weil etwas technisch gesehen funktioniert, ist es nicht unbedingt toll.

    Das mag im Allgemeinen richtig sein, im Falle von C# wär mir aber neu, dass es nicht toll funktioniert...



  • Dexxxter schrieb:

    Die Frage ist bereits gestellt, was spricht dafür C++ zu lernen, was hat euch dazu getrieben und warum wäre dies die Sprache erster Wahl?

    Ich würde einfach anfangen zu lernen und mich nicht zu sehr auf eine Sprache versteifen. Das meiste was du lernst, kannst du eh nahezu 1zu1 auf andere Sprachen übertragen. Ich programmiere bspw. eine 2D Engine in C++ und LUA, habe die allerdings auch ohne große Schwierigkeiten schon zu Java/Android portiert. An den Konzepten ändert sich eben nichts. Sei es jetzt eine while-Schleife, OOP oder ein Algorithmus zur Kollisionserkennung. Was sich halt ändert ist der Syntax - mei gott. Den schlägt man mal so beiläufig nach 😉 ! Klar - ein richtiger Guru wird man so natürlich nicht, allerdings muss man auch nicht alle Implementierungsdetails und die gesamte STL auswendig kennen, um guten Code zu schreiben.

    Zu deiner Ausgangsfrage: Ich programmiere im Beruf C / C++ / ASM / Perl im embedded/Automotive Bereich. Nicht weil ich will, sondern weil ich muss 🤡 ...



  • Hallo zusammen,

    erst mal danke für die zahlreichen Antworten.

    In einem scheint Einigkeit zu herrschen, C++ ist recht komplex für einen Einstieg, auch wurde erwähnt dasss C# vielleicht ein bessere Einstieg sein könnte, im wesentlichen bleibt es sich aber auch gleich, da ich ohnehin als Anfänger einsteigen, mich mit den verschiedenen Möglichkeiten und Konzepten von Grund auf befassen muss.

    Dennoch keine einfach Entscheidung ...

    Ich werde dieses Wochenende einfach mal in den örtlichen Buchhandel einfliegen und mir eine Übersicht sowohl für C#, als auch C++ verschaffen, dann einfach nach Bauchgefühl entscheiden (geblättertes Papier ist hierfür wohl besser für mich geeignet als dutzende Seiten im Netz durchzuklicken).

    Ich melde mich in jedem Fall nochmal zurück, entweder hier oder im C# Unterforum 😃

    Schönes Wochenende

    Dexxxter

    P.S. VisualBasic 2010 ist nicht wirklich ebenbürtig zu C-Sprachen oder?



  • Visual Basic .NET ist im Prinzip nichts anderes als eine alternative Syntax für C# und existiert wohl nur, weil Microsoft den zahlreichen Visual Basic 6.0 Entwicklern das damals neue .NET Framework, welches Visual Basic 6.0 ersetzen sollte, schmackhaft machen wollte. Für jemandem, der nicht einfach schon von Visual Basic Seite kommt, macht VB.NET imo keinen Sinn. C# ist die Amtssprache im .NET Land...



  • Vor einem Jahr hätte ich gesagt "fang mit Java an" - jetzt würde ich auch eher zu C# tendieren. Oder eine Interpretersprache, in denen hab ich allerdings nur wenig Erfahrung und würde das Empfehlen daher den anderen überlassen 😉



  • Interpretersprache zum Anfangen: Python

    Meine Empfehlung im konkreten Fall hier bleibt aber C#. Von Java würde ich auf jeden Fall abraten; insbesondere angesichts dessen, dass selbst das Plattformunabhängigkeitsargument dank Mono etc. immer mehr an Gewicht verliert. Und wer C# kann, kann praktisch sowieso Java auch...



  • Java macht durchaus Sinn, wenn man mit dem Programmieren Geld verdienen will. Gibt immer noch MASSIG viele Java Jobs.
    C# ist allerdings im Aufholen.

    dot schrieb:

    Und wer C# kann, kann praktisch sowieso Java auch...

    Das stimmt mehr oder weniger.
    Wobei es halt auch sehr wichtig ist das Framework zu kennen und diverse Standardmuster die in der jeweiligen Sprache gerne eingesetzt werden.



  • Wo du in anderen Sprachen Dinge im Sprachkern definieren musstest, beispielsweise Dictionaries in Python, ist C++ mächtig genug, dass man solche Dinge wie Maps, Strings selbst in C++ implementieren kann und dies auch schon in der Standardbibliothek getan wurde.

    Höh? Ein Dictionary wie in C++ kannst du auch in Python mit Sprachmittel bauen.

    Unterschiede sind halt:
    1. In Python gibt es eine schöne Syntax { "Key1" : 12, "Key2" : 10 }, in C++ nicht.
    2. In Python ist die Implementierung im Spracckern sinnvoll da Dictionaries extrem wichtig für Python sind und es so einfach performanter ist.



  • Hallo Dexxxter,

    ich würde dir auch zu C# raten (und MS Visual Studio Express als Entwicklungsumgebung). Die Sprache ist m.E. konsistenter als C++, und einfacher erlernbar.

    Zum Reinschnuppern kann ich dir das Open-Book Visual C# 2010 bzw. Visual C# 2008 (noch mit größeren WinForms-Kapiteln) empfehlen.
    Wenn du ein etwas alternativeres Buch suchst (mit direkterer Lernmethodik), dann gibt es C# von Kopf bis Fuß.

    Am besten, du fängst mit Konsolenprogrammen an, und wenn die Grundlagen der Sprache beherrscht sind (mind. 5-10 größere Übungsprogramme), dann wechselst du zur GUI-Programmierung. Und hier würde ich [trotzdem] zuerst (das als veraltet geltende) WinForms empfehlen (um auch hier die Grundlagen kennenzulernen), um erst danach dann auf WPF umzusteigen (da hier auch noch eine weitere Sprache XAML ins Spiel kommt).

    Viel Erfolg!



  • Ethon schrieb:

    Wo du in anderen Sprachen Dinge im Sprachkern definieren musstest, beispielsweise Dictionaries in Python, ist C++ mächtig genug, dass man solche Dinge wie Maps, Strings selbst in C++ implementieren kann und dies auch schon in der Standardbibliothek getan wurde.

    Höh? Ein Dictionary wie in C++ kannst du auch in Python mit Sprachmittel bauen.

    Na klar. Aber das würde ich nicht nutzen wollen, weil ...

    Ethon schrieb:

    [...] die Implementierung im Spracckern [...] einfach performanter

    ist.

    zero-cost abstraction ist es, was ich im Text bei C++ hervorheben wollte.



  • So einige Sachen werden in C++ mit Insintrics und Assembler erledigt, wenn Performance zählt. 🙂



  • cooky451 schrieb:

    Oder du nimmst C, da kannst du dich ganz auf die technischen Details konzentrieren und wirst nicht dauernd durch irgendwelche Wesentlichkeiten abgelenkt. 😉

    👍 😉



  • C++ solltest du nur nutzen, wenn du Segfaults handlen kannst.



  • Ach ja, gut dass du das gerade sagst.
    Habe seit 8 Stunden an einem gehangen.
    Jetzt erst behoben...
    Konstruktoren sind was tolles. 😃


Anmelden zum Antworten