Труд облагораживает человека!
Лень — двигатель прогресса!
Какому из этих утверждений верить? Каждый верит в то, во что он хочет верить, и сложно бывает кого-то переубедить. Так и в интернете: один веб-мастер считает, что он собственными руками должен написать каждую строчку кода для своего сайта, а другой уверен, что незачем тратить лишнее время, когда всё уже придумано, и использует CMS. На чьей стороне правда? Сравним эти два способа создания сайтов.

1. Решение ежедневных задач

Нужно понимать, что обычно CMS применяются для создания проектов, которые должны решать ряд обычных задач: публикация новостей, размещение рекламы, ведение опросов.. CMS — это набор модулей, позволяющих управлять контентом и решать поставленные задачи. Поэтому, если возникает новая задача, которую до этого никто не пытался решить при помощи выбранной CMS — нужно писать новый модуль, соблюдая при этом стандарты, установленные разработчиками CMS и учитывая все её нюансы.
Однако сегодня, для популярных CMS (Joomla, Wordpress, DLE и т.д.) уже разработаны все необходимые дополнения и плагины, поэтому расширение функциональности сайта не должно вызвать затруднений в 99% случаев.

2. Требовательность к серверу

Как я сказал, CMS должны служить для создания простых проектов, от которых не требуется ничего неординарного. Однако, это, по крайней мере, нерационально - прибегать к использованию CMS для создания простейших одностраничных сайтов-визиток, или сайтов, которые полностью состоят из статических страниц. Дело в том, что все CMS работают в связке с PHP и MySQL, из-за чего требования к хостинг-серверу возрастает пропорционально с нагрузкой на него. Страшно подумать, что тому же Wordpress требуется обратиться к базе данных более 25 раз, чтобы показать пользователю какую-либо заметку, тогда как сайту, написанному с нуля, хватит и 5-7 обращений к БД, чтобы отобразить такую же страницу.

3. Юзабилити

Юзабилити явно на стороне сайтов, построенных на CMS. Во-первых, как видимая посетителю часть сайта, так и администраторская зона всегда выстроены логично, и имеют интуитивно понятный графический пользовательский интерфейс (GUI), что позволяет не лезть в код страницы без лишней надобности (хотя иногда приходится). Более того, та часть сайта, которую видит пользователь, у сайтов на CMS более функциональна и эргономична.
Несомненно, если писать каждую строчку кода сайта «с нуля», не прибегая к использованию уже разработанных модулей, то можно достигнуть и лучших результатов. Однако, при этом, потребуется больше временных и финансовых вложений.

4. Безопасность

Одним из ключевых недостатков популярных CMS можно признать открытость и доступность их кода. Открытый код позволяет любому желающему посмотреть, как устроена система, чтобы затем обнаружить слабости кода, уязвимости и ошибки системы. После этого никто не сможет помешать ему, воспользоваться имеющимися «дырами» в своих личных целях. Да, с «дырками» в своих системах разработчики CMS постоянно борются, но закрывая одну «дыру», они открывают одну, а то и несколько других.
Конечно, взлом, ошибки и уязвимости кода возможны и для сайтов, которые написаны «от руки», но шанс быть взломанным снижается, если разработкой занимался опытный веб-мастер. Нестандартная структура кода потребует у недоброжелателя больше времени и сил для взлома, поэтому он может бросить эту затею и пойти брутфорсить сайт Вашего конкурента, который завел себе сайт на одной из известных и бесплатных CMS.

5. Сроки реализации проекта

CMS обрели такую популярность только за счет того, что для их установки и администрирования не нужно обладать супер навыками и тратить на их поддержку много сил и времени. То есть CMS позволяет сконцентрироваться на наполнении сайта, его продвижении и т. д., а не на его настройке и установке. Более того, сайт на CMS можно развернуть, наполнить и открыть для пользователей за 2-3 дня, а то и быстрее!
Разрабатывая сайт с нуля, уложиться в такой короткий срок для создания мало-мальски хорошего проекта не удастся. Конечно, если работает команда профессионалов, которая заинтересована в разработке, то можно создать сайт и за один день, но потом придётся тратить лишнее время на отладку и отлов ошибок. Этот способ создания сайта явно не для тех, кто спешит. Тут нужно и дизайн разработать и сверстать его и написать весь функционал самостоятельно. Можно, конечно, попросить о помощи другого веб-мастера, но он вряд ли захочет работать бесплатно.

Подведем итог. Однозначного ответа на вопрос «что лучше», дать невозможно. Каждый способ имеет право на существование, и имеет преимущества в определенной ситуации. Например, если сайт будет очень посещаемым, то, если поберечь сервер, лучше написать весь код с нуля, а если это будет простой блог, или любой другой сайт, от которого не потребуется ничего сверхъестественного, то можно ограничиться и теми возможностями, которые предоставляют популярные, бесплатные CMS.