Wurde Apple in C++ programmiert?



  • Freezer schrieb:

    Außerdem habe Ich gehört Windows ist angeblich in C programmiert, aber ich frage mich wieso sie das nicht mit C++ gemacht haben?

    Um die C++ Programmierer fernzuhalten. ⚠

    Linus Torvalds schrieb:

    Quite frankly, even if the choice of C were to do nothing but keep the C++ programmers out, that in itself would be a huge reason to use C.



  • Merkwürdigerweise vermisst man beim Kernel-Programmieren C++ nicht.
    http://www.henkessoft.de/OS_Dev/OS_Dev1.htm
    Da ist C einfach das richtige Werkzeug, abgesehen von diesen scheußlichen #define und dem blöden Deklarieren von Laufvariablen außerhalb der Schleife. Klassen und ihre Big Three fehlen einem kein Bißchen. 😉

    Im User-Space, also außerhalb des Kernels, ist C++ die bessere Wahl, muss aber nicht sein.



  • borg schrieb:

    volkard schrieb:

    Naja, es würde um Größenordnungen stabiler als in C laufen, weil man eine geordnete Fehlerbehandlung mit Exceptions hat und keine Ressourcenlöcher wegen der Destruktoren.

    Lustig, als sie den linux Kernel mal auf g++ portiert haben um Kernel Module in c++ schreiben zu können (1992), haben sie das wieder rückgängig gemacht aus 2 Gründen: Es war viel zu langsam und das c++ exception handling war im Kernel unbenutzbar. 😉

    edit: http://www.kernel.org/pub/linux/docs/lkml/#s15-3

    1992, alles klar 🙄

    Zitiert wenigstens etwas aktuelles, z.B. den L4-Microkernel, der ist in C++ geschrieben.



  • Was ist L4? Hab ich noch nie gehört, scheint unwichtig zu sein.



  • Freezer- schrieb:

    Hi,

    Ich habe gehört Apple Mac OS ist in C++ programmiert, stimmt das?

    Die Treiber werden mit einem abgespecktem C++ geschrieben. Sonst kommt in MacOS X eher wenig C++ zum Einsatz. Die meisten Frameworks basieren auf Objective-C.



  • Der L4 Mikrokernel ist aber ein Kernel für Embedded Systems. Hab den Code noch da rumliegen, allerdings nur vom L4Ka::Pistachio. In meinem Augen wird nicht viel von den "ach so tollen C++ Features" verendet, sondern ist es eher fast nur C Code im C++.



  • supertux schrieb:

    Der L4 Mikrokernel ist aber ein Kernel für Embedded Systems. Hab den Code noch da rumliegen, allerdings nur vom L4Ka::Pistachio. In meinem Augen wird nicht viel von den "ach so tollen C++ Features" verendet, sondern ist es eher fast nur C Code im C++.

    Stimmt doch gar nicht, x86 ist die wichtigste Referenzplattform für L4.

    Es hat doch nie jemand behauptet, dass man C++ Code so schreiben muss wie er in den ganzen Boost Dateien zu finden ist. Wenn ich C++ Code schreibe, dann sieht er auch leserlich aus (wobei ich glaube, dass die Boost Leute extra einen Obfuscator haben der die Release-Versionen erstellt).



  • OS-Progger schrieb:

    x86 ist die wichtigste Referenzplattform für L4.

    was bedeutet das schon?
    🙂



  • Das bedeutet dass der Verbreitungsgrad begrenzt ist und man es beruhigt in die Tonne kloppen kann.

    Habe ich zumindest irgendwann mal irgendwo von irgend jemandem gehört, der es spontan mal aufgeschnappt haben soll. Aber so ganz sicher, bin ich mir da nicht.
    Klingt komisch, ist aber so.



  • volkard schrieb:

    %fricky schrieb:

    Freezer- schrieb:

    Außerdem habe Ich gehört Windows ist angeblich in C programmiert, aber ich frage mich wieso sie das nicht mit C++ gemacht haben?

    warum sollten sie? vorteile hätte es ja keine.
    soll das hier der neue c++ flamethread werden?

    Naja, es würde um Größenordnungen stabiler als in C laufen, weil man eine geordnete Fehlerbehandlung mit Exceptions hat und keine Ressourcenlöcher wegen der Destruktoren. Durch die erhöhte Übersicht mancht man weniger Fehler und das senkt dei Entwicklungskosten. Außerdem kann man dadurch besser optimieren, was die Sache Ressourcensparender zur Laufzeit macht.

    Wie stabiler soll der Linux-Kernel denn noch werden? 😃


Anmelden zum Antworten