Wie lange wird es noch C++ geben?



  • hey, wer kommt eigentlich dauernd auf den schwachsinnigen und idiotischen gedanken, dass C+ nur das gerings mit C# hätte? C# ist nur ein billiger Java abklatsch, welcher von MS gehyped wird. Und das C im namen hat auch nur was mit marketing zu tun. C# ist dreck den kein mensch braucht. Wenn ich plattformabhängigen frickelcode haben will, dann prog ich asm.



  • c#, java ist wie ein auto mit automatik schaltung, ABS, ESP etc. fehlst nur noch Autopilot und man muss gar nichts mehr selber machen;)

    Wo bleibt da der spass 😃



  • Simon2 schrieb:

    BTW: Natürlich geht swap() in Java - nur natürlich nicht mit Referenzen auf primitive Typen, weil Java da eine willkürliche Grenze gezogen hat.

    Na dann mach mal ein Beispiel. Ich sage es geht nicht, weil es auch keine Zeiger auf Zeiger (primitiver Typ) gibt. Den Inhalt aller Member kopieren ist kein swap.



  • kurze zwischenfrage schrieb:

    Simon2 schrieb:

    BTW: Natürlich geht swap() in Java - nur natürlich nicht mit Referenzen auf primitive Typen, weil Java da eine willkürliche Grenze gezogen hat.

    Na dann mach mal ein Beispiel. Ich sage es geht nicht, weil es auch keine Zeiger auf Zeiger (primitiver Typ) gibt. ...

    Hast Recht !

    Gruß,

    Simon2.



  • swdfsdfsdf schrieb:

    C# ist dreck den kein mensch braucht.

    Genau wie inkompetente Postings wie dieses. 🙄

    c#, java ist wie ein auto mit automatik schaltung, ABS, ESP etc.

    Also mir ist ein Automatik Porsche lieber als ein Opel mit manuellem Getriebe. 😃



  • Kurze Antwort: Ja, lohnt sich durchaus, auch wenn du später (solltest du beurflich in die Richtung einsteigen) evtl. kein C++ programmieren wirst.
    Es geht bei sowas doch v.a. um die Konzepte und Hintergründe, und deswegen lohnt sich das schon. Und letztlich ist der Unterschied zwischen C++, Java, C# usw. doch gar nicht so groß. Ob du nun z.B. automatische Speicherverwaltung hast oder dich selbst drum kümmern musst (was ja immer als erstes bei so Diskussionen kommt) ist eigentlich gar nicht mal so wichtig, wenn man mal von Anfängern absieht. Letztlich gehts dabei nur um Resourcenfreigabe, und sowas wirst du immer wieder haben, dass du Resourcen freigeben musst, auch in Java/C# (z.B. Datenbank-Objekte, ...).
    Wirklich interessant ist da eher der Vergleich mit Sprachen, die ganz andere Konzepte verfolgen, z.B. Prolog.



  • In Java muß ich auch Resourcen freigeben... die betreffen zwar keinen nativen Speicherbereich, aber trotzdem indirekt Speicher.

    Habe ich eine File-Objekt geöffnet, muß ich auch in Java zu dieser Resource "close" sagen. Sonst bleibt diese Resource so lange "besetzt", bis die Java-Virtual Maschine beendet wird. Und das kommt in der Analogie einem runter fahren eines Rechners.

    Wenn ich in Java diese Resource nicht close, obwohl ich es nicht brauche, habe ich auch ein "Leck".

    Aber jetzt wird man mich eh wieder Troll nennen. 😃



  • Hehe, ja genau das meine ich auch 🙂
    Wenn man wirklich *richtige* Projekte hat, und nicht so Firlefanz 100-Zeilen-Demo Projekte, dann muss man auch in Java&Co genauso Resourcen freigeben.
    Aber soll jetzt auch nichts gegen Java sein, programmiere ja selbst gerne auch in Java. Nur sollte man endlich mal von dem Gedanken wegkommen, dass nur C++-Programme fricklig sind. Das hängt immer vom Programmierer ab, und wenn jemand nicht wirklich programmieren kann, dann wird er auch fricklige Java-Programme schreiben



  • 777 schrieb:

    Wie lange wird es C++ noch geben?

    noch 2918 tage. kann man mit folgendem programm abfragen:

    #include <marketing>
    
    using namespace muchodollares;
    
    int main()
    {
      cout << $stop << endl;
    }
    


  • CStoll schrieb:

    (ein Schraubendreher gilt ja auch nicht als "veraltet", nur weil es seit neuestem Akku-Bohrer gibt ;))

    Das heißt aber nicht dass es auch immer sinnvoll ist den Schraubendreher anstelle des Akku-Schraubers zu benutzen.



  • Hallo

    777 schrieb:

    Wie lange wird es C++ noch geben?

    Gute Frage.

    Bedenkt man, daß alle 55 Stunden eine neue Programmiersprache herauskommt
    (ca. 8512 Sprachen in 53 Jahren)
    dann ist C++ schon jetzt äußerst langlebig und wird daher nach dem Gott'schen Gesetz noch mind. 6 Jahre bedeutend sein.

    Wahrscheinlich wird C++ aber noch viel länger wichtig sein, schließlich ist die
    Codebasis in C++ riesig.

    Gruß



  • @Ach die Kinder: Kauf dir aber ein Porsche mit Automatik getriebe, nich das überforder wirst...



  • finix schrieb:

    CStoll schrieb:

    (ein Schraubendreher gilt ja auch nicht als "veraltet", nur weil es seit neuestem Akku-Bohrer gibt ;))

    Das heißt aber nicht dass es auch immer sinnvoll ist den Schraubendreher anstelle des Akku-Schraubers zu benutzen.

    Stimmt - aber Java und Co. sind auch keine Akku-Schrauber 😉 (jeder Vergleich hinkt)



  • CStoll schrieb:

    finix schrieb:

    CStoll schrieb:

    (ein Schraubendreher gilt ja auch nicht als "veraltet", nur weil es seit neuestem Akku-Bohrer gibt ;))

    Das heißt aber nicht dass es auch immer sinnvoll ist den Schraubendreher anstelle des Akku-Schraubers zu benutzen.

    Stimmt - aber Java und Co. sind auch keine Akku-Schrauber 😉 (jeder Vergleich hinkt)

    Doch. Java ist ein Akku-Schrauber und C++ ist ein Schrauber mit Stromkabel. Ist zwar ein wenig umständlicher, aber dafür geht dem im harten Alltagsbetrieb nicht irgendwann mal der Strom aus (bzw. der Speicher). Und mehr Leistung gibt es auch noch. 😉 😃



  • Genau C++ brauch nämlich keinen Speicher 111!!Elf



  • Artchi schrieb:

    Habe ich eine File-Objekt geöffnet, muß ich auch in Java zu dieser Resource "close" sagen. Sonst bleibt diese Resource so lange "besetzt", bis die Java-Virtual Maschine beendet wird. Und das kommt in der Analogie einem runter fahren eines Rechners.

    java.io.File? Nein, die musst Du weder öffnen noch explizit schließen. Ich denke mal, Du beziehst Dich auf Streams bzw. Reader/Writer, also IO. Aber von diesem speziellen Fall direkt zu generalisieren, das ist... nun ja. 🤡

    Edit: Und seit wann ist das Beenden einer Anwendung analog zum Runterfahren eines Rechners? 🙄



  • byto schrieb:

    ...
    Edit: Und seit wann ist das Beenden einer Anwendung analog zum Runterfahren eines Rechners? 🙄

    Bezieht sich wohl auf auf die "Anwendung" namens "virtual machine" ... 😉 (für die "Anwendung" namens "Windows XP" käme das auch ganz gut hin).

    Gruß,

    Simon2.



  • Eben! Eine JVM bildet einen nicht real existierenden Rechner bzw. eine Platform virtuell ab. Virtual Maschine... der Name sagt es schon und wurde nicht aus Spaß so gewählt.

    Und ja, ich meinte Streams, sorry... aber es auch völlig egal ob Streams, ODBC-Connections usw. Es sind Resourcen um die ich mich in meinem Code sehr wohl kümmern muß. Wir haben hier eine OSGI-Infrastruktur. Und solange jemand seine Plugins nicht frei gibt, mit der Methode release(), läuft die OSGI-Plattform bis zum unendliche weiter. Also muß sich der Java-Coder sehr wohl selbst darum kümmern, soll die Plattform korrekt "runter fahren". Vergisst (!) er das oder es gibt einen unerwarteten Programmablauf (z.B. durch eine Exception) und der Freigabe-Aufruf wird somit nicht mehr aufgerufen, gibts ein "Leck".

    Das man sich in Nicht-C++-Umgebungen als Coder keine Gedanken machen muß, ist eine LÜGE! Wir erleben das hier regelmäßig.



  • Artchi schrieb:

    Das man sich in Nicht-C++-Umgebungen als Coder keine Gedanken machen muß, ist eine LÜGE! Wir erleben das hier regelmäßig.

    Das wäre in der Tat ein naiver Gedanke. Und trotzdem erleichtert es die Arbeit ungemein, dass sich der GC um den Großteil der Objekte selbst kümmert, wenn auch nicht um alle.



  • Artchi schrieb:

    Das man sich in Nicht-C++-Umgebungen als Coder keine Gedanken machen muß, ist eine LÜGE! Wir erleben das hier regelmäßig.

    Erlebt ihr es regelmäßig, dass man sich gedanken machen muss, oder dass es einer falsch gemacht hat?


Anmelden zum Antworten