Скільки оригінального коду залишилось у сучасних програмних продуктах? [зачинено]


32

Багато хто з вас працюють у великих компаніях, які постачають відоме програмне забезпечення. Мені було цікаво, скільки оригінального коду (в основному, коду, який був випуском "v1.0") залишилося в сучасних масових додатках, таких як, скажімо, Firefox, Photoshop, Windows, Linux тощо? Я дійсно віддав перевагу досвіду з перших рук та історіям війни.

Дякую, що задовольнили мою цікавість.

EDIT

Виявляється, є ступінь непорозуміння. Я в основному виглядаю так: коли ви звинувачуєте / коментуєте вихідний код, чи є якісь частини або навіть цілі файли недоторканими з початкового випуску 1.0.


37
По гори тече річка. Вода випаровується і занурюється в землю. Нова вода надходить з інших потоків. Коли річка доходить до моря, це та сама річка? Як ви можете сказати? Що робити, якщо жодна молекула ніколи не здійснить всю подорож від вершини гори до моря? Якщо жодна молекула не однакова, то як можна сказати, що це одна і та ж річка? І як це питання є більш значущим, ніж німа історія про річку?
С.Лотт

4
Питання починається нормально, але ця фраза "Я справді віддаю перевагу досвіду з перших рук та історіям війни". просто запрошує список відповідей, в якому говориться "у нас все ще є X% початкового коду", де X варіюється від 0 до 100.
ChrisF

10
@Anton Gogolev: Справа в цьому. Навіщо питати? Мій досвід у реальному світі включає два продукти, на 80% те саме, що 1,0 та 0% на 1,0. Це мій досвід. Що ти тепер знаєш, що раніше не знав? Яка у вас проблема вирішена? Як вам це допомагає?
С.Лотт

4
@ S.Lott Я тут втрачаю… Цікавість? Хіба не захоплююче знати, що ця система Windows 7 Ultimate, яку деякі з нас працюють, все ще має код, що датується Windows 3.1?
Антон Гоголєв,

6
@Anton Gogolev: "Цікавість?" Вибачте, це мало сенсу для мене. Якщо відповідь була 17%, що тоді? Що випливає з цього спостереження?
С.Лотт

Відповіді:


36

Більше, ніж ви очікували, і набагато старше, ніж ви очікували. Навіть із "загальним переписуванням" та великими рефакторами є багато модулів, які залишаються недоторканими.

Петер припускає, що, наприклад, у Firefox ви не знайдете старого коду Netscape. Що неправильно, якщо шукати вихідний код, ви знайдете досить багато файлів із відмовою від відповідальності, як-от:

* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1994-2000 

Наприклад, у заголовках ядра Linux ви можете знайти такі речі, як:

include/linux/if_ppp.h: * Copyright (c) 1989 Carnegie Mellon University.
include/linux/quota.h: * Copyright (c) 1982, 1986 Regents of the University of California. 
include/linux/coda.h:          Copyright (c) 1987-1999 Carnegie Mellon University
include/linux/mc146818rtc.h: * derived from Data Sheet, Copyright Motorola 1984 (!).
include/net/slhc_vj.h: * Copyright (c) 1989 Regents of the University of California.

1
Firefox сповнений десятирічного коду, серйозно.
kizzx2

1
Гей, це все ще працює (напевно)
Callum Rogers

1
@Callum Rogers: Це працює, але не добре, і це повільно ... Прикро, як Firefox впав так.
Анто

2
MPL вимагає, щоб додати річ "Первинний розробник", але це не означає, що цей файл останній час торкався. Firefox має багато старого коду, але не, якщо він повільний - код, який досить повільний, щоб хтось помітив, переписується.
Пол Біґгар

3
@ kizzx2 код не іржавіє ..

27

Я не знаю, скільки старого коду, безумовно, є, але повільно видаляється. Наприклад, у Windows 2008 або Vista перейдіть до c: \ windows \ fonts за допомогою Explorer, клацніть правою кнопкою миші ліву панель і виберіть "встановити новий шрифт". Діалогове вікно, яке відображається, знаходиться в Windows 3,1 дня (перевірте скріншот). Якщо ви бачите те саме в Windows 7, тепер це набагато краща панель управління, як UI.

