Na navigaci | Klávesové zkratky

Translate to English… Ins Deutsche übersetzen…

Jak se rodí Nette

Dnešní díl bude ještě mnohem obecnější, než ten včerejší, ale příště se už dočkáte konkrétních ukázek.

Jak se vymýšlí framework?

Kdybych řekl, že Nette jsem tři roky vymýšlel a měsíc programoval, nebyl bych daleko od pravdy. Zadání totiž znělo: velmi jednoduchý, malý a intuitivní framework s nímž bude tvorba i údržba webových aplikací úplná brnkačka.

Neodpustím si aktuální vsuvku na téma „jednoduchost“:

Poměry prvků v chemických sloučeninách představují vždy malá přirozená čísla. Klíčem k životu jsou pouhé tři prvky – vodík, uhlík a kyslík. DNA si vystačí se čtyřmi nukleovými bázemi. Příroda má ráda nejjednodušší řešení nejkomplexnějších problémů. Říkáme jim geniální řešení.

Geniální řešení se bohužel nedají vymyslet, ty nás mohou pouze napadnout. Když se to náhodou podaří, intuitivně to poznáme. Jsou to totiž ryze Přírodní projevy, podvědomě nás přitahují a vzbuzují v nás úžas. Jenom debil může prohlásit, že „E=mc2“ je jednovečerová záležitost.

Tím v žádném případě nechci říct, že by se mi kdy podařilo něco geniálního vytvořit. Jen mám chuť a snahu se tímto směrem ubírat. Za dosaženou jednoduchostí tedy stojí stovky hodin přemýšlení, permanentní sebekritická nespokojenost, šťastná náhoda, nebo prostě náhlé osvícení, co vás ve tři ráno vzbudí ze snu. Nikoliv omezenost. To jenom, až mi bude někdo vytýkat, proč dělám ramena, když těch 50kB kódu Nette napíše cvičená opice za víkend.

Konec vsuvky.

Tak ještě jednou, jak se vymýšlí framework?

Předně: vymýšlení frameworku je slepou uličkou. Na tom jsem se řádně vypekl hned v začátcích. Naopak k cíli vede myšlenkový experiment: vymyslíte si zadání nějaké webové aplikace a pokusíte se ji s pomocí úžasného (leč neexistujícího) frameworku napsat. Píšete aplikaci tak, aby se vám psala dobře. Rychle. Přehledně. A také aby byla co nejméně náchylná k chybám.

Pak přijde na řadu údržba. Zadání se změnilo, část aplikace je třeba překopat. Sledujete, jak framework pomůže. Pak zkoumáte jiná zadání, hledáte kolizní stavy atd.

Framework však stále neexistuje a tohle všechno se odehrává jen v myšlenkách. Je to hodně zdlouhavé a snad i náročné, nicméně přináší to nejlepší ovoce. Framework si vysníte na konkrétních a ryze praktických úkolech, a pak teprve napíšete.

Jiné frameworky

Už jsem se zmiňoval dříve, po dobu úvah nad Nette jsem se raději moc nedíval na nástroje jiné. Důvodem je efekt „nadšení-vystřízlivění“. Podíváte-li se na hotové řešení, které vás nadchne, přijmete jeho filozofii a uvažujete jen nad tím, co vylepšit, co změnit, co nechat. Myslíte tedy jen v jeho mantinelech. A to bohužel trvá až do fáze „vystřízlivění“, kdy jej přerostete a uvažujete opět svobodně.

Velmi krásným důsledkem tohoto efektu je skutečnost, že existují stovky frameworků (nejen) pro PHP, které se dají obecně rozdělit do tří skupin a v rámci skupiny se podobají jako vejce vejci.

Nicméně i když postupujete metodou „čistá hlava“, musíte stejně počítat s tím, že objevujete kolo! „Moderní“ programátorské techniky jsou často principy známé přes třicet let. Jenže… v takovém případě by právě průzkum jiných řešení byl velmi inspirující a pomohl by vyhnout se úskalím, která už jiní úspěšně překonali. No, pak si vyberte :-)

Dnes vidím, že návrh Nette se lehce blíží ASP.NET. Tedy v tom, že používá komponenty a událostmi řízený model. V tom se se softwarovými architekty Microsoftu shodnu. Naopak s MVC asi mnoho společného nemá a jestli jsem někdy tvrdil opak, tak jsem záměrně kecal. Z hlediska marketinku je MVC dobrá nálepka.

Licence & spol.

