Wurde Apple in C++ programmiert?



  • 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. 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.

    du hast damit alle standard-argumente aufgeführt, die c++'ler immer anbringen, liest sich wie so'n werbe-flyer. nun könnte man sich jeden punkt vornehmen und zeigen, dass es im grunde nicht so ist, wie's scheint, aber dann hätten wir hier ratz-fatz wieder 30 seiten hickhack, was letztlich zu nichts führt.
    🙂



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

    Haben sie doch. Ihr solltet euch mal drüber klar werden, was ihr mit "Windows" eigentlich genau meint.

    Da gibt's noch Fragen dieser Art:
    Warum haben sie ein paar unausgewachsene Scriptsprachen dazugegeben (VBS, JScript, cmd.exe), und sie dann selbst kaum verwendet?
    Wir haben ja im letzten Flame-Thread mit Volkard den Konsens erreicht, daß wir behaupten dürfen, daß C++ deshalb so kompliziert ist, weil es OOP-Geschichten auf eine statische Typisierung anwenden und viele Dinge zur Compilezeit abarbeiten will.

    Wenn ich Windows gebaut hätte, hätte ich viele der Konfigurations-Sachen mit einer einfacheren dynamischen Sprache gemacht.
    Oder zumindest einen C-Compiler mitgeliefert... 😡



  • mngbd schrieb:

    Oder zumindest einen C-Compiler mitgeliefert... 😡

    Die EU hätte ihre Freude 🤡



  • mngbd schrieb:

    Wenn ich Windows gebaut hätte, hätte ich viele der Konfigurations-Sachen mit einer einfacheren dynamischen Sprache gemacht.
    Oder zumindest einen C-Compiler mitgeliefert.

    stimmt, früher waren wenigstens noch qbasic bzw. gwbasic dabei. aber heute haste ja .NET auf jeder windoof-kiste und da ist bestimmt auch ein C#-compiler mit drauf. oder etwa nicht?
    🙂



  • mngbd schrieb:

    Wir haben ja im letzten Flame-Thread mit Volkard den Konsens erreicht, daß wir behaupten dürfen, daß C++ deshalb so kompliziert ist, weil es OOP-Geschichten auf eine statische Typisierung anwenden und viele Dinge zur Compilezeit abarbeiten will.

    Echt? Kann mich nicht daran erinnern. Erinnern kann ich mich nur an "Weil es so viel OO statisch getypt machen will und gleichzeitig möglichst kompatibel zu C bleiben will."



  • audacia schrieb:

    Für den Rest soll AFAIK Objective-C benutzt worden sein. Das läge nahe, weil Cocoa auch primär eine ObjC-Schnittstelle ist.

    Hi,

    Ok danke, aber was ist an Objective-C denn besser als an C++? Ich höre Objective-C jetzt gerade zum ersten mal wenn ich ehrlich sein soll..



  • Echt? Kann mich nicht daran erinnern. Erinnern kann ich mich nur an "Weil es so viel OO statisch getypt machen will und gleichzeitig möglichst kompatibel zu C bleiben will."

    Hab nachgeschlagen, hast recht.

    stimmt, früher waren wenigstens noch qbasic bzw. gwbasic dabei. aber heute haste ja .NET auf jeder windoof-kiste und da ist bestimmt auch ein C#-compiler mit drauf.

    Keine Ahnung. Aber wahrscheinlich nicht.
    Ist sicher nur das Framework, ohne irgendwas weiteres.



  • Die EU hätte ihre Freude 🤡

    Auch wieder wahr.
    Daran hatte ich noch nie gedacht.



  • Ok danke, aber was ist an Objective-C denn besser als an C++?

    Weiß ich leider nicht.
    Was ich aber weiß, ist daß sich Objective-C später von C abgespalten hat als C++.
    Nach allem, was ich so höre, is Objective-C vollständig Syntax-kompatibel zu C, was für C++ nur mit einigen Ausnahmen gilt.

    Ich glaube ich, irgendwo gelesen zu haben, daß Objective-C stärker auf das Nachrichten-Modell setzt. Ich hab mir irgendwann mal die Syntax angeschaut: aber da waren so viele seltsame eckige Klammern drin, daß ich's wieder gelassen habe.

    Schau bei Interesse mal hier:
    http://de.wikipedia.org/wiki/Objective-C



  • mngbd schrieb:

    stimmt, früher waren wenigstens noch qbasic bzw. gwbasic dabei. aber heute haste ja .NET auf jeder windoof-kiste und da ist bestimmt auch ein C#-compiler mit drauf.

    Keine Ahnung. Aber wahrscheinlich nicht.
    Ist sicher nur das Framework, ohne irgendwas weiteres.

    Hm, bei mir in %WINDIR%\Microsoft.NET\Framework\v2.0.50727 ist csc.exe enthalten. Ich hab zwar auch das SDK installiert, allerdings befinden sich dessen Binaries vermutlich nicht in diesem Ordner.



  • Hm, bei mir in %WINDIR%\Microsoft.NET\Framework\v2.0.50727 ist csc.exe enthalten.

    Wenn das Out-of-the-box so wäre, würde ich das für eine Gute Sache halten.
    Vielleicht hat's die EU einfach übersehen?



  • Was hat das denn mit der EU zu tun? Ein Compiler ist kein Browser. Nach eurer Logik dürfte MS dann auch Paint und Notepad nicht mit ausliefern oder was?



  • Was hat das denn mit der EU zu tun? Ein Compiler ist kein Browser.

    Aber technisch von ähnlich großem Aufwand.
    Auch wird auf dem Markt stark gekämpft, ich sehe da viele Parallelen.
    Nur fällt das wahrscheinlich den wenigsten Richtern so deutlich auf, weil sie keine Compiler verwenden.

    Nach eurer Logik dürfte MS dann auch Paint und Notepad nicht mit ausliefern oder was?

    Wenn die mehr als ein Spielzeug wären, wäre sicher schon prozessiert worden.



  • Freezer- schrieb:

    audacia schrieb:

    Für den Rest soll AFAIK Objective-C benutzt worden sein. Das läge nahe, weil Cocoa auch primär eine ObjC-Schnittstelle ist.

    Hi,

    Ok danke, aber was ist an Objective-C denn besser als an C++? Ich höre Objective-C jetzt gerade zum ersten mal wenn ich ehrlich sein soll..

    Es ist primär anders. Ob es besser ist soll jeder für sich entscheiden 😉



  • 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?

    Weil es mit C++ um durchschnittlich 7,62% langsamer wäre.



  • schtatischtiker 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?

    Weil es mit C++ um durchschnittlich 7,62% langsamer wäre.

    alles im kernel-mode von win ist in C. einige usermode-anwendungen sind in C++ gemacht worden. zur zeit der ersten nt-version war c++ kaum oder garnicht bekannt. hätte es c++ damals schon gegeben, hätten sie (wie ich ms so einschätze) im kernel auch c++ verwendet. das hätte ihnen wahrscheinlich ziemliche kopf- und bauchschmerzen bereitet, aber sie hätten's bestimmt durchgezogen (dann gäbs wohl auch eine kernel-mode variante des m$ 'component object model').
    🙂



  • 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



  • borg schrieb:

    [Es war viel zu langsam und das c++ exception handling war im Kernel unbenutzbar.

    oh nein, jetzt geht's wieder los. *cry* gleich haste die ganzen c++ fanatiker wie ~john, JustAnotherNoob, usw. auf'm hals.
    🙂



  • 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.


Anmelden zum Antworten