Насчёт реализаций и стандарта. К реализациям вопросов нет. Современные реализации C++ реализуют современный стандарт достаточно полно. Те, которые его реализуют недостаточно полно, или вступают со стандартом в противоречия - подвергаются жёсткой критике, исправляются в следующем релизе или обходятся протабельными обёртками или сознательным воздержанием.
Под противоречиями я подразумевал то, что спецификация языка C++ поднимает его, с одной стороны, на слишком высокий уровень, а с другой стороны, оставляет слишком много свободы и ручной работы на нижнем (управление памятью, интроспекция и пр.).
Кстати, ещё один пинок в сторону COMа - тебе приходилось когда-нибудь писАть COM-объекты на какой-нибудь другой реализации C++, кроме Microsoft Visual ?
И второе. Насчёт memcached. Это, если приглядеться, довольно простой сетевой сервис типа proxy, внутри у которого довольно простой конечный автомат. Такое нетрудно и на C написать, не то что на C++. Все объекты аккуратно оттреканы, со всеми чётко ясно, кто где лежит, кто на кого ссылается и когда кого выбрасывать, чтоб никого не обидеть. И нужна высокая производительность. Так что выбор C++ вполне понятен.
К тому же, в memcached не используется COM, и это можно только похвалить как разумный и сознательный инженерный выбор на начальных стадиях проекта :>
Прощальный ответ для анонимного визарда :
14/2/09 11:31 (UTC)Под противоречиями я подразумевал то, что спецификация языка C++ поднимает его, с одной стороны, на слишком высокий уровень, а с другой стороны, оставляет слишком много свободы и ручной работы на нижнем (управление памятью, интроспекция и пр.).
Кстати, ещё один пинок в сторону COMа - тебе приходилось когда-нибудь писАть COM-объекты на какой-нибудь другой реализации C++, кроме Microsoft Visual ?
И второе. Насчёт memcached. Это, если приглядеться, довольно простой сетевой сервис типа proxy, внутри у которого довольно простой конечный автомат. Такое нетрудно и на C написать, не то что на C++. Все объекты аккуратно оттреканы, со всеми чётко ясно, кто где лежит, кто на кого ссылается и когда кого выбрасывать, чтоб никого не обидеть. И нужна высокая производительность. Так что выбор C++ вполне понятен.
К тому же, в memcached не используется COM, и это можно только похвалить как разумный и сознательный инженерный выбор на начальных стадиях проекта :>