Это не похоже на новые версии, где более новые версии будут иметь обратную совместимость.
Что я имею в виду, когда разработчики C #, .NET, CLR осознают, что допустили ошибку или упустили из виду нечто, что могло бы принести огромную пользу, но теперь они не смогли добиться этого из-за обратной совместимости, они могли Разветвите соответствующий продукт, скажем, как, обозначив его по-другому (горизонтальное управление версиями).
Разве это не было бы более перспективным?
Вы можете сказать, что это будет кошмар, но будут ограничения, например, вы не можете смешивать и сочетать разные ветви в отличие от разных языков, которые совместимы друг с другом и т. Д. (В одной ветке).
Таким образом, вы бы сказали, что используете C # 4.0, тогда есть кое-что очень полезное, что вы можете использовать из C # 4.0 B1 (ветвь 1) и просто использовать это, даже если это может потребовать некоторых усилий по переносу.
Разве это не здоровая стратегия развития, когда новые проекты всегда могут начать использовать самую последнюю и самую лучшую, то есть самую последнюю версию и последнюю ветвь определенного языка (например, C # 6.0 B4)?
Я не вижу лишних хлопот в отслеживании вещей для новых языков, где вы все равно должны знать вещи для каждой версии. Так что это просто добавляет другое измерение (горизонтальные версии) к вертикальному версионированию.
Каковы потенциальные плюсы / минусы этой стратегии развития?