Многие из вас работают в крупных компаниях, которые поставляют известное программное обеспечение. Мне было интересно, сколько оригинального кода (в основном, кода, который был выпуском "v1.0") осталось в современных массовых приложениях, таких как, скажем, Firefox, Photoshop, Windows, Linux и т. Д.? Я бы действительно предпочел опыт из первых рук и реальные истории войны.
Спасибо за удовлетворение моего любопытства.
РЕДАКТИРОВАТЬ
Оказывается, есть степень недопонимания. Что мне нужно, так это следующее: когда вы обвиняете / комментируете исходный код, есть ли какие-либо части или даже целые файлы нетронутыми с момента первого релиза 1.0.
source-code
history
Антон Гоголев
источник
источник
Ответы:
Больше, чем вы ожидаете, и намного старше, чем вы ожидаете. Даже при «полном переписывании» и больших рефакторингах многие модули остаются нетронутыми.
Петер предполагает, что, например, вы не найдете старый код Netscape в Firefox. Что не так, если вы будете искать по исходному коду, вы найдете довольно много файлов с таким отказом от ответственности, как:
Например, в заголовках ядра Linux вы можете найти такие вещи, как:
источник
Я не знаю, сколько, но старый код определенно есть, но постепенно удаляется. Например, в Windows 2008 или Vista перейдите в c: \ windows \ fonts с помощью проводника, щелкните правой кнопкой мыши на левой панели и выберите «установить новый шрифт». Отображаемое диалоговое окно - из окна 3.1 дня (проверьте скриншот). Если вы видите то же самое в Windows 7, то теперь это намного лучшая панель управления, такая как UI.
источник
Я не могу сказать, сколько лет код на работе. Я могу вернуться только к тому моменту, когда он был добавлен в Subversion, и многое из этого восходит к тому времени.
Однако у меня есть друг, который работал над кодом Microsoft Office. Несколько лет назад он сказал мне, что убрал с него несколько звонков SaveA5World. Этот призыв имел целью старые Macintoshes с процессорами M680? 0 и не имел смысла с тех пор, как Apple в начале 90-х перешла на Mac PowerPC.
По моим наблюдениям, любая мощная программная система, на которую опирается компания, была построена на технологии, которую никто больше не хочет использовать.
источник
«Если они с самого начала выполнили свою работу очень хорошо, большую часть, в противном случае небольшую часть».
Строгие языки показывают эту черту. В языках Никла Вирта мало что изменилось, потому что они были спланированы точно. (Это на самом деле изменилось в последнее время для Delphi, и изменится с новой версией универсального развертывания.)
Конечно, в этом есть и обратная сторона. Принятие решения о том, что исходный код достаточно хорош, например, в случае Microsoft Windows или прекрасных приложений, таких как ACDSee, текстовые редакторы или хорошо известные приложения командной строки «дух Linux».
Даже если эти приложения могут показаться неуклюжими тем, кто, возможно, вообще их не любил, они демонстрируют хорошо спланированную черту, а также четко определенный набор функций; даже если у них нет наворотов, это может быть предпочтительнее; они делают то, что на ладони, обратная совместимость великолепна, и, вероятно, продолжит хорошо функционировать в будущем.
Photoshop будет иметь 90% того же кода, начиная с 5.0, если вы будете использовать набор функций. ; P это делает? Нет почему? Продажа обновлений. Вы не можете сделать больше с этим сегодня.
Набор функций файлового менеджера, вплоть до того момента, когда он хочет использовать FTP, Интернет и облако, практически одинаков для любой платформы на протяжении десятилетий. Единственная причина, по которой такое приложение до сих пор не достигло уровня 1.0, связана с плохим планированием, прихотью, необходимостью обновления - и хотя бы в небольшой степени изменением мира вокруг приложения.
Ответ заключается в том, что некоторые гемы остаются на уровне 1.0 или 1.0.x, потому что разработчик выбрал набор функций, завершил программу без ошибок и либо не получает прибыли от бесконечного добавления материала и исправления ошибок в добавленном материале, либо переехал на развивать больше драгоценных камней.
Все остальное вряд ли останется где-то рядом с кодом в 1.0. И почему бы вам не переписать приложение, если у вас есть отличная идея? Вы должны, это весело, чтобы код! :) За исключением того, что произошло во многих современных программных продуктах. Изменения ради изменений (продажи), не мотивированные набором функций, и, в меньшей степени, обновления для соответствия меняющимся платформам, - это самый важный момент.
И в этом супе взаимодействующих частей постоянно обновляемого программного обеспечения немногие кодовые базы избегают пересмотров. Некоторые все еще придерживаются мечты о фондах и модульности (и не выпускают преждевременно), но подавляющее большинство застряло в цикле релиз-исправление-обновление.
источник
Даже якобы «передовые» системы, используемые для игр, такие как iD Tech и Unreal, все равно содержали бы значительный код 1.0.
источник