Если сравнить простым и понятным языком CMS и Framework, то можно описать их примерно так:
CMS — это полуфабрикат. Установили, настроили, получили результат.
Framework — это набор материалов. Как вы его будете использовать — дело ваше.

Разница между ними начинает проявляться в процессе работы, если быть точнее в трудоёмкости реализации поставленных задач и\или достижении целей.

В CMS стандартные цели реализуются достаточно быстро и дёшево, но любой полуфабрикат начинает "коматозить" при попытке адаптации под специфические задачи. Не важно, бесплатная ли CMS или купленная за деньги, все этого по-сути одного поля ягоды. Важно понять, что у каждой есть т.н. "предел гибкости".
Предел гибкости — это потенциал к развитию вашего сайта(или web-приложения) нативными средствами CMS не прибегая к услугам программиста. Грубо-говоря, скачали модуль, установили = результат. Либо настроили модуль "из коробки" = результат.
У каждой CMS есть предел гибкости, при достижении которого надо либо изменять необходимый функционал, либо разрабатывать такой функционал с нуля. В разных системах такой подход реализуется либо возможностью разработать собственный модуль, либо применить т.н. hook к существующему.

С фреймворками дела несколько иначе, "предел гибкости" в них стремится к бесконечности и ограничен лишь опытом человека работающего с ним.
Фреймворк можно сравнить с готовым набором наработок, которыми являются классы и их методы, вместо модулей в них существует возможность интеграции сторонних классов, либо расширения существующих, что как раз-таки и обеспечивает эту самую запредельную гибкость.
Пример: у вас есть микро фреймворк Flask, который из коробки идет без поддержки ORM, набрали в консоли pip install Flask-SQLAlchemy, подключили Flask-SQLAlchemy к вашему приложению и получили удобный инструмент работы с базами данных.

Почему одни склоняются к выбору CMS, а другие в работе с фреймворками?

Дело в том, что и первые и вторые имеют право на существование и все опять-таки идет от поставленной задачи. Вряд ли есть смысл использовать Django для разработки простого блога, с этой задай гораздо лучше справится Wordpress. Точнее использовав WP на начальном этапе вы гораздо быстрее получите блог и вам не придётся изучать для этого язык программирования.

В сухом остатке: CMS — это в большинстве случаев маркетинг, хотя встречаются и исключения, маркетинг направленный на то, что бы "подсадить" потребителя на свой программный продукт и заставить играть по своим правилам. Фреймворк предоставляет больше свободы, но требует больше усилий и времени как на изучение языка на котором он написан, так и на процесс разработки.

Каждый разработчик использует тот или иной подход, лишь по причине собственного комфорта работы с той или иной системой.


Выразить благодарность

Если эта публикация оказалась для Вас полезной и вы хотите выразить свою благодарность, сделайте пожалуйста её репост в социальных сетях или на своём сайте.

Так же, Вы можете перевести любую сумму, которую посчитаете нужной на наш счёт, что сильно мотивирует к написанию новых полезных статей.

Комментарии: