C++ - Neueinsteiger



  • Bashar schrieb:

    C++ ist genauso systemabhängig oder -unabhängig wie C (von exotischen Plattformen, µC usw. mal abgesehen).

    klar, aber man kann mit c++ auch ein hohes mass an systemunabhängigleit erreichen, indem man libs einsetzt wie qt, sdl etc. man muss dann zwar für jede platform neu compilieren aber wenn man ausserdem keine exotischen compiler-features benutzt muss man wenig ändern.

    edit: ausserdem gibt's ja das gute #ifdef 🙂
    da hat java leider nix vergleichbares zu bieten (oder doch? das neue java 1.5 vielleicht?)



  • @net
    das kannst du in C auch ohne Probleme. Die SDL die du zB. ansprichst ist ja eine C Library.



  • Facer schrieb:
    Hab mal was gelesen.

    Microsoft ist gegen Java und versucht das Windowsprogrammierung mit Java nich mehr möglich sein wird. Also Java einige Plattformen nur in Zukunft kein Windows mehr. Gerade anders rum C#. Ist speziell für die Windowsprogrammierung. C++ ist der lachende dritte da C++ glaub ich überall läuft.

    Das ist ja nicht nur OT sondern auch nocht Quatsch.

    Sag nur nichts! Quatsch mit Sauce!

    Gut, abgsehen davon, mir wäre es recht, wenn M$ Java nicht mehr unterstützen würden. Dann würden sie ungemeinen Vorschub an Linux leisten, was ich äusserst begrüsssen würde. Ausserdem würden sie ihr eigenes Grab immer weiter ausheben, und, wer weiss, ob es noch viel braucht, bis sie dann mal reinfallen... :p

    - Adrian



  • kingruedi schrieb:

    @net
    das kannst du in C auch ohne Probleme. Die SDL die du zB. ansprichst ist ja eine C Library.

    ach? alles extern "C" oder wie?
    nix oo - schade.
    ist ja mit gtk genauso



  • net schrieb:

    [
    da hat java leider nix vergleichbares zu bieten (oder doch? das neue java 1.5 vielleicht?)

    Wieso auch? Bei entsprechendem Bytecode ist eine Java-Anwendung OHNE Neukompilierung sofort auf einem anderen OS ausführbar.



  • interpreter schrieb:

    Sind heute die Assemblerprogrammier die Elite? 😉

    Assembler ist eine völlig andere Welt. Schau mal in beliebige Statistiken die sich mit der Produktivität von Programmierern beschäftigen (Zeitaufwand, Fehlerrate...) dann wirst du feststellen, dass es nur marginale Unterschiede zwischen den einzelnen Hochsprachen gibt, aber diese haben einen RIESEN Vorsprung vor Assembler. Sprich: In Experimenten (z.B. in den "Coding War Games" von DeMarco und Lister) wurde nachgewiesen, dass ein guter Cobol-Programmierer in einer Liga spielt mit den Fortran, C, C++ usw. Programmierern dieser Welt (was Produktivität angeht). Ein Assembler-Programmierer hingegen hängt uneinholbar hinterher.

    Oder glaubt ihr ernsthaft, dass sich der Mainstream an Programmierern in 20 Jahren noch mit expliziten Pointern etc. rumplagen muss?

    Der Mainstream-Programmierer programmiert heute schon nicht mehr in C++.
    Der Mainstream-Programmierer hat, wenn man den Statistiken glaubt, nicht mal *ein einziges* Programmierbuch gelesen. Vergleicht man das mit der enormen Komplexität von C++ kann man nur hoffen, dass der Mainstream-Programmierer nie in die Verlegenheit kommt C++ programmieren zu müssen.

    C++ ist nach wie vor eine sehr wichtige Sprache wenn es um die Implementation von effizienten Bibliotheken geht. Bibliotheken die dann z.B. über C-Bindings in unendlich vielen verschiedenen Sprachen benutzt werden können (z.B. in Script-Sprachen). Der Einsatz von C++ nimmt im Embedded-Bereich langsam aber sicht zu. C++ ist derzeit und C++/CLI wird laut MS die Systemsprache der Windows-Platform.

    Fazit: Die Gerüchte vom Tod der Sprachen C und C++ sind furchtbar übertrieben. Es werden noch viele Jahre vergehen bis C++ von der Bildfläche verschwindet. Und bis dahin hat man Java wahrscheinlich so furchtbar aufgebläht, dass es sogar die Komplexität von C++ in den Schatten stellt 🙂



  • Hallo,

    net schrieb:

    nix oo - schade.

    man kann übrigens auch mit C OO programmieren.



  • CarstenJ schrieb:

    net schrieb:

    nix oo - schade.

    man kann übrigens auch mit C OO programmieren.

    Klar. Ich kann in Prolog ja auch prozedural programmieren. Kostet nur halt etwas Mühe und Schweiß und ist nicht im Sinne des Erfinders.

    Die Frage ist hier imo nicht so sehr ob man kann sondern vielmehr ob man sollte 🙂



  • interpreter schrieb:

    net schrieb:

    [
    da hat java leider nix vergleichbares zu bieten (oder doch? das neue java 1.5 vielleicht?)

    Wieso auch? Bei entsprechendem Bytecode ist eine Java-Anwendung OHNE Neukompilierung sofort auf einem anderen OS ausführbar.

    manchmal fehlt mir bei java sowas wie #ifdef um debug-ausgaben in der release-version nicht drin zu haben. ohne änderung ausführbar stimmt auch nicht immer: eine bekannte von mir hat mal eine mittelgrosse anwendung geschrieben und da war es tatsächlich eine! zeile, die geändert werden musste (irgendwelche inkompatibilitäten mit den layout-managern unter win32 bzw. xwindows)



  • Die Frage ist hier imo nicht so sehr ob man kann sondern vielmehr ob man sollte

    Schon klar, aber gerade GTK ist ja sehr schön objektorientiert, auch wenns C ist.



  • Fazit: Die Gerüchte vom Tod der Sprachen C und C++ sind furchtbar übertrieben. Es werden noch viele Jahre vergehen bis C++ von der Bildfläche verschwindet. Und bis dahin hat man Java wahrscheinlich so furchtbar aufgebläht, dass es sogar die Komplexität von C++ in den Schatten stellt

    und selbst wenn angeblich niemand mehr mit C++ oder C programmiert, überlegt mal, wie viele Zeilen Code es in den Sprachen gibt und wieviele Programme, die ihr täglich benutzt in einer dieser Sprachen geschrieben wurden. Auf COBOL haben schon so viele Leute versucht einen Sarg-Deckel drauf zu machen und es lebt immer noch, obwohl es schon ewig tot ist, weil es auf irgend welchen Uralt Maschinen läuft und vielleicht deine Konten bei deiner Bank verwaltet und das schon seit 30 Jahren ohne einen Systemausfall. Genauso wird das mit C und C++ sein, nur das die Code Menge an C und C++ nochmal enorm viel größer ist.



  • net schrieb:

    interpreter schrieb:

    net schrieb:

    [
    da hat java leider nix vergleichbares zu bieten (oder doch? das neue java 1.5 vielleicht?)

    Wieso auch? Bei entsprechendem Bytecode ist eine Java-Anwendung OHNE Neukompilierung sofort auf einem anderen OS ausführbar.

    manchmal fehlt mir bei java sowas wie #ifdef um debug-ausgaben in der release-version nicht drin zu haben. ohne änderung ausführbar stimmt auch nicht immer: eine bekannte von mir hat mal eine mittelgrosse anwendung geschrieben und da war es tatsächlich eine! zeile, die geändert werden musste (irgendwelche inkompatibilitäten mit den layout-managern unter win32 bzw. xwindows)

    Drum habe ich auch extra gesagt bei "entsprechendem" Bytecode:)
    Wenn jemand sorgenlos einfach so drauf los coded und z.B. seine Pfadangaben hardcodet ("C:\\foo.txt"), kann man das dann natürlich nicht 1:1 portieren.



  • Aber es darf nicht eintreffen das Java die Welt übernimmt und c++ in den Schatten stellt. Bin grad am c++ lernen wollt ihr mir jetzt sagen ich soll aufhören und java lernen?



  • CarstenJ schrieb:

    Hallo,

    net schrieb:

    nix oo - schade.

    man kann übrigens auch mit C OO programmieren.

    das machen sogar viele unbewusst, indem sie so sachen schreiben wie CreateXXX-funktionen, die eine datenstruktur anlegen und dann mit anderen funktionen darauf zugreifen, die einen pointer auf diese structs bekommen.
    da gibt's dann zwar keine vom compiler gestützte vererbung, polymorphie etc. aber selbst das lässt sich selber coden



  • Facer schrieb:

    Aber es darf nicht eintreffen das Java die Welt übernimmt und c++ in den Schatten stellt. Bin grad am c++ lernen wollt ihr mir jetzt sagen ich soll aufhören und java lernen?

    Wenn du das nur hobbymäßig machst ist es eh dir überlassen, in welcher Sprache du schreibst und wenn du professionell in der IT (Dipl.Inf. usw) arbeitest, wirst du dich sowieso ständig fortbilden müssen und 10 Sprachen können.



  • face schrieb:

    Bin grad am c++ lernen wollt ihr mir jetzt sagen ich soll aufhören und java lernen?

    Wenn du C++ kannst, wirst du dir auch andere Sprachen aneignen können. Außerdem wird dir dein Chef später auch die Wahl nicht überlassen, sondern sagen: Mach das in C#. Dann hast Java und C++ gelernt und musst dich trotzdem noch mit C# beschäftigen. Gerade im IT-Bereich gibt es kaum Wissen, was ein (Arbeits)Leben lang aktuell ist.



  • CarstenJ schrieb:

    Dann hast Java und C++ gelernt und musst dich trotzdem noch mit C# beschäftigen.

    wenn man sich mit java auskennt, hilft einem das ungemein, falls man mal c# machen 'muss'. ist beides sehr ähnlich



  • Naja hab jetzt mit c++ angefangen und werde das auch durchziehen. Danach kann ich mir ja überlegen wie ich weiter mache und wie gesagt c++ wird es noch einige Jahre geben also kanns auch nicht schade.



  • Facer schrieb:

    Naja hab jetzt mit c++ angefangen und werde das auch durchziehen.

    das solltest du tun. c++ ist alt aber unsterblich



  • Hallo,
    wenn ich zwischen Java und C# wählen müsste, würde ich bei Python bleiben 😃


Anmelden zum Antworten