вторник, 2 июня 2015 г.

[prog.c++] Так зачем SObjectizer, если есть Erlang?

Практически в любом анонсе релизов SObjectizer обязательно найдется кто-то, кто задаст не очень умный вопрос "Зачем твой велосипед, если есть Erlang?" Дабы не повторять в очередной раз одно и то же, решил написать ответ здесь, а потом просто буду ссылаться на него.

Итак, почему вопрос "Зачем..., если есть Erlang?" является неуместным, да и не очень умным?

Потому, что SObjectizer -- это библиотека для C++. Библиотека, позволяющая использовать акторов в C++ных приложениях.

Т.е., если у вас есть C++ное приложение и вы хотите задействовать в нем акторов для упрощения своего многопоточного кода, то вы можете взять инструмент вроде SObjectizer или CAF и облегчить себе жизнь.

Поэтому вопрос "Зачем..., если есть Erlang?" является ни чем иным, как вопросом "Зачем использовать C++, если есть Erlang?" А это уже, как не трудно заметить, совсем другой вопрос. Поиск ответа на которой выходит далеко за рамки той узкой прикладной ниши, для которой разрабатывался SObjectizer.

Собственно, здесь обсуждение следует и закончить. Т.к. все упирается в условия конкретной прикладной задачи, требования к производительности, кроссплатформенности и юзабилити, в наличие готовых инструментов и/или унаследованного кода, в размер и качественный состав проектной команды, особенности рынка труда в вашем регионе, сроки, деньги и еще туеву хучу причин и ограничений.

Если ваши условия позволяют выбрать Erlang -- то вы просто берете Erlang и успешно выполняете проект. Если же вы не осознаете, что может быть множество причин, по которым Erlang выбрать не получится, то, это всего лишь констатация факта, что вы еще мало что понимаете в разработке софта.

Но, т.к. непонимающих (уж не знаю, в силу возраста, ограниченности кругозора или врожденного кретинизма) не так уж и мало, то повторю еще раз: есть такая прикладная ниша -- инструментарий для языка C++. Нравится вам это или нет, но пока еще C++ живет, развивается и активно применяется. Как для сопровождения старых проектов, так и для создания новых. И пока C++ живет, развивается и применяется, он образует нишу для разного рода специализированного инструментария. А раз есть ниша, значит и будут попытки ее занять. SObjectizer как раз одна из таких попыток.

Успешной она будет или нет, разумно тратить на это мое (повторюсь, мое, а не ваше) время -- покажет будущее. Гораздо важнее другое: если вы не имеете отношения к разработке софта на C++, то просто проходите мимо. Время -- это не возобновляемый ресурс. Давайте экономить его друг для друга и не тратить столь драгоценный ресурс на очередную итерацию вокруг "Зачем SObjectizer, если есть Erlang?"

Комментариев нет: