C++ Noch aktuell?



  • ps: außerdem ist es dumm auf ne c++ board zu fragen, ob c++ noch aktuell ist. natürlich schreien da alle ja. wenn du dann irgendwann mal c++ kannst, dann wirst du merken, dass man viel mehr javaprogrammierer braucht.



  • rüdiger schrieb:

    Und es gibt Firmen die C++ für µCs einsetzen. Artchi postet doch zB regelmäßig den Link auf die Seite der BMW(?) Leute, die Stolz sind irgend eine CAN-Bus Klasse geschrieben zu haben.

    ja, ich weiss, das ist einfach nur lächerlich...

    volldagegen schrieb:

    ps: außerdem ist es dumm auf ne c++ board zu fragen, ob c++ noch aktuell ist. natürlich schreien da alle ja.

    stimmt doch gar nicht...
    🙂



  • Undertaker! Das einzige was hier lächerlich ist, bist Du!


  • Administrator

    volldagegen schrieb:

    Wenn du dann irgendwann mal c++ kannst, dann wirst du merken, dass man viel mehr javaprogrammierer braucht.

    Und irgendjemand wird auch in Zukunft die JRE programmieren und weiterentwickeln müssen. Und soweit mir bekannt ist, braucht es dazu C, bzw. C++ Kenntnisse 😉

    C++Brutzel schrieb:

    1. Ist C++ eigentlich immer noch aktuell?

    Ja, auch wenn andere Sprachen langsam auch an Bedeutung gewinnen. Denn viele Skriptsprachen oder ähnliches bauen auf C, bzw. C++, auf. Mit C und C++ bekommst du einen Einblick in eine sehr tiefe Ebene der Programmierung, welche aber trotzdem noch "verständlich" ist. Daher hilft dir auch das erlernte in C++ für andere Sprachen. Ich empfehle zum Beispiel dringend, bevor man mit Java anfängt, zuerst C++ richtig gelernt zu haben, sonst hat man es viel schwieriger damit C++ zu verstehen.

    Ich hoffe ich habe nun kein Öl in irgendein Lagerfeuer gekippt. 🙂
    Ich mag beide, C++ und Java, und finde beide haben ihren Anwendungsbereich. Also lasst die 11 Seiten ruhen, es gibt Hilfsuchende, welche die benötigen 😉

    Grüssli



  • das könnte den OP vielleicht interessieren: http://www.aristeia.com/Papers/iX interview 0906.pdf
    🙂



  • Artchi schrieb:

    Undertaker! Das einzige was hier lächerlich ist, bist Du!

    👍 *zustimm*
    Ich programmiere auch meine ATmega32- und ATmega128-Controller in C++ und mit C++ Mitteln.
    Klar, mit dem Speicher muss man haushalten (aber wieso sollte man plötzlich in C++ damit mehr Schwierigkeiten haben, als in C oder in ASM - da hat man auch nicht mehr Speicher zur Verfügung, nur weil man eine andere Sprache verwendet), aber sonst kann man mit C++ wunderbar µC programmieren, ich will's nicht mehr missen.

    Kleine Zwischenfrage:
    Der Vista Kernel in C++ geschrieben, oder (nicht mehr ganz sicher)?



  • Checker&Murckser schrieb:

    Ich programmiere auch meine ATmega32- und ATmega128-Controller in C++ und mit C++ Mitteln.

    also das volle programm, virtuelle funktionen, new/delete, exceptions, mit STL oder gar Boost?
    oder doch weniger ++ und mehr C?
    🙂



  • new/delete war mal, mal nicht (je nach compilerversion) standardmäßig überladen, ließ sich aber auch hinzufügen, virtuelle Funktionen ja, excpetion-handling nein
    STL ist nicht standardmäßig dabei, aber STLport lässt sich verwenden und sonst habe ich mir halt selber ne vereinfachte vector-Klasse (mehr brauche ich an Containern fast nicht), sowie die wichtigsten Algorithmen geschrieben.

    also ich verwende nicht alles was C++ zu bieten hat, aber mehr als das was ich benutze, habe ich auch noch nicht gebraucht 😉

    Ach ja, die hardwarenahesten Sachen auf registerebene sind rein funktional geschrieben, dürften also auch mit C funktionieren (wenn man das namespace entfernt) - aber alles drüber ist mit C++ geschrieben.



  • Checker&Murckser schrieb:

    also ich verwende nicht alles was C++ zu bieten hat, aber mehr als das was ich benutze, habe ich auch noch nicht gebraucht 😉

    was ist das eigentlich für eine software, die du für die ATmega's in C++ entwickelt hast und welchen vorteil bringt dir dabei C++ gegenüber C?
    🙂



  • C++Brutzel schrieb:

    Ich wollte mich jetzt mal so richtig tief in c++ stürzen, da kommen jedoch einige Fragen bei mir auf:

    1. Ist C++ eigentlich immer noch aktuell?

    C++ ist eine der mächtigsten Sprachen. Wenn Du praktisches Programmieren wirklich verstehen möchtest, solltest Du Dir C++ ansehen und Dir dafür viel Zeit lassen. Programmieren wirklich zu lernen dauert Jahre, C++ wird Dir bis zum Schluss keine Grenzen setzen.
    Weiterhin kannst Du schnell auf andere verwandte Sprachen wechseln, wenn Du erstmal programmieren kannst.

    C++Brutzel schrieb:

    2. Ich bin zurzeit bei Grundlagen wie "cout","printf" und sachen wie das, Ich habe mir als Ziel gesetzt ein kleines einfach gehalten Spiel zu schreiben jedoch weiß ich zurzeit nicht wie ich das hinkriegen sollte...v.a. da ich zz nur die o.g einfachen befehle kenne und das ja auch alles auf Text basiert und weniger mit Grafik zu tun hat. Also: Kann ich mit C++ Spiele meiner wahl programmieren?

    Ja, Du kannst aus C++ OpenGL, SDL und DirectX und sehr vieles mehr ansprechen.
    Aber nicht jetzt. Du solltest erst programmieren lernen.

    C++Brutzel schrieb:

    3.Wird mir C++ eigentlich auch immer wieder begegnen?-Ist denn auch aktuelle und bekannte Software in C++ geschrieben?

    Mehr und mehr Anwendungen werden in C# oder Java geschrieben, beide Sprachen sind aber mit C++ verwandt. Gute C++ Kenntnisse werden sehr hilfreich sein. Solltest Du Dich für maschinennahe Projekte interessieren (Robotik, Microcontroller...), wird es mit Java und C# allerdings schnell eng. Hierfür eignet sich C und C++ wieder mehr.

    Es wird weiterhin auch noch vieles in C++ entwickelt. Nach dem Hype vor ca. 7 Jahren wurde vieles auf Java umgestellt und das wirkt weiterhin nach. Zur Zeit erscheinen mir Spiele in C# oder Java eher Seltenheitswert zu besitzen. Ich bin allerdings auch kein großer Spieler.



  • Undertaker schrieb:

    Checker&Murckser schrieb:

    also ich verwende nicht alles was C++ zu bieten hat, aber mehr als das was ich benutze, habe ich auch noch nicht gebraucht 😉

    was ist das eigentlich für eine software, die du für die ATmega's in C++ entwickelt hast und welchen vorteil bringt dir dabei C++ gegenüber C?
    🙂

    Direkten Vorteil: keinen. Man kann mit C sicher genauso gute (bzw. bessere - bin ja ganz sicher nicht der beste Programmiere) Programme schreiben.
    Aber:
    Ich habe C++ gelernt und denke mal, dass ich das einigermaßen gut kann und warum soll ich in C programmieren, wo ich erst umdenken muss, wenn ich weiß, wie ich meine Sachen mit C++-Mitteln realisiere. Es macht vieles (für mich) einfacher.
    Ich mein, Teile meines Codes kann man auch als C ansehen, die unterste Ebene der Lib würde sicher nach geringen Abwandlungen so auch von einem C-Compiler compiliert werden - wieso nicht die Möglichkeiten nutzen die man hat 😉 ?

    Was ich programmiere: Die Steuereinheit für einen "Fußballroboter" für den RobocupJunior (wenn jemand den Wettbewerb kennt).



  • Checker&Murckser schrieb:

    Direkten Vorteil: keinen.

    dachte ich mir's doch, du benutzt C++ fast wie C. 😉

    Checker&Murckser schrieb:

    Aber:
    Ich habe C++ gelernt und denke mal, dass ich das einigermaßen gut kann und warum soll ich in C programmieren, wo ich erst umdenken muss, wenn ich weiß, wie ich meine Sachen mit C++-Mitteln realisiere. Es macht vieles (für mich) einfacher.

    naja, du sagtest doch, du hättest dir eine eigene vector-klasse geschrieben. so'ne klasse arbeitet ja normalerweise mit dynamischem speicher (heap) und hat z.b. 'nen überladenen []-operator, der ja eine exception auslösen sollte, wenn man mal daneben zielt. du sagtest aber auch, dass du keine exceptions benutzt. wie legst du einen heap an, wenn der controller nur 4KB ram hat? was macht des vectors push_back-funktion, wenn mehr speicher gebraucht wird? benutzt du ein ATmega-derivat das mehr memory hat (falls es das gibt)? wie reagierst du auf falsche indizes ohne exceptions?
    1000 fragen, aber mich würde wirklich mal interessieren, wie C++ programmierer sowas hinkriegen...

    Checker&Murckser schrieb:

    Was ich programmiere: Die Steuereinheit für einen "Fußballroboter" für den RobocupJunior...

    steuereinheit? heisst das, dass noch andere controller in dem robbie werkeln oder ist es nur ein einziger ATmega?
    🙂



  • vector::operator[] löst keine Exceptions aus!



  • Artc schrieb:

    vector::operator[] löst keine Exceptions aus!

    wär' ich glatt von ausgegangen. entschuldigt bitte meine unwissenheit. was macht er denn sonst bei out-of-bounds zugriffen, z.b. x = my_vector[-99]; und ähnlichem? gleich 'realloc'?



  • Undertaker schrieb:

    Artc schrieb:

    vector::operator[] löst keine Exceptions aus!

    wär' ich glatt von ausgegangen. entschuldigt bitte meine unwissenheit. was macht er denn sonst bei out-of-bounds zugriffen, z.b. x = my_vector[-99]; und ähnlichem? gleich 'realloc'?

    Ist wohl ziemlich undefiniert😉 wenn du Bereichsprüfung benötigst verwendest du std::vector::at()

    @ OT:
    Wenn du "nur" ein kleines Spiel Programmieren willst schau dir mal die Basic-Dialekte an (BlitzBasic ist der vielleicht bekannteste). Damit kannst du vergleichsweise schnell vergleichsweise viel erreichen.

    Ich bin gerade an meinem 2. C++ - Spiel am schreiben und einige der Programmierer haben mit BlitzBasic angefangen, wenn du wirklich dabeibleiben willst kannst du C++ später lernen

    Wenn das Spiel nur als Zwischenschritt gedacht ist und du gerne Programmieren lernen willst sieht das ganze natürlich anders aus. Allerdings kann das eigene Spiel nur ein Fernziel sein.



  • otze schrieb:

    Ich bezweifel einfach mal, dass man in java aufgrund der 3 Millionen exceptions stabile programme schreiben kann *densteininsrollenbringt*

    Exceptions sind ein Instrument, mit denen Programme stabiler werden.

    Was ist die alternative? In der Regel werden in C beispielsweise Fehlercodes zurückgeliefert. Häufig werden diese einfach ignoriert. Die Folgen sind unvorhersehbar. In der Regel führt das zum Absturz.

    Wird bei einem Fehler eine Exception ausgelöst, wird das Programm schlimmstenfalls an dieser Stelle abgebrochen bevor etwas unvorhersehbares passiert, wenn der Fehler nicht explizit behandelt wird.

    Ok - in Java kann ich ihn gar nicht ignorieren. Daher wird häufig ein leerer catch-Block eingefügt. Vor allen Dingen, wenn man so hoch technisierte Tools wie Eclipse verwendet, bei denen das auf Mausklick geht. Dadurch kann man doch etwas unvorhersehbares erreichen.



  • tntnet schrieb:

    Ok - in Java kann ich ihn gar nicht ignorieren.

    Kommt auf die Exception an

    Daher wird häufig ein leerer catch-Block eingefügt.

    Kann man bei jeder Sprache machen

    Dadurch kann man doch etwas unvorhersehbares erreichen.

    Nicht wirklich.



  • volldagegen schrieb:

    ...außerdem ist es dumm auf ne c++ board zu fragen, ob c++ noch aktuell ist....

    Kommt drauf an, ws man mit seinem Thread bezwecken will.
    Von mir aus soll der gute Mann ruhig anfangen, Spiele mit Java, ASM, C, C++, Smalltalk, Cobol, ... zu programmieren - vielleicht wird er irgendwann feststellen, dass die Kategorie "aktuell" eher die unwichtigste dafür ist....

    @C++-Brutzel:

    C++Brutzel schrieb:

    Ich wollte mich jetzt mal so richtig tief in c++ stürzen, ...

    Dann hau rein !!

    C++Brutzel schrieb:

    1. Ist C++ eigentlich immer noch aktuell?

    Ist irrelevant.

    C++Brutzel schrieb:

    Kann ich mit C++ Spiele meiner wahl programmieren?

    Probier's aus.

    C++Brutzel schrieb:

    3.Wird mir C++ eigentlich auch immer wieder begegnen?

    Kommt ganz drauf an, wo Du Dich rumtreibst.

    Gruß,

    Simon2.



  • Ist ja auch gut, dass [] keine Exception bei einer Bereichsüberschreitung wirft, denn das ist eindeutig ein Programmierfehler und hat mit Exceptions so erst mal relativ wenig am Hut. Ansonsten gibts ja auch die .at() Methode, welche dann eben doch diese Exception wirft. Wenn einem so viel dran liegt kann man die ja benutzen. Läuft in Java eigentlich auch nicht viel anders. Bei einer Bereichsüberschreitung fliegt zwar eine Exception, aber das ist ne Runtime-Exception und die muss man nicht fangen, und das wird normalerweise auch niemand tun...



  • Simon2 schrieb:

    volldagegen schrieb:

    ...außerdem ist es dumm auf ne c++ board zu fragen, ob c++ noch aktuell ist....

    Kommt drauf an, ws man mit seinem Thread bezwecken will.
    Von mir aus soll der gute Mann ruhig anfangen, Spiele mit Java, ASM, C, C++, Smalltalk, Cobol, ... zu programmieren - vielleicht wird er irgendwann feststellen, dass die Kategorie "aktuell" eher die unwichtigste dafür ist....

    Gruß,

    Simon2.

    So falsch ist die Frage doch gar nicht. Wenn man sich in ein System einarbeitet, will man doch wissen, ob sich das lohnt und ob das Wissen, was man sich aneignet morgen noch zu gebrauchen ist. Und da denke ich, daß C++ schon seit 15 Jahren da ist und daher wahrscheinlich nicht morgen einfach verschwinden wird.


Anmelden zum Antworten