Protože jsem si vybral tu nejsložitější cestu, jak „objevit“ Nette, bylo by velmi špatné si je nechat jen pro sebe. Uvolnění jako open source vidím jako jasnou věc. Také chci zhodnotit ten nekonečný čas, co mi v něm leží. Jak nastavit obchodní model? Pohrávám si s představou, že bych Nette pustil do světa pod nějakou hodně volnou licencí a zdrojem příjmů by byly dobrovolné příspěvky + obchod s věci souvisejícími. Tak uvidíme.

Komentáře

  1. johno http://johno.jsmf.net/ #1

    avatar
    před 11 lety
  2. Tomik #2

    avatar

    Jak jsem psal minule – velmi se těším… :)

    Každopádně uvolnění pod OS vítám a jsem rád, že Ti vydržel elán a ochota dělat něco pro komunitu i po té příhodě s nominací Texy! na nejlepší OS z ČR (a to předpokládám nebyla jediná zkušenost podobného rázu).

    Mám radost a držím palce.

    A stejně jako u Texy!, tak i u Nette – pokud to bude kvalitní framework a ulehčí mi práci (což předpokládám… ;D), tak velmi rád přispěji autorovi na vývoj.

    před 11 lety
  3. Pavel http://www.lasakovi.com/pavel #3

    Teším se až budu moci těch „50kB“ prozkoumat.

    Z toho, že Tě bude někdo kritizovat si nic nedělej. Většinou nic neudělal a jen dělá velká ramena.

    Gratuluji k Texy.

    před 11 lety
  4. yyy #4

    avatar

    Dám všechno co vyžebrám :-)

    před 11 lety
  5. Odin http://ondrejstanek.info #5

    avatar

    Jsem rád, že si Nette nenecháš jen pro sebe a uvolníš ho všem. Snad se kolem vytvoří časem větší komunita, která pomůže s dalším rozvojem.

    před 11 lety
  6. Šlaha http://pcvideo.cz #6

    avatar

    Jak se vymýšlí framework?

    To si zichruješ, až budeš zase někam nominovanej?

    před 11 lety
  7. nebko http://www.nebenet.cz #7

    avatar

    Určitě už sis na nějakém webu musel vyzkoušet, jak Nette hezky funguje..máme se těšit na nových základech postavenou La Trine? ;)

    před 11 lety | reagoval [20] David Grudl [42] zirafka
  8. wizard http://wizifoto.blogspot.com #8

    A kdy už tu Nette bude? My ho chceme!!!

    před 11 lety
  9. llook http://llook.wz.cz/weblog/ #9

    avatar

    Nevím jak ASP.NET, ale Prado toho triku s MVC využívá docela dost. Je fakt, že se to dá nalepit takřka na všechno, viz ten nedávný Lerdorfův spot o MVC bez frameworku.

    I klasické vaření špaget lze označit za „aplikaci vzoru MVC“ – C je Apache, V jsou šablony a ten zbytek je M.

    před 11 lety
  10. rADo http://hulan.cz/ #10

    avatar

    Hehe, tyto články mi začínají připomínat všudypřítomnou „červenou ruku“. Aneb jak se rodí Vodafone. now

    před 11 lety | reagoval [20] David Grudl [27] SQi
  11. Mirek Novotný #11

    Tak marketing zvládáš obstojně, už jsem potkal dva případy, kteří na Nette přísahají, aniž by ho viděli („Pche, Symfony, Mojavi, phpCake? Počkej si na nete, to ti je bomba!“). Uvidíme, jestli ti programování jde alespoň stejně tak dobře.

    Těším se na ten „obchod s věci souvisejícími“. Přijmi prosím moji předobjednávku na osušku s polonahým Davidem a nápisem Nette v rohu.

    před 11 lety | reagoval [14] cita [20] David Grudl
  12. hvge http://hvge.sk #12

    obchod s věci souvisejícími – no ja by som si nejaky ten hrnek alebo slipy s logom nette kludne aj poridil ;-)

    před 11 lety | reagoval [24] Tomik
  13. Michal Hantl http://hantl.info #13

    OT : Já sice ASP nerozumím, ale kdybych měl vycházet z toho, co jsem viděl ve videích na microsoftích stránkách, tak bych se ASP 2.0 nedotkl ani klackem.

    Míchání html, xml, asp, samá tabulka… Přijde mi to jako programování webu pro neprogramátory a zároveň newebdesignery. Nebo se mýlím?

    před 11 lety | reagoval [15] Jakub Podhorský [20] David Grudl
  14. cita #14

    avatar

    #11 Mirku Novotný, heckler is comming back

    před 11 lety
  15. Jakub Podhorský #15

    avatar

    #13 Michale Hantle, teď mluvíte o ASP nebo o ASP.NET? sice jsem v ASP.NET začátečník a ASP jsem viděl jenom z rychlíku ale v případě ASP.NET nevím co myslíte tím mícháním xml, html, asp a samých tabulek…chtělo by to trochu asi upřesnit

    před 11 lety | reagoval [16] Michal Hantl
  16. Michal Hantl http://hantl.info #16

    #15 Jakube Podhorský, Jde o .net, nevěděl jsem, jaký je mezatím rozddíl:) Koukal jsem na „How do I? Videos“ a byl jsem docela zděšený. http://www.asp.net/Default.aspx?…

    Xml struktura webu, asp+html+tabulky = layout. Proti tomu xmlku bych ani moc nebyl. I když bych to nikdy nepoužil.

    před 11 lety
  17. mylan #17

    V tej ukážke nabudúce bude aj „puzzle“ kravičky? Alebo to je „tam“ len tak :-)

    před 11 lety
  18. Milf #18

    Předpokládám, že už v příštím díle se představí i číslo účtu, kam posílat první dotace projektu. Vlastního kódu snad ani netřeba, už jen ta myšlenka ve dvou zápisech na shodné téma si zaslouží ocenit. :-P

    BTW proč mám pocit, že PERKO opět neběží? Čtu si o Nette, bavím se Nette a ejhle – před mé zraky se v posledních komentářích snaží protlačit .NET, dokonce ASP.NET. Za co? 8-)

    před 11 lety | reagoval [20] David Grudl
  19. Maňas http://www.manas.borec.cz #19

    jo, ja sem si přesně takhle framework udělal :)

    před 11 lety
  20. David Grudl http://davidgrudl.com #20

    avatar

    #7 nebko, jedna z prvních věcí bude diskusní fórum (mám obavy z těch zabugovaných opensource projektů) a bug-tracking systém. Ty potřebuju. Samozřejmě si rád vyzkouším i blogovací systém – ale to už jen jako praktický test.

    #10 rADo, #11 Mirek Novotný to víš, na světě jsou tisíce báječných aplikací, o kterých nikdo kromě autora neví, kvůli nezvládnutému marketingu…

    Pod tím „obchodem s věci souvisejícími“ si nemusíte hned představovat merchandising. Ale ani to není špatný nápad ;)

    #13 Michale Hantle, S ASP.NET má Nette společné asi jen to, že jeho tvůrci stejně jako já zvolili architekturu komponent a událostmi řízené modelování. A tím nejspíš i veškerá podoba končí.

    #18 Milfe, Jasně :-) A pokud se do měsíce nenasbírá alespoň $10.000, tak máte útrum a žádné Nette nebude. To by byl v dějinách Open Source unikát :-)

    před 11 lety | reagoval [21] Michal Hantl [27] SQi
  21. Michal Hantl #21

    #20 Davide Grudle, To jsem pochopil z článku;)

    před 11 lety
  22. Ivan #22

    avatar

    Takze teraz nas caka 30 dielny serial, plny nadherneho kodu, pri ktorom budeme vsetci slintat a na konci ktoreho bude 50kB zazrak.

    Nechapem, doteraz som videl len serialy, ktore popisovali kod ktory bol k dispozicii.

    Mam pocit, ze mi staci tucny, nafuknuty Smarty, kde mozem zasuvat a vysuvat co potrebujem, aj ked mi bude luto automatickeho prenasania parametrov v URL.

    před 11 lety
  23. jules #23

    avatar

    BSD style licencia by bola fajn :-)

    před 11 lety
  24. Tomik #24

    avatar

    #12 hvge,
    Já bych si jeden hrnek taky vzal…

    před 11 lety | reagoval [26] hvge
  25. noregret #25

    avatar

    Líbí se mi ta myšlenka, kdy je zohledněná praktická část využití frameworku, který tak vychází ze skutečné praxe a ne z pouček a ryze akademických diskusí. Jsem náramně zvědavý, jak se to bude dál vyvíjet a těším se, že budu třeba moci přiložit ruku k dílu! :-)

    před 11 lety | reagoval [30] David Grudl
  26. hvge http://hvge.sk #26

    #24 Tomiku, Ty brdo, az som dostal chut na ranne kakavko s rozkom a maslom :-)

    před 11 lety
  27. SQi http://strzibny.name #27

    avatar

    #10 rADo, no jasně:-)

    #20 Davide Grudle, aby se pak nette nešířilo mimo zákon..:-)

    před 11 lety
  28. Zdenda #28

    avatar

    Na úvod bych rád řekl, že na znovuobjevování objeveného není nic špatného – je to vlastně princip učení složitějších věcí…ale framework…

    Nejlepší ovšem je obalit první dva články prázdnými frázemi (nechápu místní slintající diskutující.) Vybírám několik perel, nebo snad až neuvěřitelných tvrzení.

    • Víte proč jsou poměry prvků v chemických sloučeninách malá přirozená čísla – atomy jsou zastoupeny ve sloučenině jaksi vcelku – nemůže tam být půlka atomu. To, že jsou čísla malá souvisí se stabilitou vazeb a obalu, ale co je MALÉ číslo?
    • K prvkům života bych si dovolil přiřadit ještě dusík (bez něj by to opravdu nešlo)… obvykle se uvádí ještě fosfor a síra…

    Úlet – jestli se Nette opravdu lehce blíží ASP.NET tak Vás obdivuji. Zřejmě máte na mysli serverové ovládací prvky, obousměrný databinding, validaci …blábolení o hezkých url mě moc neuspokojuje.

    Po pravdě řečeno, chtěl jsem napsat už do diskuze pod článkem o asp.net, ale po tomto výtvoru jsem se konečně odhodlal – pokud sperete technologii, kterou ani pořádně neznáte a pak napíšete dva bezobsažné články o geniálním Nette, tak tu něco smrdí.

    před 11 lety | reagoval [29] freddy [30] David Grudl
  29. freddy #29

    avatar

    #28 Zdendo, nechápu místní slintající diskutující – když programátor, který UŽ něco dokázal, napíše že připravuje framework který by měl stát za to, tak je to důvod se o to zajímat. Zadné slintani nevidim, jen normalni zajem.

    malá přirozená čísla atd: co proboha řešíte, to jste nepochopil myšlenku? Si to přečtěte ještě jednou.

    před 11 lety
  30. David Grudl http://davidgrudl.com #30

    avatar

    #25 noregrete, vždycky jde o to najít správnou míru abstrakce. Akademický pohled v tom má jasno – nejlepší je abstrakce totální. Praktický pohled je značně mírnější, ale nejasný, chce to hledat a zkoušet.

    #28 Zdendo, nedělám si iluzi, že bych (skalní) zastánce ASP.NET dobrým frameworkem přetáhl k PHP, ani neočekávám projev uznání nad čímkoliv v PHP :-) Cílovou skupinou jsou naopak programátoři, kterým záleží i na hezkých URL, neboť ví proč. Poslední odstaveček jsem ale nepochopil – co tu konkrétně smrdí?

    před 11 lety
  31. pavel #31

    Dej to pod GPL a prodavej komercni licence. MySQL se takhle uzivi, uvidime jak ty :)

    před 11 lety | reagoval [33] llook
  32. Tomik #32

    avatar

    dgx už takhle šíří Texy!, těžko říct, jak se s tím dá u takovýhle projektů uživit, to se zeptej přímo jeho…

    před 11 lety | reagoval [35] David Grudl
  33. llook http://llook.wz.cz/weblog/ #33

    avatar

    #31 pavle, Ale MySQL lze v pohodě používat v komerčních aplikacích, protože ty nemají povahu díla odvozeného. Těžko říct, jestli by jim kšefty klapaly stejně dobře, když by neměly tak silnou uživatelskou základnu. Nevím o žádném aplikačním rámci v PHP, který by produkoval tímto způsobem zisk, všechny rozšířenější jsou MIT/BSD/LGPL. Je to tak proto, že to ještě nikdo nezkusil?

    Jestli chceš zavést dobrovolné příspěvky, tak určitě udělej stránky i v angličtině a zaměř se víc na propagaci v anglofonní části Internetu, na Čechy se víš co. A pořiď si PayPal účet – jednak si nejsem jistý, jestli lze běžný osobní účet používat k podobným účelům (je to de facto veřejná sbírka) a jednak mezinárodní bankovní operace (pokud se zaměříš na západ) jsou pro mikroplatby strašně nevhodné.

    před 11 lety | reagoval [35] David Grudl
  34. binarniladin http://binarniladin.bloguje.cz/ #34

    DGX ty si zapoměl na síru? Pche. Tak to sem teda pohoršen. Bych si to Nette nekoupil ani kdybych věděl k čemu je to dobrý :-)

    před 11 lety
  35. David Grudl http://davidgrudl.com #35

    avatar

    #32 Tomiku, #33 llook V čechách si prodejci komerčních licencí a doplňku Open Source aplikací žijí na velmi vysoké noze. Z příjemců dobrovolný dotací jsou rázem miliardáři :-)

    Zcela upřímně, vyhovovalo by mi dělat návrháře a programátora zajímavých Open Source aplikací na plný úvazek, ale to je běh na dlouhé trati s velmi nejistým výsledkem. Samozřejmost je orientace na svět. Je třeba získat obrovské množství příznivců, dobře nastavit pravidla byznysu, vyřešit platební systém (Paypal v ČR je problém & Paypal vůbec je problém), vyřešit účetní záležitosti (dobrovolný příspěvek na firemní účet = smrt účetní). A těžko lze srovánat s jinými modely, protože každý projekt je docela jedinečný.

    Je tedy velký rozdíl mezi „příjemné zpestření“ a „uživit se“.

    před 11 lety | reagoval [36] hvge
  36. hvge http://hvge.sk #36

    #35 Davide Grudle, Ako free navrhar open source rieseni sa da asi tazko uzivit. Jedine dlhodobo stabilne riesenie je zamestnat sa ako zamestnanec nejakej korporacie, ktora si to moze dovolit. Pre taku firmu to moze byt navyse celkom dobre PR.

    před 11 lety
  37. johno http://johno.jsmf.net/ #37

    avatar

    Ak sa nikto nenahnevá, tak sa vrátim späť k článku.

    Naopak s MVC asi mnoho společného nemá a jestli jsem někdy tvrdil opak, tak jsem záměrně kecal. Z hlediska marketinku je MVC dobrá nálepka.

    MVC je tak široký pojem, že si vlastne asi ani nekecal. MVC si viem predstaviť aj na jednom komponente s udalostami.

    Model je logika komponentu, View je šablóna komponentu, Controller je nejaký Invoker, Front Controller, Dispatcher,… čo zvonka zavolá tú správnu metódu pri správnom evente a vypľuje výstupy.

    před 11 lety
  38. Mirek Novotný #38

    tak určitě udělej stránky i v angličtině a zaměř se víc na
    propagaci v anglofonní části Internetu

    Zaměření na světový trh znamená nutnost mít světovou kvalitu produktu. MySQL podmínku splňuje, mnohé české open-source stěží.

    před 11 lety
  39. Marek #39

    Rád bych se zeptal dgx-e na takovou věc, co už mě zajímá delší dobu ale nevím, jestli mě odpovíte po pravdě.

    Kolik lidí je dgx? To je fakt jeden člověk David Grudl nebo to je skratka pro víc lidí? Ani to nevypadá jako přezdívka, fakt spíš jako zkratka. Zkuste si schválně v RSS čteče porovnat časy kdy třeba sem píše dgx komentáře nebo články. Odpoledne, dopoledne, večer, v noci, ve 2hod ráno, v 6 ráno. Spí někdy? Nebo to nechápu.

    Děkuji za odpověď.

    před 11 lety | reagoval [40] David Grudl [41] Borek [44] Roman
  40. David Grudl http://davidgrudl.com #40

    avatar

    #39 Marku,

    Kolik lidí je dgx?

    Když si zrovna nezapomenu vzít chlorpromazin tak jeden :-)

    Spí někdy?

    No jistě! Ale střídáme se.

    před 11 lety
  41. Borek http://borber.com/blog/ #41

    #39 Marku, Správný vývojář nikdy nespí :)

    před 11 lety
  42. zirafka http://www.zirafka.cz #42

    avatar

    #7 nebko,

    ..máme se těšit na nových základech postavenou La
    Trine? ;)

    Něco jako oblíbená dětská karetní hra „záchod“?

    před 11 lety
  43. mach http://www.sweb.cz/machweb #43

    To jenom, až mi bude někdo vytýkat, proč dělám ramena, když těch 50kB kódu Nette napíše cvičená opice za víkend

    Gauss (myslim) na zaver nejakeho dopisu napsal „Omlouvam se, ze je ten dopis tak dlouhy, ale nemel jsem cas napsat ho kratce.“

    před 11 lety
  44. Roman #44

    avatar

    #39 Marku, Ono to sice nie je zdrave, dokonca to ani nezlepsuje produktivitu ani nezvysuje efektivitu prace, ale programatori, dizajneri, umelci a podobne maju tendenciu poncovat a rozne si natahovat cas. Potom to obycajne naraz dospia, alebo ochoreju.

    před 11 lety
  45. Lovermann http://lovermann.blogspot.com #45

    No jasne, neumis rozeznat ASP od ASP.NET ale jak to hodnotis :) Takove aroganci se muzu jen smat. :)

    před 11 lety | reagoval [46] roman
  46. roman http://www.c64.sk #46

    avatar

    #45 Lovermanne, Aha toto je ten co ho Artur spominal.. tzv „kolemjdouci“.. ;-) ;-) :-) ;-) ;-) :-) ;-) ;-) :-)

    před 11 lety

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.