тема не для срача
Болтали тут на днях с одним программистом, он рассказал что его знакомый делал энтерпрайз проект на C# целых два года, большая ответственность и всё подобное, потом обновился .net и всё сломалось, после этого он перешел на C++ и не мучается
в основах теории отказоустойчивости есть понятие что чем сложнее система ПО тем больше в ней ошибок, но тут мы еще встречаемся с тем что ПО написанное на .NET состоит не только из нашего кода, а из кода других людей, потому нам приходится поддерживать ошибки чужого кода, проблема даже не в том что чужой код содержит ошибки, а в том что они могут добавляться в течении времени, или вообще вся система видоизменится
в C++ стандартного кода очень мало и он открытый, если что можно переделать C Runtime Library под себя и написать свой STL, в итоге присутствие ошибок извне сводится к нулю, и они не добавляются в течении времени, потратив всего 1-3 месяца мы создаем надежную инфраструктуру для проектов любого уровня
тут схожее сравнение с unix и windows : многие ошибки unix были найдены и принципиально новых ошибок эта ОС не принесет, когда windows может сделать не понятно какие ошибки, да и исходник не посмотришь чтобы понять что к чему
я вижу как решение тупо морозить версию используемых библиотек и не обновлять их в будущем, в принципе такой вариант и используется для встраиваемого софта, так же схожий принцип используется в iphone os sdk, программа скомпиленая с 3.0 sdk запустится на аппарате с 4.0 операционкой, но не обязательно такая программа сможет скомпилироватся с 4.0 sdk
ps. а вы не задумывались почему google имеет свою версию ядра линукс и очень медленно вводит изменения извне в него, почему он имеет уже даже свой язык программирования ?
