Comments 86
А сколько строк кода в движке Хабра?
Сколько строк текста всего написано на Хабре в виде постов?
Один из комментариев:
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 у меня есть сомнения.
Если они посчитали к автомобилю все строки того, что там крутится в мультимедиа на андроиде, то это ни о чём сравнение. Тогда уж и строки кода на стороне всяких серверов, которые это обслуживают, можно плюсовать. Интересно сколько кода именно участвуют в непосредственном управлении в реальном времени.
Если вам интересно именно непосредственно управление (именно функциональный минимум без которого задача не решается) — смело это все на 20 делите…
или у Jeep потрясающе дешевые программисты.
или крайне неэффективный код, написаный copy-paste
или Jeep не делает современных автомобилей
или у них весь код куплен и общий для всей автоиндустрии
или статиситка в статье — брехня.
Склоняюсь к последнему.
А статья 2007 года Манфреда Броя "Engineering Automotive Software". — из рецензируемого журнала.
Ну не может быть в авто столько кода.Есть мысль, что дело во множественном заимствовании. Код для нового авто не пишут с нуля, как это возможно делали для Шаттла, Хаббла или F-35, всё таки каждый из этих проектов уникален настолько, что заимствовать можно что-то фундаментальное, да и то, с большой осторожностью. А автомобилей много, код постоянно заимствуется, и наверняка обрастает разного рода #ifdef CAR_MODEL. Т.е. например, модуль управления круиз-контролем написан так, что поддерживается вообще весь модельный ряд, надо только дефайном при сборке выбрать модель авто. Но это не точно.
после — сотни мегабайт или гигабайт.
Быстродействие тоже катастрофически падает (а это не та задача где допустимо кадр просчитывать часами и днями).
Одна из причин — нельзя использовать указатели, но константы нельзя передать через стек т.к. его не десятки мегабайт. В итоге все весовые коэффициенты захардкожены в тексте программы, да да все десятки миллионов того же resnet50.
Другой пример — нельзя передавать функцию по указателю, в итоге всё обрастает копиями одного и того же кода с разными параметрами, для 3х3 ядра по 27 каналов, для 7х7 ядра по три канала и тд и тп.
И всё из за невнимательного чтения стандарта в котором сказано что в именно таких исключительных случаях не обязательно соблюдать. Стандарт то хороший, но компании не хотят из за возможных юр проблем и на фоне «растерзания Тойоты» как это называют японцы вообще не хотят чтоб были любые предупреждения или даже hint и рекомендации ЛЮБОГО стат анализатора.
habr.com/ru/company/itelma/blog/475448/#comment_20880038
да именно на стыке юристов, социума и варнингов анализаторов к стандарту они боятся последствий. А оптимизировать по быстродействию как-то надо даже если стандарт под это не заточен вообще.
Я считаю что это ещё один способ экономической войны — MISRA-C как способ не пускать никого в юр поле в стык индустриальной имплементации ML.
Представьте себе, что где-то в середине такого кода находят критичный баг. Как его править?
либо ошибок мало, потому, что программисты талантливые
либо ошибки не правят и машины едут забагованные
либо число строк в статье брехня.
Я опять склоняюсь к последнему.
Что-то из разряда «сделали систему распознавания знаков — посчитали строчки кода всей OpenCV».
Подозреваю, что больше половины — просто код одной или нескольких OS
софт изолирован и работает на сотне разных контроллеров, но использует одни и те же стандартные библиотеки. Если несколько стандартных библиотек умножить на кол-во контроллеров то так и получится много строк.
ЗЫ: Пока писал, комментариев к статье еще не было. Опоздал.
На флоте тоже мерятся «водоизмещением», хотя этот параметр ой какой кривой.
Я отлично понимаю, что и в пару килобайт можно впихнуть то, что индус на гигабайт не сделает.
Водитель ритма сердца
Эмм..?
и для справки указать в какой размер файла они транслируются :)
Игра "посадка на Луну" для МК-61 80 строк :)
http://monatkodenis.blogspot.com/2014/01/blog-post.html?m=1
Расскажите-ка, как это в Windows XP Service Pack 1 кода меньше, чем в NT4?
Учитывая, что каждый сервис пак 100% собирается из того же дерева исходных кодов, что и основная операционная система ??? Инфа 100ка
Про микобактерий тоже интересно. Весь днк можно одной очень длинной строчкой закодировать. А можно каждую пару на отдельной строке. Сравнение интересное, но явно некорректное — как сравнивать яблоки и апельсины
Но в принципе да… считать строчками код… вот ведь бред. Банальное Си-шное (для Паскаль/Дельфи — «begin») переносить открывающую фигурную скобку на новую строчку или нет весьма меняет их количество.
Когда было (случайно) обнаружено проникновение во внутреннюю сеть MS и за злоумышленником наблюдали в течение месяца (впрочем, тщетно), комиссия в составе АНБ, ФБР и прочих заинтересованных ведомств сделала вывод, что в исходные коды готовящейся к выпуску новейшей ОС Windows 7 скорее всего не было внесено изменений. Потому как необозримы.
Количество строк кода в современном автомобиле..в сферическом автомобиле в вакууме. Лада — современный автомобиль? Сколько в нем кода? А в китайском Geely? Очень желтый заголовок.
имхо, такой подход ничуть не хуже, чем пруфы с кворы, не указано сколько символов в строках.
П.С.: А если на одном компе поднять виртуалку, то кода получится в 2 раза больше :)
Открываю вас же сайт: “350 инженеров, 1800 сотрудников».
Как так, где математика не сходится?
P.S. Личные впечатления о вашей продукции не очень…
И как оно помещалось в 72 кб?
Хм, на фото распечатки по папочкам разложены (я насчитал 17 штук). Если предположить, что весь код — это одна такая папочка, а остальное — это, например, предыдущие версии, распечатки тестовых прогонов, документация, или еще что-нибудь, то все должно поместиться.
По динамике можно сравнивать — число строк в среднем удваивается за 2 года.
Из пруфа про фейсбук:
Clarification: The new count includes the entire git repository: data, binaries, third-party and all.
Ну так если считать — закинул npm в гит и каждый второй фронтендер над милионными по строкам проектами работает
Я знаю, что всё в деньгах, но всё же — зачем настолько всё печально?
Что считается строкой, как учитываются циклы, почему за большое количество строк палками никого не побили, ведь чем меньше строк тем (скорее всего) программа более логична занимает меньше памяти и быстрей работает. с другой стороны если бы мне платили за количество строк кода я бы тоже каждый знак писал на отдельной строчке и циклы бы не использовал
Согласен. Чем больше кода — тем больше багов. Баги нам не нужны. А нужны фичи. Вывод? При прочих равных очень круто отсекать от когда все лишнее и оставлять только нужное ) как скульптору.
Я, наверное (скорее точно), очень плохой программист. Но на дилетантском уровне знаком с устройством автомобиля. Поэтому мои выводы от прочтения статьи, вкратце, таковы.
Количество строк кода — бредовая метрика. Рекомендую использовать ее только для сравнений "Apple versus Xiaomi", но только вне ресурсов для энтузиастов, т.е. вне Хабра.
Количество строк ASM кода — метрика, имеющая некоторый развлекательный смысл и уместна для околотехнического флуда на околотехнических ресурсах.
Современный автомобиль, в смысле его электроника, состоит из нескольких разрозненных (но связанных посредством CAN) модулей с контроллерами в единицы мегабайт флеша и сотни килобайт RAM. Чтобы запихнуть в них стопицот триллионов строк кода, необходимо создавать настолько чудовищный код, насколько я некомпетентен даже предположить. Естественно, что оптимизация кода истребителя или лунохода несопоставимо лучше, тогда как у автомобильных модулей на первом месте унификация и отсюда некоторая избыточность, при которой неиспользуемые в конкретном автомобиле функции программно отключаются при конфигурировании. Например, парктроники спереди и сзади поддерживаются в принципе и обслуживаются каким-то кодом, но если они не установлены, то будут программно отключены. Туда же круиз и тому подобное.
Единственное место в автомобиле, где реально много кода, это "магнитола" с условно-полноценной операционной системой, но хотя формально это верно является частью автомобиля, передергивание все же налицо.
Например, если взять медиаустройство автомобиля — то это уже весь Андроид плюс еще миллион — пять на всякие там приложения внутри… Добавим сюда еще код для разных компонентов, датчиков, AI, если есть, управления двигателем и тд. Вполне может быть меньше шатла. Но если выкинуть всё то, что автомобилю не надо для успешного передвижения по асфальту, то хорошо, если останется даже пятая часть от этого объема кода…
Как посчитать асмовскую строку вида mov al,15h это понятно.
А вот как следут считать строку на бейсике, ну чонить типа банального input f, который интерпретируется в стопицот машинных операций, причём интерпретируется интерпретатором (ну или компилируется компилятором и компонуется линкером) который содержит ещё миллион строк кода.
Или вот ещё — строку на яве например как считать?
Или… ну вы же уже меня поняли, да?
В общем, информация как бы это сказать — ни о чём совершенно. Не в строках кода надо считать сложность программмных продуктов. А уж аппаратно-программных так и тем более.
В современном автомобиле строк кода больше чем…