Встановити діалогове вікно "Нові шрифти"


+100 Я фактично знайшов це кілька років тому
Ніколай Рейслінг

Так, це ... msoOldStyleDialog (?) Все в порядку, все ще підтримується для застарілих програм, які закінчуються і тому залишилися на рівні 1.0.x. Як простий перемикач файлів. Хоча в цьому випадку це лише питання діалогу, який вони пропустили під час капітального ремонту GUI.
Генрік Ерландссон

6

Я не можу сказати, скільки років коду на роботі. Я можу повернутися до того, коли він був введений в Subversion, і є багато, що датується так далеко.

Однак у мене є друг, який працював над кодом Microsoft Office. Кілька років тому він сказав мені, що видалив з нього кілька дзвінків SaveA5World. Цей виклик мав призначення для старих Macintoshes з процесорами M680? 0, і не виконував мети, оскільки Apple перейшла до PowerPC Macs на початку 90-х.

На моє спостереження, будь-яка потужна програмна система, на яку покладається компанія, була побудована за технологіями, яку ніхто більше не хоче використовувати.


2

"Якщо вони з самого початку зробили свою роботу надзвичайно добре, велика частина, інакше мала частина".

Суворі мови відображають цю ознаку. Дуже мало довелося змінити мови Ніклауса Вірта, оскільки вони були заплановані з точністю. (Це фактично змінилося останнім часом для Delphi, і більше зміниться з майбутньою універсальною версією розгортання.)

Звичайно, тут є і зворотний бік. Вирішуючи, що оригінальний код достатньо хороший, як, наприклад, у випадку Microsoft Windows, або прекрасні додатки, такі як ACDSee, текстові редактори чи добре відомий додаток командного рядка "дух Linux".

Незважаючи на те, що ці програми можуть здаватися незграбними для тих, хто, можливо, не любив їх в першу чергу, вони показують добре сплановану рису, а також чітко визначений набір функцій; навіть якщо у них немає дзвіночків, це може бути переважніше; вони роблять те, що є в олово, зворотна сумісність є чудовою, і, ймовірно, надалі буде добре працювати.

Photoshop мав би на 90% той самий код з 5.0, якби ви йшли за допомогою набору функцій. ; P Це робить? Ні, чому? Продаж оновлень. Сьогодні ти не можеш зробити більше з цим.

Набір функцій файлового менеджера, аж до того, коли він хоче робити FTP, Інтернет та хмару, значною мірою однаковий для будь-якої платформи деценнії. Єдина причина, що така програма все ще не на рівні 1,0, пов’язана з поганим плануванням, примхами, прагненням оновити - і в незначній мірі змінити світ навколо програми.

Відповідь полягає в тому, що деякі дорогоцінні камені залишаються на рівні 1.0 або 1.0.x, оскільки розробник визначився з набором функцій, виконав програму без помилок і або не отримує прибутку від нескінченного додавання матеріалів та виправлення помилок у доданих матеріалах, або перемістився на розробці більше дорогоцінних каменів.

Все інше навряд чи залишиться десь біля коду в 1.0. І чому б вам не переписати додаток, якщо у вас ідеальна ідея? Ви повинні, це цікаво кодувати! :) За винятком того, що мало місце в багатьох сучасних програмних продуктах. Зміни заради змін (продажів), а не мотивованих набором функцій, а меншою мірою оновленням, щоб відповідати змінам платформ, - це порядок дня.

І в цій супі взаємодіючих фрагментів програмного забезпечення, що постійно оновлюється, кілька кодових баз уникають змін. Деякі досі продовжують мріяти про основи та модулювання (і не випускати передчасно), але переважна більшість застрягла в циклі випуску-виправлення-оновлення.


-2

Навіть нібито «передові» системи, що використовуються для ігор, як iD Tech та Unreal, все одно матимуть в собі неабиякий код 1,0.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.