Jan Martinek

Nette či neNette?

September 2, 2008

(Disclaimer: Nevím nakolik mne ještě čtou lidé, kteří rozumí alespoň jednomu nečeskému názvu v následujícím textu - píšu tedy spíše pro sebe a náhodné návštěvníky.) Popáté stojím před stavbou vlastního frameworku. Při předchozích pokusem jsem v této situaci příliš neuvažoval o použití frameworku třetí strany, tentokrát spíše opačně - do poslední chvíle jsem výrazně preferoval volbu "nevlastního" kusu kódu, který mi ušetří čas a nervy.

Nejprve jsem zvažoval užití Zend Frameworku, je pěkný, zvládá hodně věcí... a to je zásadní problém. Zvládá hodně věcí, více než využiju a především některé trochu jinak, než bych si přál (například formuláře). Pěkný seriál, z něhož jsem čerpal info, je od Ronnieho na Intervalu a pak též na jeho blozích (starší, novější).

Jako mnoho jiných jsem čekal na Nette Davida Grudla. Nette je krásný framework. Ve spoustě věcí přesně kopíruje mé úvahy a přidává další geniální nápady (spousty!). Od mateřského Nette::Object, přes krásně navržené formuláře Nette::Forms až po debugovací funkce, všechno je velmi pěkné. Posledních pár dní jsem strávil vcelku dost času rozhodováním, zda do toho jít nebo ne.

K Nette mě táhne především praktičnost - David Grudl navrhuje vše tak, aby to bylo praktické a jednoduché k využití, pečlivě si dává pozor na feature creep a jeho skripty jsou rychlé. Už to, že bych mohl pracovat s tak pěkným kódem takového machra, jakým je David Grudl, je argument pro :)

Naproti tomu jsou tu i argumenty proti. Jako každý obdobný one-man vyvíjený framework je vyvíjený tak, aby přesně padl potřebám autora - což se negativně odráží ve dvou ohledech: občas je něco mírně jinak, než bych si přál a především některé části frameworku, které bych si zrovna přál, jsou ve vývoji a nezveřejněné (nedávno třeba formuláře, které považuji za jednu z nejdůležitějších věcí v mém budoucím :) frameworku (a které v každém nové verzi piluju)).

Toto, plus občasná zpětná nekompatibilita (ve vlastním frameworku je toto vcelku usledovatelné, ale v takhle se toho docela bojím), slabší dokumentace a literatura (tutoriálů by bylo víc, nebýt to one man show) a malé množství živých příkladů na prostudování, mě nakonec odradilo od volby Nette.

Ani megavšemocný, pečlivě zdokumentovaný a přístupný, ani malý, superpraktický, geniálně navržený a velmi příjemný framework mi nevyhovuje. Oba mají svá velká plus (i když Nette se mi líbí mnohem víc), nicméně nejspíše opět zvolím cestu nejistého výsledku a dlouhého klepání do klávesnice a začnu splétat vlastní klubko kódu na některých nápadech z mého předchozího fw, opět trochu lépe - hlavně díky zase nově nabytým znalostem z posledních dvou let. Tentokrát by to snad už mohlo vyjít (zatím jsem každou předchozí verzi po pár měsících (s jednou dvouletou výjimkou) vyhodil oknem).