Vorteile, Nachteile und Anwendungsbereiche von C und C++
-
Hallo alle zusammen!!
Ich schreibe ein Referat in dem es um Programmiersprachen geht.
Dafür brauche ich auch die Vor/Nachteile und vorallem die Anwendungsbereichs für was man welche Sprache einsetzt.
Am besten C und C++ getrennt.Danke im voraus Seron.
PS. Ich einige Zeit gegoogelt, habe aber speziel über die Anwendungsbereiche fast nichts gefunden.
-
Da hast du aber nicht lange gesucht, wenn du gar nichts gefunden hast. Allein Wikipedia bietet schon ein paar Zeilen:
http://de.wikipedia.org/wiki/C_(Programmiersprache)#Verwendung
http://de.wikipedia.org/wiki/C%2B%2B#Anwendungsgebiete
-
Seron schrieb:
Dafür brauche ich auch die Vor/Nachteile und vorallem die Anwendungsbereichs für was man welche Sprache einsetzt.
Am besten C und C++ getrennt.Ganz einfach: C ist der Vorläufer von C++. C wird heute kaum noch verwendet.
Grundsätzlich gilt: C++ erweitert C, also alles Gute und Schlechte von C ist auch weiterhin in C++ enthalten.
-
Das Thema ist sehr komplex und führt in diesem Forum oft zu heftigen Diskussionen C oder C++?
Zu sagen ist: Erst gab es nur C. Dann wurde darauf aufbauend C++ mit weiteren guten Möglichkeiten ergänzt (Stichworte: Klassen, Vererbung, Überlagerung, ...).
C++ beinhaltet aber weiter den vollen Funktionsinhalt von C, was den Umstieg stark vereinfacht hatte.Fazit: Beides sind Programmiersprachen mit nur einem leistungsfähigen Compiler. Was und wieviel man wovon nimmt ist Geschmackssache und auch eine Frage der Schnelligkeit und Zuverlässigkeit der Programmentwicklung. Mit den besseren Möglichkeiten von C++ lassen sich einige Dinge leichter und weniger fehleranfällig machen.
Soweit im Schnelldurchgang die Vor- und die Nachteile. Für mehr wurden schon viele Bücher geschrieben - und wie gesagt führt hier oft zu teils kontroversen Diskussionen.
Anwendungsbereiche? Hier gibt es keine gravierenden Unterschiede. Man kann mit beiden dieselben Ziele erreichen. Einen Programmierer, der nur lupenreines C einsetzt, gibt es nur noch selten. Allein bei systemnahen Dingen kann man im Einsatz auf die erweiterten Möglichkeiten - wegen des dafür erforderlichen Überbaus - oft verzichten.
Vielleicht hilft dir das? Die Ausarbeitung eines Referates soll ja auch dazu dienen, dass du eigene Kenntnisse erwirbst! :p
-
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.