hitech: (computer)
hitech ([personal profile] hitech) wrote2015-04-20 07:19 pm
Entry tags:

Записки на полях.

— Девушки, ещё раз напоминаю: не надо спрашивать у клиента, что у него стоит, надо спрашивать «Какое программное обеспечение у Вас установлено?»
Инструктаж в телефонном центре техподдержки.

Смотрю презентацию продукта, в разработке которого мне придётся участвовать. В презентации попались интересные сведения:

  • Авионика самолёта F-22 Raptor содержит 1,7 миллионов строк кода. А F-35 Joint Strike Fighter — почти 10 миллионов строк кода. Это примерно размер операционной системы из тех, что попроще, — какой-нибудь FreeBSD или Windows NT.
  • Обычный кардиоводитель содержит программу размером в 80 тысяч строк кода. Я-то думал, что там вообще программы нет, голая электроника с кварцевым осциллятором. Оказывается, есть. «Скачай себе в кардиоводитель прикольный рингтон!..»
  • В любом современном автомобиле около 100 миллионов строк кода. Для сравнения, в Windows XP было всего 45 миллионов строк кода.
    Двумя пунктами выше я говорил про самолёты. Может создаться впечатление, что в самолёте в 10 раз меньше программ, чем в автомобиле. Это превратное впечатление. Выше речь идёт только об авионике, то есть только о бортовом радиоэлектронном оборудовании. Есть ещё системы вооружения, которые являются совершенно отдельным шедевром программирования (по нажатию кнопки «Огонь» система сама выбирает тип вооружения, осуществляет прицеливание, наведение, выстрел и сопровождение цели с активным противодействием её защитным манёврам вплоть до поражения цели). А есть ещё системы индикации и управления в шлеме пилота, это ещё один совершенно независимый аппаратно-программный комплекс, который тоже является шедевром. Фактически, авионика — это лишь малая часть того, что есть в самолёте.
  • В тяжёлой индустрии 90% всех инноваций последних лет — результат обновлений программного обеспечения. В медицине и в медицинских устройствах 70% прогресса — следствие изменений программного обеспечения.

Просто удивительно, насколько глубоко проникли программы в нашу жизнь. Кардиоводители с компьютером внутри! Автомобили, в которых столько же кода, сколько в двух операционных системах, — в каждом автомобиле!

Чтобы написать операционную систему уровня Windows XP с нуля, нужно пять-семь лет работы группы из нескольких сотен весьма мощных специалистов. За те же пять лет механическую часть автомобиля создаёт с нуля группа из двух-трёх десятков дизайнеров, механиков и техников. Получается, что доля труда программистов в современном автомобиле в десяток раз выше, чем доля труда всех остальных. (И это на самом деле так — в той же презентации говорилось, что в современной тяжёлой промышленности количество всех железячников как минимум впятеро меньше числа программистов).

Это удивительный вывод. Получается, что автомобиль ездит не столько потому, что кто-то придал куску металла форму корпуса, поставил внутрь двигатель, приделал к нему колёса и сиденья, а в большей степени потому, что кто-то сидел и дённо и нощно колотил по клавишам.

Получается, что автомобиль, как минимум по трудозатратам, — это на девять десятых программный продукт. Девять десятых от машины — результат работы таких психов, как я. И только одна десятая — железо, пластик и стекло, которые возят наши тушки. Получается, что правильнее представлять себе автомобиль не в виде железяки, в которой где-то внутри спрятан маловажный компьютер, занимающийся своим малопонятным делом, а в виде мощного компьютера (если быть точным — сети из около пяти десятков компьютеров), которые выполняют львиную долю работы, и которые подают сигналы на всякие маловажные детальки типа колёс и руля…

Это же в корне меняет всё мировоззрение! Я думал, что мы ездим на железе. А оказывается, мы ездим прежде всего на программах, а железо — это так, ерунда, мелкое периферийное устройство.

А ведь я ещё помню время, когда самой сложной электронной деталью в автомобиле была радиола…

