WordPress vs. Joomla vs. Drupal vs. další CMS systémy
Posledních několik měsíců ve volných chvílích experimentuji s CMS systémy, vytvářím si testovací instance a zkouším, co to dokáže. Ale možnosti jsou tak rozsáhlé, že nemám šanci vyzkoušet všechny aspekty. Začal jsem tedy hledat články, které mi pomohou zaměřit se při testování na správné věci. Kromě obvyklého tipu článků, které CMS je nejlepší a sady kritérií, dle kterých je CMS hodnoceno, jsem našel jeden článek, který vybočuje z řady a zabývá se CMS systémy velmi originálně a mimochodem naprosto správně, se smysluplnými argumenty. Velmi oceňuji pozitivní i negativní kritiku WordPressu (jako mého oblíbeného CMS) a velmi přínosné pro mě bylo hodnocení Drupalu, který se zdá stále nedokáže spousta uživatelů ocenit.
Tento článek bych tedy doporučil každému, kdo se aktuálně rozhoduje, které CMS zvolit, protože poskytuje nový pohled na věc.
Vývojáři webových stránek se dělí na dva tábory. První propagují otevřené redakční systémy při vývoji webu (např. WordPress, Prestashop, Joomla) a druzí prosazují vývoj na zakázku nebo vlastní (firemní) redakční systémy. Jakou cestou by měl dnešní klient jít a proč?
Definice pojmů spojených s redakčními systémy
Předně bude užitečné definovat si, co je přesně redakční systém, plugin, open-source redakční systém, uzavřený redakční systém a vývoj na zakázku.
Redakční systém (zkráceně CMS – Content Management Systém) si můžeme představit jako 80 % webových stránek. Je to připravené řešení, které již obsahuje základní funkcionality webu a vývojář již pouze dodělá vzhled a specifické funkcionality klienta.
Plugin (někdy také modul nebo rozšíření) je vytvořená a plně funkční aplikace, která plní konkrétní úkol (např. plugin pro kontaktní formuláře, plugin pro chat, plugin pro zálohování). Tento plugin je možné pouhým kliknutím na „Instalovat“ připojit k redakčnímu systému a následně provést nastavení. Obvykle není nutné sahat do kódu pluginu.
Open-source redakční systém je takový, který je z větší části vyvíjený komunitou, nikoliv komerční společností a co je hlavní, jeho zdrojový kód je všem bezplatně přístupný a mohou si jej libovolně měnit a šířit jej dále.
Známými open-source redakčními systémy jsou WordPress, Joomla, Drupal nebo Prestashop. Doporučuji k přečtení tento seznam na Wikipedii, který se zabývá neznámějšími CMS systémy.
Uzavřený redakční systémvlastněný agenturou – Agentury mají zpravidla vytvořené redakční systémy, které implementují jen a pouze u svých klientů. Tyto systémy mohou být postaveny na základu některého open source systému, ale již nejsou schopny přijímat aktualizace ani pluginy těchto systémů.
Uzavřený redakční systém, vyvíjený specializovanou institucí, ale kýmkoliv rozšiřitelný – Některé redakční systémy fungují na principu, že jsou sice uzavřené a placené, do základního kódu nelze (nebo se nedoporučuje) zasahovat, ale pluginy pro ně může vytvořit kdokoliv. Rovněž podpora pro tyto systémy je veřejná, existují fóra a zákaznická báze. Příkladem takového systému může být například české Kentico CMS, které má i verzi zdarma, prémiové funkcionality jsou placené.
Vývoj vlastního řešení – Neexistuje žádný předchůdce řešení, redakční systém byl vytvořen od první řádky kódu do poslední na míru klienta. Řešení je velmi drahé na vytvoření i údržbu a většinou dnes již nevyužívané u moderních webových stránek. Používá se zejména u specifických aplikací, mobilních aplikací, aplikací, které jsou inovativní a nebo unikátní. Může být také využito u tajných projektů nebo ve veřejné správě (ačkoliv zde je to často zbytečně).
V dalším textu budou srovnávána dvě extrémní řešení: 100% open source systém a redakční systém, který je vyvíjený a vlastněný agenturou.
Kritéria hodnocení redakčních systémů
Systémy budou hodnoceny na základě následujících kritérií:
Dostupnost, připravenost k okamžitému použití, prvotní instalace a konfigurace.
Rozšiřitelnost a dostupnost pluginů
Licence a právo
Podpora
Bezpečnost a aktualizace
Cena
1. Dostupnost, připravenost k okamžitému použití, prvotní instalace a konfigurace
V případě uzavřeného redakčního systému se předpokládá, že instalaci a prvotní konfiguraci řešení provede agentura. Vzhledem k sehranosti a zkušenostem týmu nelze očekávat, že by agentura u běžných projektů klopýtla a lze předpokládat, že bude webová stránka připravena k použití relativně rychle. Problém nastává v okamžiku, kdy od své stránky chcete něco, co CMS agentury neumí. Zpravidla bývají v ceníku agentur dvě sazby: jedna za běžné nastavení (může dělat junior programátor) a druhá spočívající v upravování redakčního systému (často musí dělat přední specialisté, kteří systému maximálně rozumí). Druhá sazba je tedy obvykle vyšší.
V případě otevřených systémů je nesporná výhoda, že implementaci může provést kdokoliv. U naprosto jednoduchých stránek je možné využít některou z tisíce šablon (i zdarma), které je možné nasadit za několik hodin, přidat logo a i člověk s minimálními technickými znalostmi může provést implementaci. Samozřejmě, už jsem viděl i případy, kdy si klient nasadil sám řešení, na které neměl technické znalosti a výsledek (ačkoliv open-source) byl naprosto katastrofální a propad ve vyhledávání i v době strávené na stránce byl markantní. To že je snadné nasadit šablonu, neznamená, že by se do tohoto nasazení měl pouštět klient sám. Často je lepší najmout si pro nasazení open-source řešení (i u malého webu) freelancera nebo agenturu. U větších řešení bych již samoimplementaci rozhodně nedoporučoval.
Dalším důležitým aspektem je technologie. Většina open-source CMS pracuje na principu PHP. Pokud z nějakého důvodu potřebujete řešení na technologii ASP.NET, JSP, RoR apod. počet vhodných open-source řešení se značně zúží (ale i takové najdete) a uzavřený systém může být lepším řešením. Na druhou stranu, pro drtivou většinu projektů postačuje PHP.
Takže z hlediska připravenosti k okamžitému použití a obtížnosti instalace se kloním k názoru, že situace je vyrovnaná. (1:1)
2. Rozšiřitelnost a dostupnost pluginů
Předně si ještě upřesněme, že tento článek je o populárních open-source CMS řešeních, které mají řádově statisíce až miliony instalací (pro představu WordPress je nyní využit na každé čtvrté stránce na internetu – viz w3techs.com). Tato open source řešení jsou snadno rozšiřitelná a vzhledem k populárnosti je pro ně dostupné pluginy téměř na cokoliv – většina pluginů je alespoň v základní verzi zdarma, popřípadě za drobný poplatek (do 10 dolarů). Velmi zřídka je nutné sahat do kódu.
Na druhé straně rozšířit uzavřený redakční systém obnáší hodiny práce vývojáře a v podstatě je pouze znovu vytvářené kolo.
Zde jasně vedou open source systémy (2:1)
3. Licence a právo
Open source systémy s licencí GPL jsou volně upravitelné a případně je možné upravená řešení dále sdílet. Samozřejmě, mohou být pluginy, které nelze bez souhlasu autora dále sdílet.
Co se týká uzavřených řešení, zde již záleží na konkrétním licenčním ujednání. Zpravidla se v licenčním ujednání nachází něco jako:
jediný, kdo může řešení upravovat je společnost ABC nebo její autorizovaní partneři,
klient nesmí zobrazit žádné konkurenční agentuře redakční systém ani kód bez konzultace s ABC,
při ukončení spolupráce ztrácí klient možnost využívat nadále systém +vznešené jméno systému+.
Nikdy bych nedoporučil podepsat tuto smlouvu. Již jsem zažil situace, kdy agentura využívala stavu, že je klient na ni závislý a nemůže odejít ani využít služby konkurence. Nejvíce se to projevuje na cenách práce a vyjednávacím postavení. Pokud selže chemie mezi zadavatelem a odběratelem je to opravdu problém.
A i pokud zde nejsou žádné takové smrtící podmínky, další problém nastává, když předáte řešení jinému programátorovi. Často stráví hodiny pouze snahou pochopení systému, který neprogramoval a nikdy neviděl.
Na druhou stranu, pokud využívám open-source řešení, mohu přejít v podstatě ke komukoliv (samozřejmě i v tomto případě pozor na licenční ujednání). Vyhrává open-source (3:1)
4. Podpora
V případě uzavřených systémů jste naprosto závislí na svém account managerovi u agentury, jeho rychlosti a odhodlání.
U open-source systémů naleznete rozsáhlé znalostní báze a fóra na internetu, je naprosto minimální pravděpodobnost, že byste byli se svým problém první. A i kdyby, na fóru WordPress.org je obvyklá doba odpovědi do 2 hodin. Díky popularitě open-source systémů, v případě nouze, vždy najdete schopnou konkurenci, která může případně zaskočit vašeho vývojáře.
Z hlediska podpory, jasně vedou open-source CMS (4:1)
5. Bezpečnost a aktualizace
Nejčastějším argumentem zastánců uzavřených systémů, proč nepoužívat open source systémy je, cituji: „Všechny ty otevřený systémy jsou děravý, proto máme vlastní systém, abychom zajistili bezpečí klientských prezentací.“ A něco na tom bude… Potvrdí to každá statistika, že v drtivé většině úspěšných útoků na web, bylo na webu nasazené open-source řešení. Je to logické – každý zná kód open source řešení a je tedy snadnější najít mezeru a využít ji. Na internetu lze nalézt stovky postupů, jak i naprostý amatér může napadnout stránku na open-source systému. Existují i nástroje, které udělají všechnu práci za útočníka.
Ale stejně bych neřekl, že jsou open-source systémy děravé. Naopak mají většinou o ligu lepší zabezpečení než uzavřené systémy, ale jelikož je jejich kód otevřený, tyto mezery je snadnější nalézt. V případě cílených útoků, kdy útok dělá expert, bude mít 100% aktualizované a zabezpečené open-source CMS mnohem větší šanci ustát útok, než většina uzavřených řešení.
Také je nutné zmínit, že za většinu úspěšných útoků jsou zodpovědné děravé pluginy, nikoliv díry v jádru open-source CMS. Kromě toho je možné podniknout kroky k zabezpečení open-source řešení, které jej vytvoří téměř neproniknutelné. K zabezpečení je dobré vytvořit pravidelné zálohování na externí úložiště. Domnívám se, že většina těch, kteří kritizují bezpečnost open-source CMS je buď neumí nebo, ze zištných důvodů, nechce zabezpečit.
Důvodem, proč jsou open-source CMS bezpečnější je i fakt, že jsou pravidelně aktualizovaná, kdokoliv z milionů uživatelů může oznámit chybu a v dalším updatu již bude chyba opravena. Díky tomu je stále těžší a těžší řešení nabourat. Také jsou řešení aktualizována s respektem k nejnovějším technologiím.
Na druhou stranu, uzavřená řešení jsou aktualizována více méně sporadicky nebo až tehdy, kdy se něco stane. Také nedokážou z dlouhodobého hlediska konkurovat open-source systémům, které pohání schopná komunita (deseti)tisíců vývojářů.
I zde tedy vyhrávají open-source řešení (5:1).
A poslední bod cena? I za předpokladu, že cena prvotní implementace bude cca podobná, cena následné správy bude rozhodně nižší u open-source systému (pokud předpokládáme webové stránky nebo e-shop) – 6:1!
Na základě předchozích závěrů si troufnu tvrdit, že uzavřená řešení nemohou v dnešním trhu obstát. Agentury by buď měly začít implementovat u klientů open-source řešení a nebo uzavřené, ale snadno rozšiřitelné CMS systémy. Samozřejmě, otevírá se tím obrovská konkurence mezi agenturami, která bude jen a pouze ku prospěchu klienta.