Задать вопрос
@gimlen

На каком языке CMS сайта будет работать быстрее?

Интересно как по скорости сопоставимы различные языки когда дело касается бека сайта.
  • Вопрос задан
  • 691 просмотр
Подписаться 2 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 4
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..
Скорость работы сайта зависит от разработчика, ну и от хостинга разумеется.
Ответ написан
trapwalker
@trapwalker
Программист, энтузиаст
При такой постановке вопроса на любом языке у вас CMS медленно будет работать ввиду недостатка опыта правильной разработки.
Язык программирования нужен не для скорости, а для понятности людям. Скорость выполнения кода не так критична в вебе, как правильная архитектура. Иначе всё бы писали на ассемблере, но где вы видели сайты на ассемблере? Нет, наверняка такие есть и вполне можно сделать какой-нибудь фреймворк с CMS хоть на ассемблере, хоть на брейнфаке, но это глупо.
Обычно язык программирования не является бутылочным горлышком для скорости CMS.
Ошибки в архитектуре, непродуманная масштабируемость, отсутствие кэширования, излишняя связность, избыточность внешних зависимостей, пренебрежение CDN -- всё это гораздо сильнее влияет на тормоза и все эти проблемы можно реализовать на любом языке.
Язык нужно выбирать так, чтобы он давал возможность делать код более простым, читабельным и понятным не смотря на его количество. У языка должно быть большой комьюнити, чтобы можно было легко находить недорогих и эффективных специалистов для поддержки проекта.
Ответ написан
Комментировать
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!
Прежде всего стоит различать такие термины, как CMS, CMF и фреймворки.
Раз к вашему вопросу добавлен тег Java, то скажу следующее - как правило, на Java CMS не пишут. Можно конечно же написать, но так как такие языки, как Java и C# ориентированы на Enterprise, то обычно на них пишут веб-приложения с использованием различных фреймворков под конкретную задачу. К тому же, если сравнить готовые CMS написанные на Java (например, HippoCMS) и на РНР (например, WordPress), то вы заметите, что деплоить приложения написанные на Java сложнее, чем на РНР. Опять же знаменитая 5-ти минутная установка WP на сервер намного легче. + важный момент заключается в том, что CMS системы написанные на РНР можно развернуть на любых shared хостингам, в то время, как для Java развертывания приложений вам нужно подготовить сервер (VPS или VDS), установить Tomcat или любой другой сервлет-контейнер. Или же деплоить приложение в облако - AWS, Heroku и др. Как минимум, это требует доп. знаний и опыта или же привлечения доп. специалиста - DevOPS.
Соответственно, не лучшая идея писать CMS на компилируемых языках. Java, C#, Kotlin, Scala и т.д.
Также многое зависит непосредственно от разработчика. Если вы лучше владеете ЯП - python, то конечно же вам будет легче и лучше писать на нем, нежели на Java.
Также стоит учесть, что CMS подразумевает некую универсальность применения и соответственно, на CMS может быть много лишнего кода (функционала), который вам и не нужен, но при этом потребляет ресурсы сервера. Или например, CMS может быть подточен на реализацию определенной цели. Например, на блог (как в случае с ВП), но при этом владельцу сайта может понадобится и интернет-магазин или еще что-нибудь. Довольно часто, из-за подобной универсальности приходится жертвовать архитектурой приложения, что непосредственно сказывается на быстродействии. Для наглядности - WP. Там в одной таблице wp_posts могут храниться различные данные (от записей и страниц, вплоть до товаров и объявлений и сообщений форума), хотя по факту каждый из них является отдельной сущностью.
Также при разработке CMS систем предпочтение я бы отдавал интерпретируемым языкам и также учел бы их распространенность на хостингах. Тут опять-таки преимущество имеет РНР.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Рендеринг страниц в статичный HTML на бэке (+сжатие gzip) - самый быстрый вариант отображения статичного контента в браузере.
2. Динамические запросы - периодическое автонаполнение кеша ответов (или шаблонов ответов) на популярные запросы с разграничением по типам доступа: личный акк, группа пользователей, все остальные.
3. По скорости обработки в плане языков - почти все одинаковы. Сложная обработка данных выносится в микросервисы, написанные на C/C++/Go, умеющие работать в самоуправляемом асинхронном режиме с заданной производительностью.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы