100M LOC für ein Auto?



  • Wie kommt man auf über 100 000 000 lines of code für ein Auto?

    http://www.informationisbeautiful.net/visualizations/million-lines-of-code/

    Das wäre ja mehr Code als für Windows 7, Linux kernel, Android, Boeng 787 und Space Shuttle zusammen!
    100M erscheint da seltsam viel - oder zählen die Code von externen Libs/SW mit?

    BTW: Welche OS setzen Autohersteller für die Basis-Fahrzeugsteuerung ein? Ist das jeweils eine Eigenentwicklung oder gibts einen Standard wie ein spez. Unix-Derivat, (RT) Linux kernel fork o.a.?


  • Mod

    Entwickler pro Codezeile bezahlen, die sollen schließlich was tun für ihr Geld.

    Sprachen benutzen, in denen man viel Code für einfache Dinge benötigt. Denn jeder weiß, dass nur Assembler die nötige Feinkontrolle und Effizienz bietet.

    Niemals irgendein Codestück wegwerfen, könnte ja nochmal nützlich sein.

    Aber umgekehrt auch niemals Code doppelt nutzen. Könnte schließlich sein, dass sich die Anforderungen an einer Stelle ändern.

    Fehler durch mehr Code drumherum berichtigen, anstatt den falschen Code zu berücksichtigen. Könnte ja sein, dass sich jemand was bei dem falschen Code gedacht hat oder sich Code anderswo auf das falsche Verhalten verlässt.

    Alles natürlich in 100 Wrappern verpackt, wir entwickeln schließlich sauber abstrahierte Software.

    Alles selber entwickeln, denn jeder weiß, nur wenn man etwas selber macht, wird es gut.



  • Ich weiß nicht, wer das zusammengestellt hat, und was das genau bedeuten soll. In einem modernen Auto könnte ja auch ein Android drinstecken und in dieser Statistik mitgezählt werden. Oder es wird die ganze Test- und Verwaltungssoftware drumherum gezählt.



  • some guess work, rumours& estimates



  • Wahrscheinlich liegen die Karten des Navis in "Codezeilen" Form vor.

    Oder sie Generieren Code für den kompletten Drehzahlbereich des Motors in 0.001 U/min-Schritten.

    Mechanics schrieb:

    In einem modernen Auto könnte ja auch ein Android drinstecken und in dieser Statistik mitgezählt werden

    Oder sogar mehrere und alle werden einzeln gezählt.

    Da (hoffentlich) jede Zeile Code die zum wirklichen Betrieb eines Autos benötig wird getestet werden sollte, halte ich es für höchst unwahrscheinlich, dass es 100M LOC für den Betrieb des Autos sind, sondern für irgendwelchen Kram ums Auto.



  • Wenn die Statistic stimmt, hat Facebook 60M LOC. Da muss ja wirklich die besste Gesichtserkennungs/Spionagesoftware der Welt eingebaut sein.


  • Mod

    lkjooo schrieb:

    Wenn die Statistic stimmt, hat Facebook 60M LOC. Da muss ja wirklich die besste Gesichtserkennungs/Spionagesoftware der Welt eingebaut sein.

    Alle Nutzer sind fest im Code verbaut. Was dachtest du, was bei der Anmeldung passiert? Die Daten werden nach Indien geschickt und dort von Hand in die Codebasis eingefügt.



  • Die Automobil-Industrie hinkt bei der Verwendung von neuen Techniken immer ein paar Jahre, so geschätzte 10 Jahre, hinterher.
    Ich schreibe für 300 Zeilen Anwendungscode das 10fache an Test-Code. Alleine an der Tatsache das ich das Zeug von Hand schreiben muss und keinen wirklichen Tool-Support habe, zeigt die Trägheit auf Änderungen der Technologien.



  • Würde das kompilieren wären das 627 Milliarden LOC... Wenn man das Assembly zählt 🤡

    #include <iostream>
    
    template <unsigned I> struct nopUnroller { inline static void volnop() __attribute__((always_inline)) { asm volatile ( "nop" ); nopUnroller<I-1>::volnop(); } };
    template <> struct nopUnroller<0> { inline static void volnop() {} };
    template <unsigned I> struct nopPlosion { inline static void volnop() __attribute__((always_inline)) { nopUnroller<890>::volnop(); nopPlosion<I-1>::volnop(); } };
    template <> struct nopPlosion<0> { inline static void volnop() {} };
    template <unsigned I> struct nopPlosion2 { inline static void volnop() __attribute__((always_inline)) { nopPlosion<890>::volnop(); nopPlosion2<I-1>::volnop(); } };
    template <> struct nopPlosion2<0> { inline static void volnop() {} };
    template <unsigned I> struct nopPlosion3 { inline static void volnop() __attribute__((always_inline)) { nopPlosion2<890>::volnop(); nopPlosion3<I-1>::volnop(); } };
    template <> struct nopPlosion3<0> { inline static void volnop() {} };
    
    int main() { /*nopUnroller*/nopPlosion3<890>::volnop(); }
    

    </troll>

    Nein aber mal im Ernst, das ist krass. Aber wenn ich mir den Code in meiner Firma anschau wunder ich mich gar nicht mehr.
    Hoffentlich ließt das keiner *whistles*



  • 5cript schrieb:

    Aber wenn ich mir den Code in meiner Firma anschau wunder ich mich gar nicht mehr.

    Ich wusste gar nicht, dass das Handelsregister so lange Namen akzeptiert, dass man da sinnvolle Programme unterbringen kann. Welche Programmiersprache wird da verwendet?



  • TyRoXx schrieb:

    5cript schrieb:

    Aber wenn ich mir den Code in meiner Firma anschau wunder ich mich gar nicht mehr.

    Ich wusste gar nicht, dass das Handelsregister so lange Namen akzeptiert, dass man da sinnvolle Programme unterbringen kann. Welche Programmiersprache wird da verwendet?

    Whitespace


Anmelden zum Antworten