CMS расшифровывается как "Система управления контентом". Смотрите, какие обычно модули сайта подразумеваются под управлением контентом:
1. прежде всего текстовый контент - то есть записи блогов, новости, статьи, wiki, описания товаров, объявления
2. работа с пользователями - регистрация, управление правами
3. медиа-материалы к контенту - встроенные картинки или поддержка видео-провайдеров (youtube, vimeo)
4. структуризация контента - категории и теги (или таксономия, если быть точным)
5. комментарии к контенту
6. поиск по контенту и комментариям
7. формы обратной связи и другие способы связи авторов проекта и пользователей
8. встроенная система баннеров
9. статистика
N. и ещё несколько других. Не рекламы ради, а для наглядности: список модулей одной из популярных CMS
take.ms/5k7Xd
Так вот, если ты делаешь проект и тебе надо выбрать платформу, то посмотри на эту картинку - все ли нужные тебе для проекта модули перечислены на картинке?
Если твой ответ "да", то твой выбор - это CMS. Нужно сконфигурировать её и покрасить в нужный цвет.
Если ответ "нет", то нужно определить:
*
сколько модулей придётся дописать (запрограммировать, адаптировать);
есть ли возможность расширять CMS нужными тебе модулями, например, с помощью системы плагинов;
*
достаточно ли документации на эту CMS, чтобы не заблудиться в коде.
Для некоторых проектов окажется, что лучше не использовать CMS, а написать с нуля нужный функционал, а потом уже дописать к нему пару модулей, которые присущи именно CMS. Например твой проект касается деятельности Forex и тебе нужно добавить комментарии к текущему курсу валюты :)
А фреймворки, самописные или популярные, используются потому, что позволяют упростить и организовать программный код, чтобы кодилось компактнее, быстрее и было понятнее для чтения.