Vorteile von C



  • supertux schrieb:

    Btw, ich dachte immer, dass Windows in C++ geschrieben wäre, immerhin ist die WinAPI C++, oder?

    nö! absolut gar nicht 🙂



  • supertux schrieb:

    Ich kenne auch andere Betriebssysteme (im embedded systems Bereich) die sehr wohl in C++ geschrieben sind und sehr performant sind.

    welche wären das denn?
    🙂



  • hi,
    also das soll nicht zum bashen von anderen sprachen dienen oder sonstwas. auch hab ich den titel vielleicht bischen ungünstig gewählt. also in der doku lautet die überschrift "warum doe programmiersprache C?". mir ist klar, dass einiges auch ansichtssache ist: was ist "hohe" performance ? oder was ist ein großer overhead?
    ich möchte nur gern große fehler vermeiden die mir dann abzüge brigen 😉



  • sothis_ schrieb:

    supertux schrieb:

    Btw, ich dachte immer, dass Windows in C++ geschrieben wäre, immerhin ist die WinAPI C++, oder?

    nö! absolut gar nicht 🙂

    ***:/change/stuff/windows/win2k$ find . -name \.cpp | wc -l
    2255
    ***:/change/stuff/windows/win2k$ find . -name \.c | wc -l
    4667
    ***:/change/stuff/windows/win2k$ find . -name \.asm | wc -l
    148
    ****:/change/stuff/windows/win2k$

    Also zumindest ein Drittel von Windows 2000 ist in C++ implementiert.
    Ich habe allerdings keine Ahnung ob diese Quelle glaubwürdig ist.



  • vorteil schrieb:

    also das soll nicht zum bashen von anderen sprachen dienen oder sonstwas.

    tut's ja auch nicht. die meisten anderen sprachen haben irgendeine daseinsberechtigung, auch die esoterischen. um die vorteile mal zusammenzufassen: C ist für programme das beste, die schlank und schnell sein müssen und die viele einflussmöglichkeiten auf hardware oder betriebssystem brauchen. wo C nicht mehr weiterhilft, da hilft nur noch assembler und wo assembler nicht mehr reicht, da hilft nur noch der lötkolben oder ein anderes chipdesign. dafür ist mit den 'dicken' programmiersprachen das schreiben von 'allerweltsprogrammen' einfacher, weil sie z.b. riesige libraries, designtools für grafische oberflächen etc. gleich mitbringen. man kann z.b. in C# ein betriebssystem schreiben, dass aber keiner benutzen würde, weil's zu lahm ist und man kann auch in C ein komplexes warenwirtschaftssystem coden, wenn man 10 jahre zeit hat.
    🙂



  • Storm.Xapek.de schrieb:

    ***:/change/stuff/windows/win2k$ find . -name \.cpp | wc -l
    2255

    sieht realistisch aus, ms hat teilweise ihr eigenes visual studio benutzt, aber die .cxx-files sollte man auch noch mitzählen.
    im win2k/ntos -directory wird man sicher viel weniger .cpp files finden (höchstens irgendwelche testcodes).
    und nochwas, wenn man mal in die diese .cpp-files reinschaut, findet man meistens blanken C code.



  • OS-freak schrieb:

    supertux schrieb:

    Ich kenne auch andere Betriebssysteme (im embedded systems Bereich) die sehr wohl in C++ geschrieben sind und sehr performant sind.

    welche wären das denn?
    🙂

    na, einige der L4 Familie wie L4Ka::Pistachio aus Karlsruhe.



  • win2k-freak schrieb:

    Storm.Xapek.de schrieb:

    ***:/change/stuff/windows/win2k$ find . -name \.cpp | wc -l
    2255

    sieht realistisch aus, ms hat teilweise ihr eigenes visual studio benutzt, aber die .cxx-files sollte man auch noch mitzählen.
    im win2k/ntos -directory wird man sicher viel weniger .cpp files finden (höchstens irgendwelche testcodes).
    und nochwas, wenn man mal in die diese .cpp-files reinschaut, findet man meistens blanken C code.

    ***:/change/stuff/windows/win2k$ find . -name \.cxx | wc -l
    1456

    Stimmt en Haufen .cxx Files liegen auch noch rum

    Also eine, zugegeben oberflächeliche, Suche nach ein Paar Schlüsselwörtern
    (template,template<class T>,namespace,...) gab einige Treffer.
    Ich denke also schon das in Windows auch reger Gebrauch von C++ gemacht wird.



  • Storm.Xapek.de schrieb:

    sothis_ schrieb:

    supertux schrieb:

    Btw, ich dachte immer, dass Windows in C++ geschrieben wäre, immerhin ist die WinAPI C++, oder?

    nö! absolut gar nicht 🙂

    ***:/change/stuff/windows/win2k$ find . -name \.cpp | wc -l
    2255
    ***:/change/stuff/windows/win2k$ find . -name \.c | wc -l
    4667
    ***:/change/stuff/windows/win2k$ find . -name \.asm | wc -l
    148
    ****:/change/stuff/windows/win2k$

    Also zumindest ein Drittel von Windows 2000 ist in C++ implementiert.
    Ich habe allerdings keine Ahnung ob diese Quelle glaubwürdig ist.

    meine antwort hat sich auf die winapi bezogen 🙂
    aus irgendeinem, mir immer noch unerfindlichem grunde, war ich auch mal im besitz dieses quellcodeauszuges 😃 die masse des c++ codes waren userspace-programme wie explorer, paint, wordpad und so'n krams 🙂



  • sothis_ schrieb:

    meine antwort hat sich auf die winapi bezogen 🙂

    ach !!! 😡 ich hab das mit der MFC verwechselt, es sind Jahren her, als ich das letzte Mal etwas unter Windows programmiert habe 🙄



  • sothis_ schrieb:

    aus irgendeinem, mir immer noch unerfindlichem grunde, war ich auch mal im besitz dieses quellcodeauszuges 😃

    Ich hab ihn glaub ich mal von einem CCC-Server gezogen.
    Weist du sicher das es nur ein Auszug ist, ich dachte (alleine von der Größe her ~ 713MB)
    das es der gesamte Quellcode ist. Hab ihn allerdings nie richtig angeschaut,...

    Und ja, die Masse des C++ Codes machen wirklich Programme wie paint aus.



  • Wenn ich mich recht erinnere, waren in diesen 713 MB auch diverse Coredumps von Emacs-Sitzungen enthalten. Und vollständig übersetzbar war es wohl auch nicht.



  • yup, man munkelte das es nur etwa 20% des gesamten codes von windows 2000 war. am meisten störte mich, dass die ominöse "nt.h" gefehlt hat, sonst hätte man einen beträchtlichen teil kompilieren können 😞



  • Naja,

    wenn ich so den Vergleich zwischen C und C++ ziehe, dann ist der Hauptnachteil von C dass es nicht Objektorientiert ist. Das heißt aber nicht dass eine Programmiersprache besser ist als die andere. Es heißt einfach nur dass man mit der einen Programmiersprache Dinge besser implementieren kann als mit der anderen. Dafür hat diese Programmiersprache aber garantiert wiederrum irgentwo ein anderes Problem was man mit einer anderen Programmiersprache besser lösen könnte.

    Ein ultimative Programmiersprache die alles kann, gibt es nicht und wird es auch definitiv niemals geben.

    Übrigens programmiere ich gerne mit C++, da man mit C++ mehr Fehler provozieren kann als mit vielen anderen Programmiersprachen.

    Beispiel:

    typedef struct ABCE
    {	
      int a;
    
      ABCDE()
      {
      }
    
      void Print()
      {
      }
    } ECBA;
    
    int main(int argc, char** argv)
    {
      struct ABCE h;
    
      memset(&h, 0, sizeof(ABCE));
      h.Print();
    }
    


  • LordJaxom schrieb:

    Und vollständig übersetzbar war es wohl auch nicht.

    ist es auch nicht. ich hab' mir mal den spass gemacht, aus den sources den file-manager (winfile) zu bauen. hat tatsächlich gefunzt, allerdings mit über 100 warnings. man sieht am win2k-code übrigens deutlich, dass m$-programmierer eine zwei-klasen gesellschaft sind. die ganzen GUI- anwendungen (explorer, console, paint, notepad u.ä.) sind ein ziemlich übles gefrickel, während beim kernel (ntos-verzeichnis) echte könner am werk waren.
    🙂



  • sothis_ schrieb:

    am meisten störte mich, dass die ominöse "nt.h" gefehlt hat, sonst hätte man einen beträchtlichen teil kompilieren können

    diese 'nt.h' includiert einfach nur andere #includes, was wichtiges ist da nicht drin. es gibt mindestens 2 verschiedene varianten der geleakten win2k-sources und in mindestens einer davon ist die 'nt.h' auch drin.
    🙂


Anmelden zum Antworten