Leidige Frage - Für Anwendungs- UND Systemprogrammierung eher C oder C++?



  • DEvent schrieb:

    Das Problem ist nur, dass OOP in C++ keinen Spass macht.

    OOP macht generell keinen Spaß. Also, wo ist das Problem?



  • silberfisch schrieb:

    Soweit ich weiß, ist C eher für Systemprogrammierung in Verwendung, und C++ für größere Anwendungen, da es aufgrund des OOP einfacher zu warten und dergleichen ist..

    Ja, das stimmt.
    Wenn du mal Informatik studierst, dann wirst du im Fach Systemprogrammierung in C programmieren.
    Auch heute noch, bei den Bachelor Studiengängen.

    Aber die Kernel der meisten Betriebssysteme sind ja in C geschrieben - nicht in C++.

    Haiku, der Open Source Ersatz von BeOS ist AFAIK in C++ geschrieben.
    http://de.wikipedia.org/wiki/Haiku_(Betriebssystem)

    **Wieso ist das heute noch der Fall?
    **

    **
    AFAIK weil C Funktionen feste Einsprungnamen hat (oder wie man das nun genau nennt, Profis wissen was ich meine) und somit sich besser auch von anderen Programmierprachen aus nutzen läßt.
    C++ ist hier von Compiler zu Compiler unterschiedlich und dann gibt's noch so Sachen wie Funktionsüberladung usw. das macht das ganze von anderen Sprachen aus nicht einfach.

    Würde mir C++ für die Systemprogrammierung weiterhelfen? Und andererseits, ist C für Anwendungsprogrammierung brauchbar?

    1. Ja, C++ ist im Prinzip ja eh nur eine Erweiterung von C.

    2. Ja, C kann man auch für Anwendungen verwenden, wird halt umständlicher bei großen Projekten.
    Aber schau dir mal Gnome und so an, dieses Projekt ist groß und in C geschrieben.

    [QUOTE]
    Und wie ist das nun, ist ein C++-Programmierer in der Lage, komplexen C-Code zu verstehen?**
    Ja

    Mir sind beide Bereiche ungefähr gleich wichtig, die Frage ist also, welche der beiden Sprachen lässt sich eher mit beiden Feldern vereinbaren?

    C ist hier IMO universeller aber auch umständlicher.
    Lern doch einfach beides.



  • silberfisch schrieb:

    Aber es wird wirklich nicht darauf eingegangen, welche Sprache sich eher für BEIDES verwenden lässt. Es geht mir eig. nur um diese Frage.

    BTW, du könntest auch D nehmen, D eignet sich für beides, da es zum einen für die Systemprogrammierung ausgelegt ist aber zum anderen auch Objekt Orientierte Programmierung out of the Box bietet.
    Mußt halt dann leider damit rechnen, daß D in der Industrie bis jetzt so gut wie gar nicht benutzt wird, aber für deine eigenen Projekte wäre es kein Fehlgriff.



  • Ach ja und wenn du am Linux Kernel herumwerkeln willst, dann wirst du um C nicht herumkommen.
    Linus Torvalds erwartet nämlich C Code.



  • *chipshol* *bieraufmach* *zurücklehn* 😃 😃 😃

    Natürlich C. Ich liebe Pointer, lege mir typedefs unter's Kopfkissen und
    finde OOP einfach überflüssig und langweilig. Javascript ist schon schlimm
    genug. Natürlich kann man in C größere Projekte realisieren (zB Linux oder
    einen C++- oder Java-Compiler 🕶 ). Aber dann kann man auch beim
    Original bleiben 👍



  • otze schrieb:

    DEvent schrieb:

    Das Problem ist nur, dass OOP in C++ keinen Spass macht.

    OOP macht generell keinen Spaß. Also, wo ist das Problem?

    OOP macht sehr viel Spaß. Was hast du den für Leiden mit OOP?



  • DEvent schrieb:

    Was hast du den für Leiden mit OOP?

    er hat bisher bestimmt nur OOP unter C++ gemacht. *fg*
    🙂



  • Scheppertreiber schrieb:

    ... und finde OOP einfach überflüssig und langweilig.

    ^^überflüssig ist es schon mal nicht. warum du's nicht magst, sollteste vielleicht mal erzählen, also berichte über deine schlechten erfahrungen.
    🙂



  • @fricky
    Du halt den Mund. Du hast doch von OOP noch weniger Ahnung als von C++. Hindert dich zwar nicht dran drüber zu reden, aber Politiker quaseln ja auch andauernd.

    @DEvent Es ist nicht schön, es ist nicht elegant. Multithreading mit OOP ist ein Horror. Wiederverwendbarkeit von OOP-Code ist nur ein Mythos und übersichtlicher wird der Kam dadurch auch nicht.
    Das Tolle an OOP ist, dass es ermöglicht, wie im Alltag zu denken. Das schlechte an OOP ist, dass es ermöglicht, wie im Alltag zu denken. Algorithmen lassen sich eben so nicht adäquat ausdrücken. Diese Alltagsdenkerei verleitet nur zu unnötig aufgeblähtem Design, weil die Alltagsdenke nicht direkt und pragmatisch ist.

    Ich halte OOP für mit den schwierigsten Programmieransatz, weil er enorm hohe Anforderung an den Programmierer stellt damit das eintritt, was der Gedanke hinter OOP war. In der PRaxis ist das aber alles nur Frickelei.

    Ne, dann lieber Funktional. Die Eleganz und Kürze die funktionaler Code haben kann ist einfach nur erstaunlich. Dass man einfach seine Funktion beliebig on-the-fly zusammenstecken und auf seine Daten jagen kann ist etwas, was mir sehr gut gefällt.

    Die kritik richtet sich natürlich vorwiegend gegen rein-objektorientierte Sprachen wie java. Ich musste Java programmieren und ich habe mich noch nie in einer Sprache so unwohl gefühlt. Was für einen code-overhad man hat, nur um eine Funktion als Functor übergeben zu können ist un-glaub-lich. Kommt ja in Swing zum Glück nur selten vor...



  • So ist es. In die reale Welt übersetzt der Versuch einen Pudding an die Wand zu nageln.

    Gezwungenermaßen plage ich mich momentan mit JavaScript. Ein wildes Gemisch aus Allem 😡



  • otze schrieb:

    Ne, dann lieber Funktional. Die Eleganz und Kürze die funktionaler Code haben kann ist einfach nur erstaunlich. Dass man einfach seine Funktion beliebig on-the-fly zusammenstecken und auf seine Daten jagen kann ist etwas, was mir sehr gut gefällt.

    na, deshalb gibts ja auch sowas wie groovy und scala für die Java-plattform, mit denen du auch funktional programmieren kannst. das sind zwar eigenständige sprachen, aber sie können mit normalem Java-code gemischt werden.
    🙂


Anmelden zum Antworten