[identity profile] pro-bolotce.livejournal.com 2015-04-20 04:47 pm (UTC)(link)

Ничего не понимаю, я гуманитарий

[identity profile] ahitech.livejournal.com 2015-04-20 08:58 pm (UTC)(link)
Вот тут для гуманитариев рассказал поподробнее.

[identity profile] eednew.livejournal.com 2015-04-20 05:49 pm (UTC)(link)
Причём в инновационных обеспечениях обязательно есть закладки.

[identity profile] ahitech.livejournal.com 2015-04-20 08:57 pm (UTC)(link)
Обычно — нет. Я совершенно точно это знаю, я работал в нескольких фирмах и в нескольких проектах, и видел исходный код целой кучи продуктов. С закладками не сталкивался ни разу. Были симуляции исправленных багов для особо крутых клиентов, типа как в Windows 2000 симулировался баг, которым пользовался дебаггер Borland, но именно закладок — не видел.

[identity profile] eednew.livejournal.com 2015-04-21 03:44 am (UTC)(link)
Люди зачастую сталкиваются в станках. Впрочем, сейчас, когда обычно есть дистанционное управление, можно и через него.

[identity profile] outputlogic.livejournal.com 2015-04-20 07:30 pm (UTC)(link)
Так в чем фишка? Это новый продукт обещает заметно уменьшить количество строчек кода. Или заранее предупреждает что там будет всё намного хуже, чтобы программисты не пугались.

[identity profile] ahitech.livejournal.com 2015-04-20 08:59 pm (UTC)(link)
Это Lifecycle Management Solution. Строчек кода будет столько же, но в них будет проще ориентироваться.

[identity profile] g-nick-kate.livejournal.com 2015-04-20 08:12 pm (UTC)(link)
Как все сложно) То есть мне, человеку, которого ставит в тупик фраза "вставьте строку в код страницы", приходится чувствовать себя буквально безграмотной.

[identity profile] ahitech.livejournal.com 2015-04-20 09:07 pm (UTC)(link)
Я вот тут пояснил для гуманитариев :)

[identity profile] izard.livejournal.com 2015-04-20 08:18 pm (UTC)(link)
По последнему абзацу.. Beckhoff лет 5 назад любили пример, что в результатае апгрейда софта линии по производству пластиковых бутылок, пластика стало уходить на треть меньше. Причем в апгрейде не было новой функциональности - только оптимизация софта.

[identity profile] ahitech.livejournal.com 2015-04-20 09:00 pm (UTC)(link)
Да, я сегодня в лекции видел пример, как оптимизация кода улучшила конечный результат на 97% :) Но детали про этот пример выкладывать не могу, — NDA.

[identity profile] river-ems.livejournal.com 2015-04-20 08:25 pm (UTC)(link)
Мало что поняла, но звучит как выдача гос. секретов :))

[identity profile] ahitech.livejournal.com 2015-04-20 08:39 pm (UTC)(link)
Нет, это не секретные сведения :) Просто удивительно, насколько глубоко проникли программы в нашу жизнь. Кардиоводители с компьютером внутри! Автомобили, в которых столько же кода, сколько в двух операционных системах, — в каждом автомобиле!

Чтобы написать операционную систему уровня Windows XP с нуля, нужно пять-семь лет работы группы из нескольких сотен весьма мощных специалистов. За те же пять лет механическую часть автомобиля создаёт с нуля группа из двух-трёх десятков дизайнеров, механиков и техников. Получается, что доля труда программистов в современном автомобиле в десяток раз выше, чем доля труда всех остальных. (И это на самом деле так — в той же презентации говорилось, что в современной тяжёлой промышленности количество всех железячников как минимум впятеро меньше числа программистов).

Это удивительный вывод. Получается, что автомобиль ездит не столько потому, что кто-то придал куску металла форму корпуса, поставил внутрь двигатель, приделал к нему колёса и сиденья, а в большей степени потому, что кто-то сидел и дённо и нощно колотил по клавишам.

