Anonymous hat gesagt.:
In was werden eigentlich Betriebssysteme entwickelt? Die Kerne sind ja auch sehr hardwarenah bzw. die ganze Threadverarbeitung muss sehr schnell ablaufen. Also wird wohl C++ nie aussterben. Ebenso die Treiberprogrammierung, da diese ja möglichst effizient sein müssen, werden diese auch immer in C++ geschrieben, oder?
In der Allgemeinheit gestellt, ist die Antwort wohl C, und zwar ohne irgendwelche Sonderzeichen dran
🙂 Das hat allerdings nicht mit mangelnder Objektorientierung zu tun - objektorientiert kann man auch in C programmieren, nur muss man die ganze schicke Funktionalität objektorientierter Sprachen halt von Hand ausprogrammieren. Nicht umsonst haben die ersten C++ Compiler nach C compiliert, nicht Maschinensprache (oder P-Code). Wenn sich an Datenstrukturen in Betriebssystemen eine Reihe von Zeigern auf Funktionen finden, handelt es sich um so etwas: Objektorientierte Programmierung in einer nicht-objektorientierten Sprache. Aber das nur am Rande.
Etwas weniger allgemein, ein Betriebssystem hat sehr unterschiedliche Aufgaben, und entsprechend dieser Aufgaben sind die Programmiersprachen und -umgebungen gewählt. Der Kern und die Treiber werden wohl fast ausschließlich in C programmiert, vielleicht mit ein paar eingestreuten Assembler-Anweisungen, so dass z.B. besondere Prozessoreigenschaften ausgenutzt werden können. Aber es gibt auch das große "Randgebiet" außerhalb dieser Schauplätze, Code, der mit Sicherheit Betriebssystemcode ist, aber weder hardwarenah ist noch besonders schnell sein muss.
In welcher Programmiersprache programmiert man am besten den "Datei öffnen"-Dialog?
Wenn Du Windows benutzt, hast Du vielleicht schon mal festgestellt, dass es 3 (oder so?) vom Betriebssystem zur Verfügung gestellte "Datei öffnen"-Dialoge gibt. Es gibt überhaupt keinen Grund, warum so ein Standarddialog in C oder C++ oder irgendwas anderem programmiert werden müsste. Wichtig ist nur, dass es eine bestimmte Methode gibt, diesen Dialog in ein eigenes Programm einzubinden, also nur eine Schnittstelle zu dieser Betriebssystemfunktion. In Windows ist dies die .DLL, die dynamic link library. Es gibt viele Programmiersprachen, die Programmfunktionen mit dieser (oder vergleichbaren, für andere Betriebssysteme) Schnittstelle erzeugen können, und also auch viele Sprachen, in denen "Betriebssysteme" geschrieben werden können.
Diese "Randfunktionen" von Betriebssystemen werden wohl in Zukunft eher weniger in C, und mehr in "managed code"-Sprachen implementiert werden.