Vorteile, Nachteile und Anwendungsbereiche von C und C++
-
Z schrieb:
C wird heute kaum noch verwendet.
Beleg?
-
krümelkacker schrieb:
Z schrieb:
C wird heute kaum noch verwendet.
Beleg?
Wie, Beleg?
C++ ist ein vollständiger Ersatz für C, deshalb "kaum noch".
-
Z schrieb:
Wie, Beleg?
C++ ist ein vollständiger Ersatz für C, deshalb "kaum noch".Nö!
C++ hat seine Wurzeln in C, mehr aber auch nicht.
Und C wird natürlich noch verwendet. und zwar nicht nur in Bereichen wo C++ einen inakzeptablen Overhead mitbringt (embedded, kernel, ...), sondern ebenso in alltäglichen Anwendungen.
Ein Ersatz f+r C will und kann C++ nicht sein!
-
C++ ist kein vollständiger Ersatz.
> einen inakzeptablen Overhead mitbringt (embedded, kernel, ...)
Eher nicht.
-
Z schrieb:
C wird heute kaum noch verwendet.
du kennst Nuhr?
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
-
berniebutt schrieb:
Das Thema ist sehr komplex und führt in diesem Forum oft zu heftigen Diskussionen C oder C++?
Die letzte, die sogar genau das als Thema hatte, war die hier. (nicht, dass der Thread empfehlenswert wäre)
Sonst, kann sich Seron ja mal das Buch "The Design and Evolution of C++" aus der Bibliothek ausleihen. Ich fand das sehr interessant.
Z schrieb:
Wie, Beleg?
C++ ist ein vollständiger Ersatz für C, deshalb nicht.Daraus folgt aber nicht "C wird heute kaum noch verwendet". Ich möchte nur wissen, wie Du darauf gekommen bist. Es gibt doch haufenweise reine C-Projekte (Linux Kernel, GTK, Gimp, Git, LAME, ffMPEG,...)
l'abra d'or schrieb:
[...] und zwar nicht nur in Bereichen wo C++ einen inakzeptablen Overhead mitbringt [...]
Kennst Du den C++ Performance Report? Den hat man geschrieben, weil es genug Leute gibt, die genau das behaupten, was Du auch behauptet hast -- angeblich zu unrecht.
-
krümelkacker schrieb:
Z schrieb:
Wie, Beleg?
C++ ist ein vollständiger Ersatz für C, deshalb nicht.Daraus folgt aber nicht "C wird heute kaum noch verwendet". Ich möchte nur wissen, wie Du darauf gekommen bist. Es gibt doch haufenweise reine C-Projekte (Linux Kernel, GTK, Gimp, Git, LAME, ffMPEG,...)
Ja, Du hast recht. Ich habe mich falsch ausgedrückt. Ich wollte vielmehr das sagen: "Es gibt heute keinen triftigen Grund mehr C zu verwenden, weil man mit C++ alles machen kann, was man auch mit C machen kann".
-
krümelkacker schrieb:
Kennst Du den C++ Performance Report? Den hat man geschrieben, weil es genug Leute gibt, die genau das behaupten, was Du auch behauptet hast -- angeblich zu unrecht.
Danke, kannte den Bericht nicht, werd ich mir mal anschauen.
Ich hab aber mit "Overhead" jetzt nicht unbedingt (nur) eine mögliche Performancebremse gemeint, sondern die C++-Runtime. Es gibt immer noch Geräte, die sowenig Speicher haben, dass selbst eine C-Runtime abgespeckt werden muss (uclibc, z.B.). Und C++-Programme sind ja auch oft selber größer als das C-Pendant.
Bin aber immer offen für eine Geraderückung meines Halbwissens
-
Z schrieb:
krümelkacker schrieb:
Z schrieb:
Wie, Beleg?
C++ ist ein vollständiger Ersatz für C, deshalb nicht.Daraus folgt aber nicht "C wird heute kaum noch verwendet". Ich möchte nur wissen, wie Du darauf gekommen bist. Es gibt doch haufenweise reine C-Projekte (Linux Kernel, GTK, Gimp, Git, LAME, ffMPEG,...)
Ja, Du hast recht. Ich habe mich falsch ausgedrückt. Ich wollte vielmehr das sagen: "Es gibt heute keinen triftigen Grund mehr C zu verwenden, weil man mit C++ alles machen kann, was man auch mit C machen kann".
Du denkst scheinbar nur an Userprogramme wie das neueste Nero oder so. Da macht es tatsächlich keinen Sinn, C zu verwenden. Solche Programme sind aber nicht das einzige Gebiet, auf dem programmiert wird. Der Mikrocontroller in deinem Toaster ist da schon was ganz anderes...
-
> sondern die C++-Runtime.
Es ist ja auch Quatsch, eine Desktop-Runtime auf µControllern ein zu setzen.
-
- erledigt -
-
Simon2 schrieb:
Z schrieb:
...C++ ist ein vollständiger Ersatz für C, deshalb "kaum noch".
Selbst wenn das Argument stimmten (was ich bezweifele), hieße das noch gar nichts.
Es gibt genug Beispiele dafür, dass sich "besser", "neuer", "Nachfolger", ... nicht in der Breite durchsetzen.Woran auch immer das liegen mag. C++ ist definitiv das bessere C, auch wenn man Objektorientierung nicht verwenden will (oder darf).
-
Z schrieb:
C++ ist definitiv das bessere C, auch wenn man Objektorientierung nicht verwenden will (oder darf).
Es wird immer spannender
Warum sollte man C++ Programmieren, wenn man dann auf OOP verzichtet - auch wenn is in dem Fall durchaus angebracht wäre?
-
Z schrieb:
Woran auch immer das liegen mag. C++ ist definitiv das bessere C, auch wenn man Objektorientierung nicht verwenden will (oder darf).
Bilder sagen mehr als 1000 Worte:
+-----------+ | | +--------+--+ | | |//| C | | |//| | | C++ |//| | | +--+--------+ | | +-----------+
nur im schraffierten Bereich treffen deine Aussagen zu, also da, wo sich die Anwendungsbereiche von C und C++ überlappen
-
Z schrieb:
C++ ist definitiv das bessere C, auch wenn man Objektorientierung nicht verwenden will (oder darf).
Wie wohl alle hier bin ich jetzt sehr auf die Begründung gespannt.
-
l'abra d'or schrieb:
Z schrieb:
C++ ist definitiv das bessere C, auch wenn man Objektorientierung nicht verwenden will (oder darf).
Es wird immer spannender
Warum sollte man C++ Programmieren, wenn man dann auf OOP verzichtet - auch wenn is in dem Fall durchaus angebracht wäre?Och, ich mag templates, die StdLib, exceptions, ... schon....
Ich denke, aber (wie bei all diesen "Programmiersprachendebatten"), dass die Entscheidung für/gegen eine Programmiersprache in der Realität zu 99% von anderen Faktoren bestimmt wird als Sprachmittel, Syntax, ... .
Deswegen ist es müssig, da einen zusammenhang herstellen zu wollen.Gruß,
Simon2.
-
Und schon jetzt sind wir wieder dort angelangt, was ich befürchtet hatte. Eine für mich sinnlose Diskussion um C und C++.
C --> Die weiter bleibende Grundlage
C++ --> Die sehr nützliche Erweiterung davondaddeldu - ich habe fertig! :p
-
l'abra d'or schrieb:
Z schrieb:
C++ ist definitiv das bessere C, auch wenn man Objektorientierung nicht verwenden will (oder darf).
Es wird immer spannender
Warum sollte man C++ Programmieren, wenn man dann auf OOP verzichtet - auch wenn is in dem Fall durchaus angebracht wäre?Du könntest Templates verwenden, Konstruktoren und Destruktoren in Strukturen, RAII, Smartpointer, die STL, Typüberprüfung ist auch strikter als in C, usw.
zwutz schrieb:
Bilder sagen mehr als 1000 Worte:
+-----------+ | | +--------+--+ | | |//| C | | |//| | | C++ |//| | | +--+--------+ | | +-----------+
Nein, die C-Menge muß von der C++-Menge umschlossen werden.
http://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Set_subsetAofB.svg/300px-Set_subsetAofB.svg.png
(A ist C, B ist C++)
-
Z schrieb:
Nein, die C-Menge muß von der C++-Menge umschlossen werden.
http://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Set_subsetAofB.svg/300px-Set_subsetAofB.svg.png
(A ist C, B ist C++)void f(restrict int* p) { int arr[*p]; }
warum mag mein legaler c code nicht mit einem c++ compiler kompiliert werden?
-
Z schrieb:
Nein, die C-Menge muß von der C++-Menge umschlossen werden.
Es geht um Anwendungsbereiche in der Realität
zwutz schrieb:
nur im schraffierten Bereich treffen deine Aussagen zu, also da, wo sich die Anwendungsbereiche von C und C++ überlappen