С++ Web Services
Apr. 2nd, 2012 01:38 amВозникла идея в рабочей системе вообще отказаться от интерпретируемых языков. Статику отдавать через Apache, клиента сделать на статическом JavaScript, а динамику отдавать через FastCGI из своего C++ приложения в XML/JSON.
В теории идея выглядит вполне работоспособной. Однако мысль о том, что придётся переизобретать маленькую роту велосипедов, которые в Rails/Django вылизывались годами, меня очень смущает. Гугление уже существующих решений (и их обсуждений типа - раз два три четыре) дало такие примеры:
CppCMS: похоже, довольно полная библиотека для написания приложения. Всё как у взрослых: кое-какие routes, контроллеры, темплейты+views+шкуры и всё прочее. Немного смущает что, как и другие фреймворки, у них свои строки, массивы и прочие базовые классы. Но в целом - кажется приемлемо.
Wt: любопытная widget-ориентированная библиотека для написания веб-систем. Оригинальная, но уж очень самобытная. А к самобытным системам ни Dojo не прикрутишь, ни программистов потом не найдёшь. Плавали - знаем.
TreeFrog: похоже на попытку аккуратного портирования Rails на плюсы, но результат непонятный: проект молодой, документация почти несуществующая.
ffead: занятная штука, судя по всему написанная сумасшедшим Java-программистом, который почему-то начал писать на C++. Посмотреть конечно прикольно, но не брать же это в production.
CPP SERV: уже другие безумные Javaнцы переписывали на C++ - на этот раз servlets. Однако года три назад вылечились и бросили это дело.
Есть ещё кучка библиотек помельче для разработки мини-сервисов: Klone, PoCo, NanoGear, REST CGI. Но с ними опять придётся выстраивать собственно архитектуру с самого начала. А не хочется.
Выходит, особенного изобилия веб-приложений на C++ не наблюдается. И начинают закрадываться сомнения - может быть, миллионы мух не могут ошибаться, тысячи программистов уже пробежали этот марафон по граблям и разбрелись кто куда?
Вот, сижу теперь, думаю... Записываться в экстремалы с такой системой или плюнуть и откопать PHP?
no subject
Date: 2012-10-24 07:07 pm (UTC)Если нет внешних ограничений на язык реализации веб-приложения - надо таки-брать Ruby, Python или хотя бы Perl с соответствующим фреймворком и прикручивать бизнес-логику на любом языке. Скорость начальной разработки будет выше на порядок, причём по нескольким причинам. Во-первых, веб - это строки, а строки в плюсах - это совсем не центровое в отличие от скриптовых языков. Во-вторых, тыщи готовых модулей под скриптовые фреймворки с большой вероятностью позволят за считаные часы наваять работоспособный прототип. В-третьих, тестирующие фреймворки опять же за короткое время помогут зафиксировать внешние требования в наборах тестов всех уровней.
В общем, веб-системы надо писать на скриптовых языках. Ну или на Node.js если хочется ещё и остроты ощущений.
no subject
Date: 2012-10-27 01:49 am (UTC)Тестовые фреймворки в зависимости от того, к какому месту их подключать: либо не зависят от языка реализации, либо для С++ их тоже достаточно.
А вот практически полное отсутствие готовых библиотек для разработки Web на С++, действительно, настораживает.