Получается, что автомобиль, как минимум по трудозатратам, — это на девять десятых программный продукт. Девять десятых от машины — результат работы таких психов, как я. И только одна десятая — железо, пластик и стекло, которые возят наши тушки. Получается, что правильнее представлять себе автомобиль не в виде железяки, в которой где-то внутри спрятан маловажный компьютер, занимающийся своим малопонятным делом, а в виде мощного компьютера (если быть точным — сети из около пяти десятков компьютеров), которые выполняют львиную долю работы, и которые подают сигналы на всякие маловажные детальки типа колёс и руля...

Это же в корне меняет всё мировоззрение! Я думал, что мы ездим на железе. А оказывается, мы ездим прежде всего на программах, а железо — это так, ерунда, мелкое периферийное устройство.

А ведь я ещё помню время, когда самой сложной электронной деталью в автомобиле была радиола.
Edited 2015-04-20 21:16 (UTC)

[identity profile] jensana.livejournal.com 2015-04-21 04:37 am (UTC)(link)

Ого. Интересные наблюдения!

[identity profile] ahitech.livejournal.com 2015-04-21 06:42 am (UTC)(link)
Вот и я так подумал.

[identity profile] jensana.livejournal.com 2015-04-21 07:56 am (UTC)(link)
А чем именно ты в программировании занимаешься? Просто любопытно.

[identity profile] ahitech.livejournal.com 2015-04-21 09:00 pm (UTC)(link)
Я занимаюсь программированием с 2002 года, ещё когда был зелёным студентом (меня взяли в IBM после первого семестра учёбы). С тех пор участвовал в семи крупных проектах. Из самого значительного:

* Дисковые сервера. Это такая штука размером с холодильник и весом в тонну. На ней хранится дофига данных (скажем, вся информация разветвлённой сети магазинов типа IKEA: каталог продукции, склады, поставщики, транспортировка, точки продажи, баланс, кадры, оптовые и мелкооптовые покупатели и всё остальное).

Там я делал функцию перманентного копирования. Смысл в том, что если по какой-то причине основной сервер сдох (электричество кончилось, или метеорит упал, или злые террористы экскаватором кабель перерубили), все-все-все программы в мире сразу автоматически начнут работать с запасным сервером, который расположен так, чтобы его-то уж точно не накрыло, - скажем, на другом континенте. Но чтобы не потерять данные, информация на серверах должна быть идеально синхронизирована. Всё, что есть на основном сервере, должно быть и на запасном, и неважно, какова нагрузка на основной сервер. Технически такую идеальную синхронизацию очень сложно гарантировать.

* Я разрабатывал анализатор данных, которыми обменивается компьютер с внешним миром. Очень быстрая программа, которая проверяет всю информацию, входящую в компьютер и покидающую его. Вся информация проверяется на наличие угроз безопасности, и если есть угроза, информация блокируется. В результате мы можем остановить атаку на компьютер пользователя и защитить его. Этот проект вошёл в Microsoft Security Essentials, Windows Defender и в несколько других защитных программ. Если у тебя Windows Vista или более новый, то наше с тобой общение проходит через написанную мной программу как минимум дважды: при переходе между твоим компьютером и Интернетом и при переходе между Интернетом и моим компьютером (у меня Windows 8).

Ещё немного я рассказывал об этом проекте тут. :)

* Последний проект — разработка системы графического дизайна. В ней создают самолёты, автомобили, сотовые телефоны, конструкторы Lego и тысячи других вещей. Я помогал выпустить три новых версии этой программы. Я сейчас езжу на автомобиле, каждая деталь которого до последнего болтика была нарисована в программе, которую я писал. Дизайн последнего подаренного мной Шеле украшения тоже был создан в ней, (я, пользуясь служебным положением, видел эскизы).
Edited 2015-04-21 21:01 (UTC)

