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 ?
Warum noch C ?
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
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.
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.
-
Massimo B.
- Beiträge: 45
- Registriert: 14. Juni 2006 11:05
- Wohnort: Bonn, Germany
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.
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.
Gentoo (x86,ppc), KDevelop, Qt3, Qt4
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
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
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
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++.
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
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++.
Es ist weniger die fehlende Performance - so weh tut eine zusätzliche Indirektion aufgrund der in C++ Thiscalls auch wieder nicht.BartSimpson hat geschrieben:C kommt viel im Embedded Bereich zum einsatz.
Da die CPU's dort einfach nicht genug "power" haben für C++.
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
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten: