В современном автомобиле строк кода больше чем…

    image

    Количество строк кода в современном автомобиле в 200 раз больше чем в Шаттле, в 60 раз больше, чем в истребителе F-22 Raptor, в 50 раз больше, чем в телескопе Хаббл, в 20 раз больше чем в марсоходе Curiosity, в 4 раза больше чем в истребителях пятого поколения, в 2 раза больше, чем в большом адронном коллайдере или Facebook, если распечатать весь код на бумаге, то стопка будет высотой 200 метров. (по данным на 2009-2012 год)

    Данные по количеству строк кода в современном автомобиле вызвали бурные споры на Reddit. Вопросы на темы от «В каком месте эти строчки прячутся, если у микроконтроллеров ограничена память?» до «Разве количество строк кода хоть что-то значит?»

    Сравнительные данные по количеству строк кода (SLOC) в различных проектах довольно интересные.

    image

    Маргарет Гамильтон и её исходники кода для посадки Апполон-11

    Количество строк кода меньше миллиона


    10.000 — Unix v 1.0 (1971) [пруф]
    10.000 — простая игра для iOS app [пруф]
    14.000 — Win32/Simile virus [пруф]
    39.000 — iOS app — photo editing [пруф]
    80.000 — электрокардиостимуятор [пруф]
    120.000 — первая версия Photoshop v1 (1990) [пруф]
    200.000 — браузер Camino [пруф]
    310.000 — движок Quake 3 [пруф]
    400.000 — Space Shuttle [пруф]

    > миллиона


    image


    Билл Гейтс в 1994 году демонстрирует, что на компакт-диск вмещается больше информации, чем на высоченные стопки бумаги.

    1.000.000 строк кода помещается на 18.000 страницах, 2 метра высотой (в 14 раз больше чем «Война и мир», в 25 раз больше чем «Улисс», в 63 раза больше чем «Над пропастью во ржи»)

    1.000.000 — игра Crysis [пруф]
    1.140.000 — геном бактерии, вызывающей сифилис [пруф]
    1.200.000 — Age of Empires Online [пруф]
    1.200.000 — модель климата планеты CESM [пруф]
    1.700.000 — истребитель F-22 Raptor [пруф]
    1.800.000 — Linux Kernel 2.2.0 (1999) [пруф]
    2.000.000 — Космический телескоп «Хаббл» [пруф]
    2.000.000 — движок Unreal Engine 3 [пруф]
    2.500.000 — Windows 3.1 (1992) [пруф]
    3.500.000 — управляющий софт в дронах [пруф]
    3.500.000 — софт для управления петабайтами данных с адронного коллайдера ROOT [пруф]
    4.500.000 — Photoshop CS 6 (2012) [пруф]
    4.500.000 — Windows NT 3.1 (1993) [пруф]
    4.700.000 — HD DVD Players on XBox [пруф]
    5.000.000 — марсоход Curiosity [пруф]
    5.200.000 — Linux kernel 2.6.0 (2003) [пруф]
    5.500.000 — сервер World of WarCraft [пруф]
    6.100.000 — Windows XP Service Pack 1
    6.500.000 — авионика и online support systems на Boeing 787 [пруф]
    6.700.000 — Google Chrome [пруф]
    7.500.000 — Windows NT 3.5 (1994) [пруф]
    9.000.000 — LibreOffice [пруф]
    9.500.000 — Windows NT 3.51 (1995) [пруф]
    9.700.000 — Firefox [пруф]
    10.000.000 — электроавтомобиль Chevy Volt [пруф]
    10.000.000 — бухгалтерский программный пакет Intuit Quickbooks [пруф]
    11.300.000 — OpenOffice [пруф]
    11.500.000 — Windows NT 4.0 (1996) [пруф]
    12.000.000 — Android (включая 3 миллиона строк на XML, 2.8 миллиона строк на C, 2.1 миллиона строк на Java и 1.75 миллиона строк на C++) [пруф]
    12.500.000 — библитотеки Mozilla Core [пруф]
    12.500.000 — MySQL [пруф]
    14.000.000 — весь софт Boeing 787 [пруф]
    15.000.000 — Android (верхняя оценка)
    15.000.000 — Linux 3.1 (2013) [пруф]
    20.000.000 — Linux kernel pre-4.2 (2015) [пруф]
    23.000.000 — Apache Open Office [пруф]
    24.000.000 — истребитель-бомбардировщик пятого поколения F-35 Fighter [пруф]
    25.000.000 — Microsoft Office (2001) [пруф]
    29.000.000 — Windows 2000 (2000) [пруф]
    30.000.000 — Microsoft Office for Mac (2006) [пруф]
    37.600.000 — Symbian [пруф]
    40.000.000 — Windows 7 [пруф]
    40.000.000 — Windows XP (2001) [пруф]
    45.000.000 — Microsoft Office (2013) [пруф]
    50.000.000 — Large Hadron Collider [пруф]
    50.000.000 — Microsoft Visual Studio 2012 [пруф]
    50.000.000 — Windows Vista (2007) [пруф]
    62.000.000 — Facebook (without backend code) [пруф]
    68.000.000 — Debian 5.0 codebase [пруф]
    86.000.000 — Mac OS X 10.4 [пруф]
    100.000.000 — софт в типичном новом автомобиле 2013 года [пруф]
    324.000.000 — Debian 5.0 (all software in package) [пруф]
    2.000.000.000 — Google [пруф] стопка распечатанных страниц высотой 3.6 км

    Большая картинка с инфографикой
    image


    Мы копнули первоисточники и выяснили, что первыми про 100 миллионов строк кода заявили в журнале IEEE Spectrum, сославшись на почетного профессора Мюнхенского технического университета Манфред Брой, который заслужил медаль Конрада Цузе (почти нобелевка в области computer science) в публикации 2009 «This Car Runs on Code»:
    These are impressive amounts of software, yet if you bought a premium-class automobile recently, ”it probably contains close to 100 million lines of software code,” says Manfred Broy, a professor of informatics at Technical University, Munich, and a leading expert on software in cars. All that software executes on 70 to 100 microprocessor-based electronic control units (ECUs) networked throughout the body of your car.



    О компании ИТЭЛМА


    image

    Мы большая компания-разработчик automotive компонентов. В компании трудится около 2500 сотрудников, в том числе 650 инженеров.

    Мы, пожалуй, самый сильный в России центр компетенций по разработке автомобильной электроники. Сейчас активно растем и открыли много вакансий (порядка 30, в том числе в регионах), таких как инженер-программист, инженер-конструктор, ведущий инженер-разработчик (DSP-программист) и др.

    У нас много интересных задач от автопроизводителей и концернов, двигающих индустрию. Если хотите расти, как специалист, и учиться у лучших, будем рады видеть вас в нашей команде. Также мы готовы делиться экспертизой, самым важным что происходит в automotive. Задавайте нам любые вопросы, ответим, пообсуждаем.

    UPD


    Результат опроса по строкам кода в вашем проекте в ВК

    Only registered users can participate in poll. Log in, please.

    Вы работаете над проектом, в котором строк кода

    • 29.5%меньше 10.000128
    • 30.9%10.000 — 100.000134
    • 13.1%100.000 — 500.00057
    • 6.2%500.000 — 1.000.00027
    • 9.9%1-10 млн43
    • 2.3%10-50 млн10
    • 0.2%50-100 млн1
    • 2.5%больше 100 млн11
    • 5%другое22
    НПП ИТЭЛМА
    152.07
    Компоненты для роботизированного транспорта
    Share post

    Comments 83

      +3
      buxley,
      А сколько строк кода в движке Хабра?
      Сколько строк текста всего написано на Хабре в виде постов?
        +2
        на Хабре примерно 120к постов и 7.5млн коментов (моя кривая выгрузка). количество строк не считал
      +3
      road vehicles — Does the source code of the software for a high-end car contain on average around 100 million lines of code? — Skeptics Stack Exchange
      Один из комментариев:
      Ford has said that the F150 pickup has 150 million lines of code.

      According to the New York Times:

      Twenty years ago, cars had, on average, one million lines of code. The General Motors 2010 Chevrolet Volt had about 10 million lines of code — more than an F-35 fighter jet. Today, an average car has more than 100 million lines of code.

      So, even if the car isn't particularly high end, it could have that many lines.

      According to Embedded Systems Security: Practical Methods for Safe and Secure Software (2012):

      One of the first embedded systems within an automobile was the 1978 Cadillac Seville's trip computer, run by a Motorola 6802 microprocessor with 128 bytes of RAM and two kilobytes of ROM.…
      In contrast, even the lowest-end automobile today contains at least a dozen microprocessors; the highest-end cars are estimated to contain approximately 100 microprocessors. With infotainment systems running sophisticated operating systems such as Microsoft Windows and Linux, the total embedded software content can easily exceed 100 million lines of code.

      Если верить подчеркнутому тексту, при подсчете приплюсовали всё, что могли, включая исходные коды Windows и Linux. :) Правда, насчет Windows у меня есть сомнения.
        +4
          0

          Если они посчитали к автомобилю все строки того, что там крутится в мультимедиа на андроиде, то это ни о чём сравнение. Тогда уж и строки кода на стороне всяких серверов, которые это обслуживают, можно плюсовать. Интересно сколько кода именно участвуют в непосредственном управлении в реальном времени.

            0
            В следующем посте закидывал картинки. habr.com/ru/company/itelma/blog/475576/#comment_20896408
            Если вам интересно именно непосредственно управление (именно функциональный минимум без которого задача не решается) — смело это все на 20 делите…
          +2
          Нда, Хабр что-то неторт совсем становится :(
            +21
            Вот соглашусь. Мало того, что в статье ни строчки технической информации, да к тому же ещё и явная ложь. Ну не может быть в авто столько кода. Даже со всеми тестами и прочей обёрткой. Просто потому, что чтобы код писать нужны программисты. А на них нужно тратить деньги. Можно легко сравнить бюджет IT у MS и у конторы типа Jeep. А дальше делаем выводы:
            или у Jeep потрясающе дешевые программисты.
            или крайне неэффективный код, написаный copy-paste
            или Jeep не делает современных автомобилей
            или у них весь код куплен и общий для всей автоиндустрии
            или статиситка в статье — брехня.

            Склоняюсь к последнему.
              +1
              В статье есть ссылки, откуда данные. Если у вас есть ссылки на другие данные — предоставьте.
                +8
                Это вы серьезно? Вот, например, пруф Но не на сайт производителя, без объяснения, что и как подсчитывалось. Ну да, взяли Linux, установили пару библиотек и собственный код — получилось 100500 миллионов строк.
                  0
                  Согласен с вами, что пруфы местами слабенькие, а местами оооочень слабенькие. Но хоть какие-то. То есть не «из головы», а проведена минимальная оценка публикаций на эту тему. Как я писал в комментах ниже, я бы с удовольствием посмотрел на качественную аналитику от доверенных экспертов. Возможно, частично, что-то проясниться из обсуждения здесь. (например, количество строк кода в движке Хабра).

                  А статья 2007 года Манфреда Броя "Engineering Automotive Software". — из рецензируемого журнала.
                +8
                Ну не может быть в авто столько кода.
                Есть мысль, что дело во множественном заимствовании. Код для нового авто не пишут с нуля, как это возможно делали для Шаттла, Хаббла или F-35, всё таки каждый из этих проектов уникален настолько, что заимствовать можно что-то фундаментальное, да и то, с большой осторожностью. А автомобилей много, код постоянно заимствуется, и наверняка обрастает разного рода #ifdef CAR_MODEL. Т.е. например, модуль управления круиз-контролем написан так, что поддерживается вообще весь модельный ряд, надо только дефайном при сборке выбрать модель авто. Но это не точно.
                  0
                  там есть ещё такой весёлая штука как MISRA которой не умеют пользоваться, и не критичные рекомендации принимают за ошибки и всеми силами исправляют, в итоге из кода вычищаются все switch-case, даже тривиальные функции дробятся на десяток таких и обвешиваются вообще всеми возможными проверками во всех ветках (даже там где именно переменная не используется) и прочий ад в стиле «заставь дурака богу молиться».
                    0
                    А почему бы и нет? Иначе зачем там такая рекомендация.
                      +3
                      Си исходник нейронки до MISRA пара сотен строк, несколько десятков килобайт
                      после — сотни мегабайт или гигабайт.
                      Быстродействие тоже катастрофически падает (а это не та задача где допустимо кадр просчитывать часами и днями).
                      Одна из причин — нельзя использовать указатели, но константы нельзя передать через стек т.к. его не десятки мегабайт. В итоге все весовые коэффициенты захардкожены в тексте программы, да да все десятки миллионов того же resnet50.
                      Другой пример — нельзя передавать функцию по указателю, в итоге всё обрастает копиями одного и того же кода с разными параметрами, для 3х3 ядра по 27 каналов, для 7х7 ядра по три канала и тд и тп.
                      И всё из за невнимательного чтения стандарта в котором сказано что в именно таких исключительных случаях не обязательно соблюдать. Стандарт то хороший, но компании не хотят из за возможных юр проблем и на фоне «растерзания Тойоты» как это называют японцы вообще не хотят чтоб были любые предупреждения или даже hint и рекомендации ЛЮБОГО стат анализатора.
                      +1

                      Возможно, так они защищаются от возможных претензий. Улетело авто в кювет, из-за того, что тормоз не сработал. Начнется расследование, и кто-нибудь скажет: «У вас тут в функции display_license не проверяется переменная license_text на NULL. Смотрите, какая плохая компания NNN — они не соблюдают рекомендации индустрии по проверке всех переменных на NULL. Из-за таких недоработок авто и вылетают с дороги!»

                        +1
                        как и ответил выше каментом
                        habr.com/ru/company/itelma/blog/475448/#comment_20880038
                        да именно на стыке юристов, социума и варнингов анализаторов к стандарту они боятся последствий. А оптимизировать по быстродействию как-то надо даже если стандарт под это не заточен вообще.
                        Я считаю что это ещё один способ экономической войны — MISRA-C как способ не пускать никого в юр поле в стык индустриальной имплементации ML.
                      0
                      То есть вы склоняетесь к copy-paste? Попробую разрушить такую теорию.
                      Представьте себе, что где-то в середине такого кода находят критичный баг. Как его править?
                        0
                        Находим баг, правим, прогоняем тесты по всему поддерживаемому модельному ряду, отзываем авто, бесплатно перепрошиваем. Но это сценарий очень серьёзного провала. Не понимаю, что изменится, если тот же критичный баг вы найдёте при любом другом подходе проектирования. Факт в том, что чаще всего авто от модели к модели не имеют настолько разительно разницы, что появляется необходимость писать всё с нуля. Поэтому я предположил, что код заимствуется. Если есть заимствование запчастей (даже между различными вендорами), почему вы исключаете заимствование кода внутри хотя бы одного вендора? Да я и как бы не настаиваю, сказал же, что это не точно.
                          0
                          Проблема начнётся на стадии «правим». Для того, чтобы обойти весь код, сделанный copy-paste, надо много времени. Это деньги. Бюджет, в пересчёте на единицу строки кода, небольшой. Выходит, что:
                          либо ошибок мало, потому, что программисты талантливые
                          либо ошибки не правят и машины едут забагованные
                          либо число строк в статье брехня.
                          Я опять склоняюсь к последнему.
                      0
                      Можно взять тысячи библиотек, из которых используют дай бог десятую часть функционала, и просуммировать это как общее количество кода. Уверен, что производители так и делают, особо не заморачиваясь оптимизацией и качеством. Количество багов софта на своей новой машине я уже устал считать.
                        +1
                        Наверняка, считают не кол-во строк «актуального» кода, который будет скомпилирован, а размер всего дерева с кучей 3rd-party, legacy и прочего балласта.

                        Что-то из разряда «сделали систему распознавания знаков — посчитали строчки кода всей OpenCV».
                      +17

                      Подозреваю, что больше половины — просто код одной или нескольких OS

                        +3

                        Ещё сверху один или несколько браузеров, и готово.

                          +1
                          Именно. Мы на прошлом месте работы делали систему управления прибором на базе браузера, запускаемого в Qt, пользователь вообще ничего не видит, а на деле там стартуют Linux, Qt, Chromium, если просуммировать количество строк кода, то уверен, что я работал в проекте, где их было миллионы! Не суть, что лично я написал дай бог сотню тысяч.
                        0
                        не верится, кажется в авто происходит двойной учет.
                        софт изолирован и работает на сотне разных контроллеров, но использует одни и те же стандартные библиотеки. Если несколько стандартных библиотек умножить на кол-во контроллеров то так и получится много строк.
                          +2

                          количество == качество! довелось работать на одном таком автомотив проЭкте для вага, шиппинг через пол года, мастер не собирался больше месяца и крешился каждый 2 запуск. зато была Архитектура, Покрытие100%, самописная База и многое другое… короче не завидую тем ребятам которые купили премиум модели с этим Г на борту :D

                            +8
                            Вот Вы сейчас описали 98% проектов на которых мне довелось поработать :D
                              +7
                              — Помнишь, Маша, в меня стреляли, я при смерти был, а ты со мной всё время была? А помнишь, когда я обанкротился и денег совсем не было, а ты все равно рядом была? А первый мой инфаркт? Ты ж всё время от меня не отходила. Знаешь, что я думаю?
                              — Что, дорогой?
                              — Что ты, Маша, мне несчастье приносишь!
                              0
                              Я как-то предложил в компании поощрять тех, кто смог добиться сокращения количества строк кода. Там меня на смех подняли. Зато сейчас одно и тоже в коде пять раз делается разными способами потому, что 5 разных человек писали и каждый свою функцию хочет использовать.
                                +1
                                А в советское время на космических проектах премии лишали, если у тебя в программе находилась функция, которая уже написана в проекте, а ты ее не использовал.
                              +9
                              Немного некорректное сравнение. Это так же, как сравнивать количество строк кода в Вашем доме. Навигация — полноценный Линукс на борту, Мультимедиа — еще один девайс на Линуксе. Кода, отвечающего за сам функционал автомобиля (управление двигателем, кузовной электроникой, активной и пассивной безопасности) — не так уж и много. Это я, как automotiv разработчик в недавнем прошлом говорю. А так — да. Залить во все компоненты фирмаврь — до суток по CAN уходило. Сейчас немного по другому делают…
                              ЗЫ: Пока писал, комментариев к статье еще не было. Опоздал.
                                +1
                                Я бы тоже с удовольствие посмотрел на качественную аналитику с разделением различных систем: что в движке, что на фарах, что на прикуривателе, а что на автопилоте…
                                  +8
                                  Вот прям в строках не скажу, про объемы бинарников: контроллер двигателя / коробки — единицы мегабайт флеши, сотни килобайт ОЗУ. Больш'ая часть из этого — таблицы коэффициентов и параметров режимов. Да, софт для них не пишется, а рисуется (матмодели в Симулинке или закрытом фирменном ПО) с последующим синтезом в Си код. Боди (кузовная электроника): 1 — 2 мегабайт флеши, разбросанные по нескольким контроллерам. Мелочевка всякая — килобайты. А вот медиасистемы всякие, со встроенной полноценной ОС — это код самой ОС и приложений…
                                +3

                                Строки кода сами по себе ничего не говорят. В данный момент, работаю над проектом на Python, в котором около 60,000 строк кода. Если переписать его на C, то получилось бы в 5-10 раз больше.

                                  +2
                                  А какие, кстати, есть альтернативные метрики? Колмогоровская сложность? «Удельная плотность алгоритмических смыслов»?
                                    0
                                    Альтернативные метрики чего? Качества, сложности, отказоустойчивости, количества функций, удобства поддержки, удобства кастомизации, скорости…?
                                  +1
                                  То, что считать строки кода — это глупо, согласен на 146%. А вот про сравнение кода на Python и C — я б не был так категоричен — зависит от требований и приоритетов.
                                    +2

                                    Это не глупо. Можно сравнивать строки кода, написанные на одном языке, какое-то представление о сложности это дает. Но вот как сравнивать строки кода, написанные на разных языках, не знаю.

                                    +1
                                    С какой стати?? Вы думаете, эти строки кода ангелы принесли? Просто большая часть их спрятана под капот питона (частично) и в виде дополнительных библиотек, во внутренности которых Вы тоже не собираетесь заглядывать. Если взять готовые библиотеки на том же С — получится по сути то же самое.
                                      0
                                      Чтоже там за строки такие… сколько приходилось переписывать с питона, перла, R… правда не на С, но на С++, строк не намного больше становилось… Если отбросить строки с "{}" то +- такой же объем, за такой же функционал, но при этом производительность выростала на порядки. Правда в R коэффициент был похуже, там всё-таки было много особенностей с лаконичными конструкциями.
                                      +2
                                      Водитель ритма сердца

                                      Эмм..?
                                        +2
                                        Кардиостимулятор, конечно.
                                        0
                                        Предлагаю к подсчёту количество строк, например, в ядре KolibriOS
                                        и для справки указать в какой размер файла они транслируются :)
                                          +2

                                          Игра "посадка на Луну" для МК-61 80 строк :)
                                          http://monatkodenis.blogspot.com/2014/01/blog-post.html?m=1

                                            0
                                            Прошивка ауди s4 от 97 года легко читается в ida. Даже баг находил. Какие там 100млн. Понимаю, что речь про современные авто, но всё же…
                                              +2
                                              А вы добавьте Android Auto, например.
                                                0
                                                Android Auto как раз скорее всего немного добавляет. По сравнению с самостоятельными системами со своей навигацией и мультимедиа.
                                              0

                                              Расскажите-ка, как это в Windows XP Service Pack 1 кода меньше, чем в NT4?
                                              Учитывая, что каждый сервис пак 100% собирается из того же дерева исходных кодов, что и основная операционная система ??? Инфа 100ка


                                              Про микобактерий тоже интересно. Весь днк можно одной очень длинной строчкой закодировать. А можно каждую пару на отдельной строке. Сравнение интересное, но явно некорректное — как сравнивать яблоки и апельсины

                                                +3
                                                Там Windows XP два раза встречается, причём с разным кол-вом SLOC.
                                                  +1
                                                  ДНК/РНК в *.fa формате содержит 70 символов в строчке. Не помню с чем точно было это связано.
                                                  Но в принципе да… считать строчками код… вот ведь бред. Банальное Си-шное (для Паскаль/Дельфи — «begin») переносить открывающую фигурную скобку на новую строчку или нет весьма меняет их количество.
                                                  +2
                                                  Когда у создателей управляющей программы очередного спутника (ну не помню, какого, даже чьего) остались 730 свободных байт оперативной памяти, они добавили программу стабилизации по звёздам.

                                                  Когда было (случайно) обнаружено проникновение во внутреннюю сеть MS и за злоумышленником наблюдали в течение месяца (впрочем, тщетно), комиссия в составе АНБ, ФБР и прочих заинтересованных ведомств сделала вывод, что в исходные коды готовящейся к выпуску новейшей ОС Windows 7 скорее всего не было внесено изменений. Потому как необозримы.
                                                    0
                                                    Потому что с точки зрения кода нарисовать кнопочку гораздо сложнее, чем посчитать тригонометрию.
                                                    +1
                                                    Это вы про Андроид в медиа панели что ли?
                                                      0
                                                      Количество строк кода в современном автомобиле..
                                                      в сферическом автомобиле в вакууме. Лада — современный автомобиль? Сколько в нем кода? А в китайском Geely? Очень желтый заголовок.
                                                        0
                                                        тазик != современное авто
                                                          +1
                                                          Там давно уже куча точно таких же деталей сторонних производителей, типа условного Bosch, как и везде. Ну или да, Итэлмы… Кстати, интересно, на какие марки они еще делают электронику…
                                                          +1
                                                          Беру Ладу, втыкаю диагностический проводок в ноут с hdd на пару терабайт, профит достигнут, лада будет на 1 месте!

                                                          имхо, такой подход ничуть не хуже, чем пруфы с кворы, не указано сколько символов в строках.
                                                          +4
                                                          Если я залью в Arduino скетч Blink в среде ArduinoIDE из-под Windows 10, я смогу заявить, что количество строк кода в моей Arduino равно количеству строк кода в скетче, ArduinoIDE и Windows 10 вместе взятых?
                                                            0
                                                            Да, а также вы будете достойны уважения, месье.
                                                            +2
                                                            Статья крайне не информативна! Не хватает сравнения кода в футбольных полях и размахах крыльев Airbus!
                                                            П.С.: А если на одном компе поднять виртуалку, то кода получится в 2 раза больше :)
                                                              0
                                                              Статья: «В компании трудится около 2500 сотрудников, в том числе 650 инженеров. „
                                                              Открываю вас же сайт: “350 инженеров, 1800 сотрудников».
                                                              Как так, где математика не сходится?

                                                              P.S. Личные впечатления о вашей продукции не очень…
                                                              • UFO just landed and posted this here
                                                                  0
                                                                  И как оно помещалось в 72 кб?

                                                                  Хм, на фото распечатки по папочкам разложены (я насчитал 17 штук). Если предположить, что весь код — это одна такая папочка, а остальное — это, например, предыдущие версии, распечатки тестовых прогонов, документация, или еще что-нибудь, то все должно поместиться.
                                                                    0
                                                                    там еще и комменты
                                                                  +3
                                                                  Ну что вы все про код, в самом деле? Вы лучше расскажите про те направления, где нужно разрабатывать уникальное железо, без которого автономный автомобиль не поедет. Например, про радиолокационные датчики на диапазон 77 ГГц и про то, сколько проблем приходится решать разработчикам антенных систем для этих датчиков. А проблем там, реально, очень много…
                                                                    +2
                                                                    Количество строк — это не показатель. Это может быть еще тот говнокод. А вот Ф-22 — это истребитель 5-го поколения.
                                                                      +3
                                                                      Полностью согласен. Количество строк кода — не предмет для гордости.
                                                                      Гордится нужно интересными разработками и людьми, что этими разработками занимаются.
                                                                        0

                                                                        Не то что летающая табуретка F-35 :]


                                                                        Без сарказма.

                                                                        +2
                                                                        Тут вспоминается история о том, как Тойота включила в прошивку мультимедиа-центра всем известный curl, в полном соответствии с лицензией упомянула автора, а потом недовольные водители стали бомбардировать Даниеля Стенберга просьбами помочь им настроить GPS или переключить язык на иврит.
                                                                        +1
                                                                        Смысл сравнивать число строк — если в современном автомобиле как и в современном боинге как и в F-35 они не людьми написаны. До конца 90-х когда автогенерации не было еще можно было вот так прямо сравнивать.

                                                                        По динамике можно сравнивать — число строк в среднем удваивается за 2 года.
                                                                          +4

                                                                          Из пруфа про фейсбук:


                                                                          Clarification: The new count includes the entire git repository: data, binaries, third-party and all.

                                                                          Ну так если считать — закинул npm в гит и каждый второй фронтендер над милионными по строкам проектами работает

                                                                            0
                                                                            Ой, это же ваши ЭБУ нынче в ладах стоят? Ну, которые с ошибками P0327, дёрганными переходными режимами и прочими радостями?
                                                                            Я знаю, что всё в деньгах, но всё же — зачем настолько всё печально?
                                                                              +4
                                                                              Дичь какая то из разряда «ваши волосы станут шелковистее на 146%».
                                                                              Что считается строкой, как учитываются циклы, почему за большое количество строк палками никого не побили, ведь чем меньше строк тем (скорее всего) программа более логична занимает меньше памяти и быстрей работает. с другой стороны если бы мне платили за количество строк кода я бы тоже каждый знак писал на отдельной строчке и циклы бы не использовал
                                                                                +1

                                                                                Согласен. Чем больше кода — тем больше багов. Баги нам не нужны. А нужны фичи. Вывод? При прочих равных очень круто отсекать от когда все лишнее и оставлять только нужное ) как скульптору.

                                                                                  0
                                                                                  Вы часом не родственник Маяковскому? =)
                                                                                    0
                                                                                    Никому не платят за строчки кода, поэтому эта метрика и работает. Правильно сказать, что строчек написанных на языке А будет больше, чем на языке Б и один программист пишет в 2-3 раза меньше строк, но эти числа не отличаются в разы в обычных проектах, на этом и основывается модель оценки стоимости проекта COCOMO, которая до сих пор является одной из самых точных.
                                                                                    +1
                                                                                    С таким количеством кода машине тормоза не нужны — пормозить будет ПО, простите за каламбур =)
                                                                                      +1

                                                                                      Я, наверное (скорее точно), очень плохой программист. Но на дилетантском уровне знаком с устройством автомобиля. Поэтому мои выводы от прочтения статьи, вкратце, таковы.


                                                                                      Количество строк кода — бредовая метрика. Рекомендую использовать ее только для сравнений "Apple versus Xiaomi", но только вне ресурсов для энтузиастов, т.е. вне Хабра.
                                                                                      Количество строк ASM кода — метрика, имеющая некоторый развлекательный смысл и уместна для околотехнического флуда на околотехнических ресурсах.
                                                                                      Современный автомобиль, в смысле его электроника, состоит из нескольких разрозненных (но связанных посредством CAN) модулей с контроллерами в единицы мегабайт флеша и сотни килобайт RAM. Чтобы запихнуть в них стопицот триллионов строк кода, необходимо создавать настолько чудовищный код, насколько я некомпетентен даже предположить. Естественно, что оптимизация кода истребителя или лунохода несопоставимо лучше, тогда как у автомобильных модулей на первом месте унификация и отсюда некоторая избыточность, при которой неиспользуемые в конкретном автомобиле функции программно отключаются при конфигурировании. Например, парктроники спереди и сзади поддерживаются в принципе и обслуживаются каким-то кодом, но если они не установлены, то будут программно отключены. Туда же круиз и тому подобное.
                                                                                      Единственное место в автомобиле, где реально много кода, это "магнитола" с условно-полноценной операционной системой, но хотя формально это верно является частью автомобиля, передергивание все же налицо.

                                                                                        0
                                                                                        Всё зависит от того, как считать.
                                                                                        Например, если взять медиаустройство автомобиля — то это уже весь Андроид плюс еще миллион — пять на всякие там приложения внутри… Добавим сюда еще код для разных компонентов, датчиков, AI, если есть, управления двигателем и тд. Вполне может быть меньше шатла. Но если выкинуть всё то, что автомобилю не надо для успешного передвижения по асфальту, то хорошо, если останется даже пятая часть от этого объема кода…

                                                                                        Only users with full accounts can post comments. Log in, please.