[identity profile] jensana.livejournal.com 2015-04-22 04:36 am (UTC)(link)
Очень круто. И интересно. У меня windows 7, 8-ку мой ноут не потянет.
У меня парень сейчас хочет попробовать себя в программировании - точнее сначала верстке и php. Хочет попасть на стажировку в местную компанию. А я за него волнуюсь.
Уже же не студент, чтобы начинать.

[identity profile] ahitech.livejournal.com 2015-04-22 07:15 am (UTC)(link)
У 8-ки требования такие же, как у 7-ки, и на том же железе она немножко быстрее. Но в июле выходит Windows 10 с такими же требованиями, так что можешь уже подождать...

PHP и вёрстка - это не программирование :) Точнее, это веб-программирование, которое к настоящему программированию имеет весьма далёкое отношение. Я вот здесь объяснял разницу. Настоящее программирование кончается на прикладниках. Веб-программирование оплачивается хуже, чем прикладное, и конкуренция в нём выше.
Edited 2015-04-22 07:16 (UTC)

[identity profile] jensana.livejournal.com 2015-04-22 07:18 am (UTC)(link)
Угу, я уже тоже поняла, что немного не то ляпнула)
Но он вот сначала здесь хочет попытаться. Будем надеяться. Пусть учится)

А 8, 10 мне ни к чему) Я на ноуте использую ворд и интернет))) Хотя вроде бы 7-ку уже перестали поддерживать. Может, и придется.

[identity profile] ahitech.livejournal.com 2015-04-22 07:20 am (UTC)(link)
А насчёт "уже не студент" - это совсем неважно. Начинать можно в любом возрасте, было бы желание. Мой начальник учил физику, получил магистра наук, а в 40 его переклинило, и он стал крутейшим программистом. Мой предыдущий начальник, человек, который изобрёл и запатентовал BitLocker, был военным пилотом армии США и в 1991-м бомбил Ирак. Подписал контракт, отслужил его, и только потом пошёл в программирование. Начинать можно в любом возрасте, никаких пределов нет.

[identity profile] jensana.livejournal.com 2015-04-22 07:35 am (UTC)(link)
Твои рассказы внушают надежду.
На самом деле он не глуп, думаю, у него может получиться. Только потребуется некоторое время.

Плохо, когда поздно определяешься с тем, в какую сторону двигаться и развиваться. Я вот тоже зачем-то технический ВУЗ окончила - хотя чувствовала, что это не мое.

[identity profile] ahitech.livejournal.com 2015-04-22 07:53 am (UTC)(link)
Технический вуз хорош тем, что прививает методику для самостоятельного обучения. После технического вуза можно спокойно учить хоть философию, хоть театральное искусство.

[identity profile] jensana.livejournal.com 2015-04-22 07:58 am (UTC)(link)
Это да.
Думаю, моя любовь к четкому плану, привычка составлять план главы именно отсюда)

[identity profile] incopolis.livejournal.com 2015-04-21 01:30 pm (UTC)(link)
Ничего, в мире еще остались "механические" автомобили, без компьютерного блока управления.

[identity profile] ahitech.livejournal.com 2015-04-21 03:09 pm (UTC)(link)
Да, пока ещё остались. Слава Богу, скоро они рассыпятся от старости. Даже в индийских микромобильчиках теперь есть компьютерные блоки управления.

[identity profile] parocsimal.livejournal.com 2015-05-15 05:54 am (UTC)(link)
Только меня волнует, что когда-нибудь мой автомобильчик меня не послушается и поедет туда, куда сам захочет?

[identity profile] ahitech.livejournal.com 2015-05-15 02:58 pm (UTC)(link)
Значит, ему туда нужнее! :)

[identity profile] parocsimal.livejournal.com 2015-05-15 08:09 pm (UTC)(link)
Даже не возразишь, что я главнее. Потому что не факт.)

[identity profile] ahitech.livejournal.com 2015-05-15 11:16 pm (UTC)(link)
Всё верно. :)