Здравствуйте, eao197, Вы писали:
E>Или это вообще сейчас тенденция такая в софтостроении -- ничего стабильного нет, поскольку оплачивается скорость выхода продукта на рынок, а не его качество?
Эта тенденция была всегда. Объясняю на пальцах.
Есть программа с двумя элементами. Между ними одна связь. X — Y
Усложним программу, добавив ещё один элемент. Между ними уже будет 3 связи
X — Y
\ /
Z
Добавим ещё один элмемент, ещё один... Количество связей в программе растёт факториально!
При изменении каждого элемента тебе надо проверить все связи, любая может быть нарушена и программа получит ошибку.
Борьба с этой возрастающей сложностью — и есть основная проблема программирования. Именно для её решения выдумывают модульное, объектное программирование и прочие технологии. Они помогают уменьшить скорость роста взаимосвязей, инкапсулируют работу отдельных частей, уменьшают количество взаимосвязей. Но эти приёмы не всесильны. Вместо количества связей между глобальными переменными и функциями — появляются связи между классами. Было 100 элементов (глобальных переменных и функций), стало 10 классов. Код, конечно, стал сложнее и может много больше — в каждом классе у нас по несколько функций и полей. И теперь мы можем делать более сложные программы. И делаем. И получаем программу из 100 классов — и опять она приходит к порогу, за которым её сопровождение становится невозможным.
А ты думаешь, это из-за плохой кармы MS писала Vista 5 лет и потратила 6 миллиардов, реализовав меньше половины обещанных фич? Нет, просто они тоже упёрлись в этот порог. И раньше упирались, когда Windows 1.0 написали — только тогда это был порог сложности технологий того уровня.
ЗЫ Теперь понятно, почему тебе Ruby так понравился... ты просто не писал никогда сложных программ, не участвовал в сложных проектах.