Так ведь способность меняться в той или иной степени есть у всех. А если она примерно равна у разных технологий — отбор идет по другим преимуществам и недостаткам. А вообще — я и не утверждаю, что параллель в естественных отборах по Дарвину и в ИТ на 100% точна, — лишь в некоторой степени.
Думаю — не на 100%, но достаточно правомерно. Ведь в природе случаются извержения вулканов, наводнения, пожары — это можно считать резкими и непредсказуемыми изменениями. Вот случился Ледниковый период — и некоторые виды вымерли прежде чем успели приспособиться.
С нуля втиснуться в незанятую нишу, конечно, очень сложно. Но давайте посмотрим на войну браузеров — еще недавно про Хром никто не слышал, и вот он уже теснит тех кто когда-то был приспособлен.
Переписать софт — не значит сменить технологии. Можно перекомпилировать код по другую платформу или написать то же самое на более современном языке. А вот если технология несовместима с новыми веяниями времени — тогда уже переписью не обойдешься…
Естественно, на отбор софта действует еще и фактор востребованности. Возможно, для функциональных языков окружающая среда сейчас в благоприятной фазе.
А C++ очень гибок сам по себе, насколько помню.
Язык — это в данном случае не технология, а то чем описывают технологию. И если язык гибкий и не зависит от железа и платформы — он выживет.
Возможно, прикручивать половой отбор к ИТ — это уже слишком…
По поводу сочетания экосистем — гены, кстати, тоже группами в ДНК держатся. И обычно конкуренция идет именно между группами генов (в нашем случае — между удачными сочетаниями технологий)
Да в том-то и дело, что далеко не для каждого кода можно вообще нормальные тесты создать. А если у вас самодостаточный «черный ящик» который удобно тестировать — тогда да, всё равно как оно там внутри устроено
Независимо от того, что раньше родилось — тест или код — впоследствии они идут взаимосвязанной парой, изменяя одно приходится менять другое. А правило «сперва тесты, потом код» я для себя переформулировал в «сперва думать, потом делать».
Инвестор вкладывает средства в перспективные технологии, тем самым увеличивая их (генов) шансы на выживание.
По-моему — не всегда. Если Заказчик — это посредник, то у него обычно преобладает материальный интерес.
Переписать софт — не значит сменить технологии. Можно перекомпилировать код по другую платформу или написать то же самое на более современном языке. А вот если технология несовместима с новыми веяниями времени — тогда уже переписью не обойдешься…
А C++ очень гибок сам по себе, насколько помню.
Язык — это в данном случае не технология, а то чем описывают технологию. И если язык гибкий и не зависит от железа и платформы — он выживет.
По поводу сочетания экосистем — гены, кстати, тоже группами в ДНК держатся. И обычно конкуренция идет именно между группами генов (в нашем случае — между удачными сочетаниями технологий)
Впрочем, пост не об этом, а о косвенной пользе потуг поддержки покрытия кода юнит-тестами.