@flotti:
Auch wenn es etwas spät für eine Antwort ist, möchte ich es mir doch nicht nehmen lassen. Du hast in fünf Zeilen ganze fünf Mal Unsinn oder zumindest Halbwissen gepostet, was ich ungern so stehenlassen möchte:
Zitat:
Zitat von flotti
C++ ist schneller als C, das ist Fakt!
|
Und wenn Du noch 100 Mal schreibst, dass es Fakt ist, wird es dadurch nicht wahrer. Nutze ich die Möglichkeiten der Sprache aus, dann ist C++ um einiges langsamer als ein funktionsäquivalentes C Programm. Beispiel:
Verwende ich in C++ die sich bietenden Objekte, habe ich immer einen Speicher- und Programmoverhead, weil meine OOP Strukturen ja erstmal sequentiell aufbereitet werden müssen. Unnötiger Overhead = geringere Performanz.
Erweiterte Sprachfeatures wie beispielsweise die Exceptions sind ebenfallss eine fiese Performanzsenke (man bedenke RTTI), so dass grosse Framworks wie QT vollkommen darauf verzichten, weil das schöne C++ sonst zu langsam wird.
C hingegen ist von der Compileroptimierung schon recht dicht an gutem ASM Code dran (leider nicht immer).
Zitat:
Zitat von flotti
Es wird eben doch ehr C++ als C benutzt, weils einfacher und nicht so fett ist (OOP).
|
Hast Du den Wikipedia Artikel über C/C++ nicht richtig gelesen oder wie kommst Du zu der Aussage, dass C++ nicht so fett ist, weil es ja kein OOP mitbringt??
Du kannst die Sprachen, von denen Du hier redest aber schon noch auseinanderhalten, ja?

C++ ist fetter, denn C++ bringt natürlich das OOP mit. Ob es nun einfacher ist, darüber kann man streiten - der OOP Ansatz ist auf softwaredesigntechnischen Gründen aber definitiv der populärere, weshalb C++ der Vorzug gegeben wird. In grossen, komplexen Systemen ist eine gute OOP wohl sicherlich einfacher.
Zitat:
Zitat von flotti
Celion hat recht das viele Dinge noch in C vorliegen weil man sie nicht komplett überarbeiten will. Assembler verwedet mann meines Wissens noch für die Programmierung von Bootloadern.
|
Leider ist das so falsch. Viele, vor allem systemnah arbeitende Software verzichtet aus gutem Grund auf C++, eben weil es nicht so performant ist, weil es nicht die Arbeitsweise der zugrundliegenden Systeme widerspiegelt (dafür werden dann C++ Wrapper geschrieben) und weil es oftmals schlicht überflüssig ist, mit OOP zu arbeiten.
Assembler findet in breiter Front Anwendung - nicht nur in der Programmierung von Bootloadern. So werden auch Computerspiele und Anwendungssoftware ebenso wie Kryptografieroutinen in kritischen Teilen in Assembler geschrieben, um Performanz zu gewinnen. Eine Routine, die 300.000 Mal in der Sekunde ausgeführt wird, ist halt schneller, wenn sie funktional geschrieben ist und nicht erst irgendwelche Methoden auf referenzierten Objekten aufrufen muss.
Zitat:
Zitat von flotti
C ist nötig um Microcontroller zu Programmieren die keinen C++ Assembler Code verstehen.
|
Was ist denn bitte "C++ Assembler Code"? So etwas wie "Java C++"? Oder "Visual SQL PROLOG?"
Das ist leider Schwachsinn. C++ ist eine Sprache - ebenso wie Assembler und beide werden in ein für die CPU ausführbares Format übersetzt. C im Übrigen auch.
Ein "C++ Assembler Code" gibt es nicht. Die meisten µController werden wohl in ASM oder C (oder PAS) programmiert, weil das ressourcenschonender und hardwarenäher ist. C++ kann man sicherlich auch für einige µCs verwenden. Das wird aber wohl eher die Ausnahme sein.
Zitat:
Zitat von flotti
Natürlich braucht er eine Sprache wie C oder C++, weil ewr damit direkten Speicherzugriff auf wirklich jede Adresse hat. Wenn man im Speicher liegende Daten manipulieren will führt an C oder C++ nichts vorbei.
|
Leider wieder daneben. Man kann mit sehr vielen Sprachen auf den Speicher bekommen, aber letztendlich liegt das nicht einmal an der Sprache sondern daran, ob man überhaupt auf den Speicher zugreifen darf - es ist nämlich prinzipiell verboten im Speicherbereich von anderen Prozessen herumzuwühlen. Da hängt es von der Regeln (und der MMU) des jeweiligen OS ab, ob und wie er zugreifen kann/darf.
Die Sprache ist dabei wohl eher von sekundärer Bedeutung.