Використовувати cms або писати сайт з нуля

Науці відомо безліч готових рішень, заснованих на CMS, таких як Drupal або Joomla. Здавалося б, чого простіше? Встановив пакет з інсталятора, заповнив парочку сторінок, вибрав незаїждженими симпатичний шаблончик - і радієш життю. При цьому ніякого програмування, дешево і сердито. Плюси при використанні CMS:
1) Простота і швидкість розгортання. Можна зробити сайт за 5 хвилин.
2) Наявність безлічі модулів, які дозволять розширити функції сайту в майбутньому.
3) Простота підтримки, так як є готова админка, працювати з якою можна навчити будь-якого за 5 хвилин.
Але це на перший погляд все так добре. Як відомо, безкоштовний сир буває тільки в мишоловці. У чому ж підступ? А ось у чому:
1) Будь-яка CMS - універсальна. Вона запросто може не враховувати вашу вузьку спрямованість. Наприклад, вам треба зробити сайт кафедри - жодна CMS не містить в собі модулів для роботи в такій специфічній сфері (студенти, викладачі, оцінки, посещамость). Загалом, рано чи пізно доведеться дописувати, якщо у вас не сайт-візитка.
2) Так як CMS намагається охопити весь спектр завдань, то в ній напевно будуть ті функції, які вам не потрібні. І ви змушені будете з ними миритися, що само собою буде гальмувати завантаження сторінки і навантажувати сервер. Спробуйте прикинути, скільки непотрібних SQL запитів йде до бази в стандартній CMS? А адже більшість людей навіть не замислюється про те, що відбувається там всередині, а там часто все не дуже добре оптимізовано.
3) Так, на перший погляд є дуже багато безкоштовних модулів, які можна скачати і встановити, якщо виникне необхідність розширити функції сайту. Але як тільки виникає така реальна необхідність, відразу ж з'ясовується, що один модуль кривої, інший простий, третій робить не зовсім те, що потрібно. В результаті все одно доводиться працювати напилком, витрачати час, плюватися від дурниць в чужому коді, ставити нескінченні милиці.
4) Питання якості повинен стояти на першому місці. Хто пише ці самі нескінченні безкоштовні модулі? При всій повазі, їх пишуть ентузіасти, рівень знань яких запросто може виявитися досить низьким. Ви готові довірити свій проект безграмотно написаному коду?
5) Стандартні засоби мають стандартні діри. Якщо хакер побачив, що ви використовуєте певний компонент, він зі 100% ймовірністю його зламає - або знайде готовий експлоїт, або вирахує дірку сам (знаючи вихідний код - це не проблема).
Цей список можна нескінченно продовжувати, просто очевидно, що використовувати стандартні CMS можна тільки тоді, коли відносна цінність проекту невелика і прогнозована навантаження буде також невисокою. Якщо ви хочете якісний сайт, саме під ваші потреби, без програмування не обійтися. Але це трудовитрати, що само собою здорожує вартість проекту. Навіть якщо людина робить все сам і для себе, він все одно витрачає свій дорогоцінний час, який можна і потрібно вважати й оцінювати.
Зрозуміло, якщо ви взялися програмувати свій сайт самостійно, у вас виникне своя власна CMS, яку ви будете шліфувати і нарощувати, використовуючи в наступних проектах. Можна, звичайно, допив напилком стандартну CMS - але трудовитрати при цьому будуть цілком порівнянні, адже її ще й вивчити треба, розібратися як вона працює.
Як короткий підсумок - всюди важливий баланс сил. Якщо ви відчуваєте в собі сили підтримувати і латати чужу стандартну CMS - можете це робити. Але завжди перед початком роботи над сайтом необхідно все ретельно продумати і спроектувати, і цілком можливо, що виявиться так, що дешевше написати сайт самостійно. Краще один раз зробити інвестиції з розумом, ніж потім шкодувати і викидати на смітник хороші ідеї і зіпсовані сайти.