Щоб розширити точку Абхіджіта:
Підтримка застарілого коду: Мільйони кодів рядків надійно працюють роками, а бізнес-будинки не знаходять вагомих причин переписати його на немейнфреймові сервери.
На мій досвід, це досить велике питання для корпорацій, які вирішили керувати мейнфреймами (які, як правило, досить великі інвестиції). Один проект, з яким я брав участь, - це розслідування, щоб відповісти на запитання: які технології повинен вибрати клієнт (великий банк), щоб замінити мейнфрейми? Питання насправді було розбито на менші частини, зосереджуючись на ОС, БД, мовах (-ях) та рамках реалізації.
Навіть розглядаючи мову, ми зіткнулися з досить великою проблемою: за перерахуванням існуючої кодової бази, за оцінками, потрібно було б близько 5 років (без сильного розростання команд розвитку, що призвело б до власних проблем). Очевидно, це головна проблема з точки зору втраченої можливості витратити цей час на розробку іншого програмного забезпечення, але крім цього, важко вибрати технологію з урахуванням таких строків. Java чи .Net? У п'ятирічному періоді те, що вважається «хорошим кодом» в будь-якому з них, - це застарілі застарілі речі, основні версії яких виходять кожні пару років.
Якщо сидіти і роздумувати над цим, вид стабільності, який забезпечують мейнфрейми, поширюється і на фактичне середовище, все, як правило, змінюється повільно; що добре, якщо у вас є сто мільйонів рядків коду для підтримки.