Seite 1 von 1

Warum noch C ?

Verfasst: 26. Mai 2006 20:34
von Herti_R
Jetzt Programmiere ich schon eine weile mit c++ und Qt.
Finde das Objekt Orientierte Programmieren einfach super logisch.
Warum aber hat die Sprache C noch immer einen so grossen Software Anteil ? Könnte mir die Welt ohne OOP gar nicht vorstellen.. Warum werden zB. so viele Teile von Linux in C geschrieben? Braucht man das OOP vorallem für das GUI ?

Verfasst: 27. Mai 2006 10:04
von FlorianBecker
Man sagt, dass C schneller und mehr Hardware bezogen ist als C++. Außerdem wäre es sicherlich nicht so einfach bestehende Projekte einfach mal nach C++ zu portieren. Wenn ich nur an den Kernel denke... ujujuj.

Außerdem werden die meisten neuen Projekte doch eigentlich in C++ geschrieben. gtk ohne C++ API wird prozentual wohl kaum noch für neue Dinge verwendet.

Verfasst: 27. Juni 2006 10:41
von Massimo B.
Für meine Aufgabe, eine grafische Oberfläche zu programmieren, stand ich Anfangs vor der Wahl zwischen Qt und Gtk+. Gtk+ setzt doch standardmäßig auf C und hat nur durch Erweiterungen Unterstützung für C++ oder andere Programmiersprachen.
Es gibt doch nicht wenige Projekte z.B. für Gnome, welche gtk+ verwenden? Dabei weiss ich aber nicht, ob C oder C++.

gtk+ war für mich lange nicht so plausibel wie Qt, das mit C++-Kenntnissen gut zu verstehen ist. Außerdem war mir unwohl für eine neue "Sprache" wie Gtk+ dann auch noch einen Aufsatz für C++ lernen zu müssen; denn C++ war mir schon lieber.
Widgets sind einfach prädestiniert für Klassen und Vererbung.

Verfasst: 27. Juni 2006 11:13
von BartSimpson
C kommt viel im Embedded Bereich zum einsatz.
Da die CPU's dort einfach nicht genug "power" haben für C++.
Ausser die greifts zu deren großen ARM Brüdern.
C++ würde zwar viele Probleme lösen. Aber einfach mal so ein Kernel oder ähnlich komplexe Sache nach C++ kovertieren, da kann man nur viel Spass wünschen:)
Windows basisert größtenteils auf C

Verfasst: 3. August 2006 14:35
von OscarWild
Mal vorweg: Wenn jemand C++ benutzt, bedeutet das noch lange nicht, dass er tatsächlich objektorientiert programmiert - genau so wenig, wie Software, die aus mehreren Modulen besteht, automatisch modular ist ;-)
Objektorientierte Programmierung an sich ist erst mal sprachunabhängig, auch mit C lässt sich das mit ein paar Einschränkungen wunderbar realisieren - nur eben nicht ganz so bequem wie mit C++.
BartSimpson hat geschrieben:C kommt viel im Embedded Bereich zum einsatz.
Da die CPU's dort einfach nicht genug "power" haben für C++.
Es ist weniger die fehlende Performance - so weh tut eine zusätzliche Indirektion aufgrund der in C++ Thiscalls auch wieder nicht.
Was bei Embedded-Applikationen weh tut, ist der erheblich größere Footprint eines C++-Binaries durch die wesentlich komplexere Laufzeitumgebung bei sehr begrenztem ROM und RAM.
Aufgrund des begrenzten RAM und einer normalerweise fehlenden MMU ist ausserdem dynamisches Speichermanagement i.d.R. tabu - doch gerade davon lebt C++. Grund ist das Risiko, dass das RAM so stark fragmentieren kann, dass eine erfolgreiche Speicherallokation nicht mehr zuverlässig gewährleistet ist - eine ganz ungute Sache, z.B. wenn die Applikation für die Ansteuerung der Bremsen im KFZ verantwortlich ist ;-)

Verfasst: 3. August 2006 16:22
von BartSimpson
Oder wenn Micr.. mitmischt.:)
Sind sich sicher das sie bremsen wollen:)
Oder die Bremse muss erst per Internet/Telefon aktiviert werden. Woll sie das tun ja/nein.:)