я предпочитаю решать задачи максимально тупым из всех возможных методов. Перед этим прикинув какие с этим могут быть проблемы в дальнейшем, и насколько они решатся если я что-то усложню. Уровень socket и RPC для моих задач более чем достаточен. Описаная же задача как раз из этой области.
Пусть средняя команда разработчиков допускает 3 ошибки на 1000 строк кода.
В варианте решения этой задачей с Корба мы суммируем количество ошибок в своём коде + количество ошибок во ВСЁм коде корбы (ибо как о внутренностях третьестороннего продукта ничего не знаем и перестраховываемся).
Второй момент --- такого рода --- допустим нам нужно прикрутить аутентификацию процессов общающихся друг с другом (вот мы попали когда передирали с Стивенса). Как это сделать? Написать ещё 100 строк + криптовальная библиотека + nное количество гемороя, а если мы использовали мидлваре то что? Либо уже есть либо ещё 50 строк и есть.
В общем моё ИМХО таково --- если архитектура проекта проработана --- именно архитектура, а не частности, то можно не напррягаться и передирать Стивенса в необходимых количествах. А если делаем то незнаем что, то высокоуровневый инструментарий нам поможет.
Пример продуманой архитектуры --- UNIX. Как известно хотя базовая безопасность там есть но остальное прикручено весьма сбоку, как и сеть (через 10 лет после первой реализации). Тем неменее в области сетей оно number one, а в области безопасности не хуже остальных. Хотя несомненно есть лучше.
Пример не очень продуманой --- MSW. Вещи типа HAL и микроядра ИМХО продуманы и правильны. Всё в качестве сервисов --- очень хорошо. Использование RPC тоже как правило по делу, но реализация самих сервисов делалось ИМХО по принципу --- помере надобности, потом как нибудь прикрутим. И что мы видим в результате? Да система работает, да дыры в безопасности более менее залатаны, но писать под неё софт --- упаси боже. Проблемы несовместимости также имеют место быть. Как это всё работает, хотябы на пальцах боюсь, что мало кто понимает, да никого это и не волнует мы же абстрагировались.
В общем как вывод моё ИМХО таково --- использование абтракций мидлваре и вообще лишних сущностей там где ненадо, приводит к необоснованому росту объёма кода и сложности взаимодействий и хотя возможность поддержки всего этого объёма сохраняется но требует она всё больших усилий и более сложного инструментария/квалифицированой рабочей силы. В случае же простой типа UNIX архитектуры, и малого количества неочёвидно связаных сущностей сохраняется возможность использования раб силы в среднем более низкой квалификации и простейшего инструментария. Это кстати мы наглядно видим в виде Linux как ремэйка UNIX образца конца 80х. Сообщество GNU не потянуло очень сложных проектов типа OpenOffice или GNOME итп без помощи со стороны проприетарных разработчиков, однако ремэйк UNIX получился более менее удачный.