Я сделал webdev на нескольких языках и в фреймворках, включая python, php и perl.Я сам размещаю их, и мои крупнейшие сайты получают около 20 тыс. Посещений в день.
Любой язык и инфраструктура, которые имеют разумную скорость, могут быть расширены до 20 тыс. Посещений в день, просто используя для этого ресурсы.Некоторые занимают больше ресурсов, чем другие.(Plone, Joomla. Я смотрю на вас).
Мои сайты Witty (еще не запущенные в производство) занимают гораздо больше (из памяти на 5000% больше) (используя seige), чем, например, мой питонместа.То есть.Когда я нажимаю на них так сильно, как могу с помощью seige, остроумные сайты обслуживают намного больше страниц в секунду.
Я знаю, что это не настоящий общий тест.
Другие быстрые преимущества, которые остроумныдает вам:
Многопоточность
Если вы развертываете со встроенным websrever (например, за ha-proxy) и ваше приложение будет многопоточным ... оноВы загрузите намного меньше памяти, чем, скажем, приложение на Perl или PHP.
Как правило, с приложениями php и perl Apache запускает процесс для каждого входящего соединения, и каждый процесс загружает весь интерпретатор php, весь код и переменные и объекты, а что нет.С такими мощными средами, как Joomla и Wordpress (в зависимости от количества плагинов), каждый процесс может сильно пострадать от потребления памяти.
С приложением Wt каждый сеанс загружает экземпляр WApplication (объект C ++) и егоцелое дерево виджетов и прочее.Но память, используемая кодом, остается неизменной независимо от количества подключений.
Встроенная версия Web2.0 ness
Как правило, с традиционными приложениями они все еще создаютсявокруг старого «HTTP-запроса приходит« .. »мы обслуживаем страницу« .. готово »стиль вещей.Я знаю, что они все время добавляют все больше и больше видов AJAXy.
С Wt по умолчанию используется WebSockets, где это возможно, для обновления только той части страницы, которая нуждается в обновлении.Он возвращается к стандартному AJAX, тогда, если это не поддерживает HTTP-запросы.При использовании клиентов с поддержкой AJAX и WebSockets постоянно используется один и тот же объект WApplication C ++. Поэтому при настройке нового сеанса скорость не теряется.
В ответ на «C ++ слишкомhard for webdev '
C ++ имеет некоторую кривизну обучения.В середине девяностых мы делали сайты на Java j2ee.В то время это считалось коммерчески жизнеспособным и было очень непростой задачей, но оно имело хорошее преимущество, заключающееся в поощрении хорошей практики документирования и кодирования .
С веб-сайтами сценариев этолегко взять ярлыки и не понять, что они там.Например, на одном 8-летнем Perl-сайте, над которым я работал, был дублирован некоторый код, и никто не заметил.Каждый раз, когда он отображал список продуктов, он выполнял один и тот же SQL-запрос дважды.
С сайтом C ++ я думаю, что у него было бы меньше шансов, потому что на сайте perl было не так многоСтруктура программирования (как функции), это был просто Perl и встроенный HTML.В C ++ вы, скорее всего, будете иметь методы с именами и в итоге столкнетесь с именами.
Типы
Однажды был метод, который принял идентификатор int,позже мы изменили его на строку uuid.Код на Python был великолепен, мы не думали, что нужно его менять;все прошло нормально.Однако в глубине души была спрятана небольшая линия, которая имела другой эффект, когда вы передавали ей строку.Очень сложно отследить ошибку, поврежденную базу данных.(К счастью, только на машинах разработки и тестирования).
C ++, безусловно, много жаловался бы и заставлял бы нас переписывать задействованные функции, а не ленивиться.
С C ++ и Java, компилятор выдает ошибки и предупреждает lot о таких ошибках для вас.
Я считаю, что модульное тестирование, как правило, не столь необходимо для приложений на C ++ (не стреляйте в меня) по сравнению с приложениями на языке сценариев. Это происходит из-за того, что язык применяет множество вещей, которые вы обычно помещаете в модульный тест, например, для приложения на Python.
Резюме
По моему опыту до сих пор .. Wt требует больше времени для разработки чего-либо, чем существующие фреймворки .. в основном потому, что в существующих фреймворках гораздо больше из коробки материала , Тем не менее, в Wt проще создавать приложения с индивидуальной настройкой, чем, скажем, Wordpress imho.