CMS буквально заполонили рунет. Платные-коммерческие, свободные-закрытые, для блогов-магазинов-визиток-форумов и так далее. И многие уже путают понятия "сайт" и "система управления сайтом". Клиент пишет - "нужен сайт вордпресс". Какой? Для чего? "Ну вордпресс же, вы сами должны знать!". Фтопку таких клиентов, но, думаю, настало время расставить точки над "й". Да и многие начинающие веб-мастера, хоть и используют CMS и ещё кучу других инструментов, не до конца понимают что это такое. Итак, что такое CMS. CMS - это система управления сайтом. WordPress, OpenCart, Bitrix - все они созданы с одной целью, упростить управление и процесс создания новых страниц пользователем. И эти же CMS являются своего рода генераторами кода. В админке задаёте имя простым текстом - на сайте он обрастает кодом и отображается так, как было задумано в шаблоне. Вы нажимаете "Добавить страницу/товар" - CMS готовит всё необходимое, чтобы вам не пришлось открывать книжку "Веб сайт с нуля для чайников своими руками" и проходить весь путь эволюции от эникейщика до труЪ тыжпрограммиста. Вы пишите статью, вставляете картинки в WYSAWIG-радакторе - читатель видит конечный и, вероятно, красиво оформленный текст с рамочками, подчёркиваниями и прочим. Просто? Да! А теперь давайте рассмотрим чем отличается статичный сайт на HTML и CSS от монстра на какой-нибудь CMS. Для посетителя - ничем, ровным счётом. Можно добиться тех же результатов при помощи одного только блокнота, но времени и сил это займёт гораздо больше. Для веб-мастера, админа, контент-менеджера ситуация в корне отличается. Как минимум, потому что с CMS это может быть один человек, а не три разнопрофильных спеца. А теперь перейдём к мат.части. Заодно и рассмотрим главную проблему всех или почти всех ЦМС. Вот, например, возьмём простой 5 страничный сайт на HTML и CSS. Из чего он состоит? Ровным счётом из 6 основных файлов: главная-страница.html, страница1.html, страница2.html, страница3.html, страница4.html. И CSS-файл, если CSS вообще используется. Плюс папка с картинками и сами картинки. Если есть. Небольшое отступление: в статичном сайте на HTML можно отказаться от CSS-файла полностью, прописывая в каждом HTML-документе стили каждый раз. CSS позволяет прописать стили 1 раз и в 1 файле, чтобы не мозолить пальцы лишний раз. А теперь посмотрим, сколько файлов будет в том же сайте на CMS, скажем, WordPress. Больше тысячи. А то и двух. Или трёх. Не вспомню сейчас, да и не суть. При этом, вы нигде не найдёте те 6 файлов, как в случае со статичным сайтом. Почему? Да потому что их не существует. Каждый раз при обращении посетителя к той или иной странице, она генерируется заново или восстанавливается в сгенерированном виде из кэша движка сайта. Все эти тысячи файлов - это контроллеры и файлы шаблонов. Которые рассказывают движку как обрабатывать, выводить и отображать каждый элемент сайта. Как подключать файлы, где хранить значения, как обращаться к базе данных и что вообще за что отвечает. Если у ЦМС отсутствует возможность кэширования, то страницы генерируются с нуля каждый раз. Для наглядности приведу пример: У вас есть компьютер. Вы должны написать 10 различных текстовых файлов. Если сайт на чистом HTML, то мы просто берём, пишем и сохраняем эти документы. Если сайт на CMS без функции кэширования, мы сначала читаем руководство пользователя к компьютеру, руководство к клавиатуре, руководство к мыши, руководство к операционной системе, руководство к блокноту. 10 раз. По разу для каждого файла. Если ЦМС с функцией кэширования, то мы читаем лишь некоторые руководства. Но каждый раз, как только нам нужно что-то написать в блокнот. Думаю, наглядно. Сойдёт. Из этого вытекает проблема многих ЦМС - нагрузка на сервер. Ведь это ему приходится каждый раз читать инструкции, для каждой страницы, для каждого пользователя. Если 100 пользователей откроют одну страницу одновременно, то серверу придётся прочитать инструкции к этой странице ровно 100 раз подряд для каждого пользователя по-отдельности. Что предлагают CMS - удобство и скорость работы с контентом. Но цена этому - грязный код, нагрузка на сервер и прочие малоприятные мелочи. При том, что сайт сам по себе - это просто набор документов.
Ну, однозначно сказать, что лучше невозможно. Если есть задача сделать сайт, который будет содержать большое количество информации, а также регулярно обновляться, то лучше делать его на CMS, если одностраничник, то самописный вполне подойдет. Основы HTML и CSS нужно знать в любом случае.
Без основ HTML никуда в любом случае. Даже при работе с CMS многие кодировщики обращаются к своим знаниям HTML. Проблема в том, что многие пользователи не хотят вникать в тему. У них есть задача сделать сайт. Они прочитали, что с помощью движка ресурс делается без каких-либо знаний со стороны пользователя. А подумать о том, что простенький сайт лучше создать на чистой HTML они не смогли, так как вообще об этом представления не имеют. Отсюда и дальнейшие проблемы.