206 komentářů k článku David Grudl: Marketing Nette dělají spokojení uživatelé:

  1. Radek N.

    Re: David Grudl: Marketing Nette dělají spokojení uživatelé

    Jednou si snad najdu čas a Nette se naučím :). Docela mě překvapilo, že Nette sahá až do roku 2004. V té době jsem teprve zjišťoval co je HTML a byl jsem moc dobrý kamarád s Frontpagem :).

    1. Petr

      Re: David Grudl: Marketing Nette dělají spokojení uživatelé

      Jo, jo, taky už jsem zkouknul pár kusů kódu Nette, bohužel časově bych to nezvládl, škoda :-(

  2. Rubysta

    Nette 2.0

    Na Nette 2 se opravdu těším. Možná mě to přinutí k návratu zpátky k PHP :-) Jinak místo generátoru administrace jsou komponenty – super řešení ;-) Jinak myslím, že Nette kniha by se tu dost ujala.

  3. srigi

    Symfony2

    Som velmi rad, ze sa David zmienil o skoleni, ktore absolvoval u Fabiena. Vlasten som jeho nazor na toto skolenie este nikde nevidel. A musim napisat, ze aj tento drobny naznak mi staci aby som si medzi PHP frameworkami vybral sampiona.

    Ja zelam Davidovi vela uspechov pri naplnovani hlavneho ciela pre rok 2011 – dostat Nette do sveta. Verim, ze sa to podari a velmi sa tesim na „AHA moment“ na weboch ako je Nettuts+ a pod.

    1. fanboy

      Re: Symfony2

      Výběr frameworku by mělo být pragmatické rozhodnutí a ne fanboy názor. Stačí se podívat na témata dvou posledních PHP konferencí http://www.phpday.it/sessions/2011 a http://www.phpconference.nl/schedule/. Zatímco minulý rok bylo tématem Fabiena DI (a díky tomu se nejpokročilejší programátoři v Nette začali o DI zajímat), letos to je ESI (bude to tématem pro Nette na příští rok?).

      A hlavně, pro PHP 5.3+ začínají vznikat úzce specializované knihovny kódu, které se stávají standardy pro řešení daných problémů:

      • Behat (BDD),
      • Imagine (práce s obrázky),
      • Assetic (práce s css a js),
      • Monolog (logování),
      • Doctrine2 (ORM, ODM, OXM, …),

      Zajímavou otázkou je, který PHP framework má pro všechny tyto nástroje připraveny moduly? Odpověď lze nalézt na http://symfony2bundles.org/bundle – zatím tam však chybí LatteBundle a NetteBundle ;).

      1. Michal

        Re: Symfony2

        Ty knihovny, ktere jsi vyjmenoval jsou vsechny z komunity kolem sf, tak kde jinde by asi na to mely byt moduly? :-)
        Rekl bych ze jsi popsal podmnozinu PHP – sf, ne PHP jako takove.

        Ale souhlasim z jednou veci, ze je treba si vybrat FW podle hodne kriterii a jedny z tech nejdulezitejsich je u me podpora komunity (cim vetsi tim lepsi), co nejkratsi a nejprijemnejsi cesta od zadani ke spusteni a stabilita.
        Kvuli vsem temhle atributum a hlavne kvuli te komunite se soustredim na sf taky, protoze neni nic horsiho nez kdyz mam problem, ktery zadam do google a nic nenajdu.

        Bohuzel nemam dost casu na to, abych se venoval dalsim FWs a budoval si fond znalosti diky kterym bych dokazal zvolit na kazdej projekt to idealni, zatim mi musi stacit jeden.

      2. Jiří Kuneš

        Re: Symfony2

        Jenže jiné jazyky mají takových knihoven mnohem víc. Velká část z nich je kvality, jakou jsem v PHP málokdy viděl. Viz http://ruby-toolbox.com/

        PHP je tu s námi dost dlouho a nic jako „ruby gems“ stále nemá. Přitom tu byl pokus PEAR, který místo aby programátoři vylepšovali, tak ho nikdo neměl rád. Možná je to proto, že gems jsou většinou hostované na GitHubu :)

        Nový jazyk přináší novou kulturu, čerstvou krev a nové nápady. Proč se nesvézt na nové vlně?

      3. David Grudl

        Re: Symfony2

        DI, kešování, práce s obrázky, CSS, JS, ORM, logování – to jsou v PHP témata minimálně posledních pěti let. A po celou dobu vznikají (a umírají) specializované knihovny, které se „stávají standardy“. Take it easy :-)

        1. fanboy

          Re: Symfony2

          V PHP je to s těmi standardy trochu problém. Vždy se najde spousta programátorů, co vynalézá vlastní standardy (tím netvrdím, že je problém vždy na jejich straně). Nicméně za standardy v PHP se dají považovat:

          Autoloading – PSR0,
          Formátování – PEAR CS, Zend CS,
          Kontrola správnosti formátování – CodeSniffer,
          Unit testy – PHPUnit,
          Statická analýza kódu – PDepend,
          ORM – Doctrine1 -> Doctrine2,

          Ono znát jen nějaký framework nestačí. K programování patří testování, kontrola kvality kódu apod. Proto se Nette se svými originálními formátovacími pravidly, originálními testy, originálním zacházením s jmennými prostory a dalšími originálními věcmi, stává naprostou originalitou v celém vývojovém cyklu :)

          No a jestli se stanou knihovny vyvíjené komunitou kolem Symfony2 standardy, pak jenom dobře. Možná i díky tomu bude mít PHP svoje egg nebo gem balíčky https://github.com/naderman/composer.

          1. David Grudl

            Re: Symfony2

            Originální formátovací pravidla? Originální zacházením se jmennými prostory? To by mě zajímalo, můžeš uvést konkrétní příklady? Začínám totiž mít pocit, že jsi přišel jen plácat z vody a kázat Symfony ;-)

            1. fanboy

              Re: Symfony2

              Standardní formátovací pravidla jsou PEAR. Tato formátovací pravidla jsou používaná množstvím knihoven (PHPUnit, Zend Framework, Behat, Doctrine, Symfony2, …). Tím se stávají tato formátovací pravidla standardem, protože jsou přijata množstvím rozdílných projektů. Nette nerespektuje například používání 4 mezer pro odsazení.

              Standardní práce s jmennými prostory je PSR0. To znamená, že jmenné prostory odpovídají adresářové struktuře. Tuto konvenci používá Zend Framework, Doctrine, Behat, Lithium, Assetic, …. Opět se na tomto postupu shodují velké PHP knihovny, takže se PSR0 stává standardem. Nette nerespektuje.

              Pro unit testování se používá standardně PHPUnit. Používá ho Doctrine, pDepend, Twig, …. Opět se na něm shodlo mnoho PHP projektů, a tak se tento postup stává standardem. (Nette používá nějaký vlastní systém pro testování).

              Nerozumím Vaší reakci o kázání Symfony. PHP není náboženstvím, ale programovacím jazykem. Jednotlivé knihovny se mohou používat zároveň a dokonce je to velmi prospěšné. Toto neustálé vyhrocování mezi Nette x Symfony2 je asi u mnoha lidí oblíbené (něco jako NotORM x Doctrine2 u další skupiny lidí). Já jsem jen uvedl, že celý vývojový proces je sestaven na spolupráci různých PHP knihoven (mnohdy i knihoven z jiných programovacíh jazyků – např. Sass) a je velmi dobré, pokud dodržují určité navržené standardy. Pro programátora je pak jednoduší se v nich orientovat.

              1. David Grudl

                Re: Symfony2

                Hason, že? ;-)

                Pokud nazýváš používání tabulátorů místo mezer „originálními formátovacími pravidly“, pokud tvrdíš, že Nette nerespektuje PSR0, což není pravda (byť by vůbec respektovat nemuselo, má k tomu nástroje, které se u jiných frameworků teprve pomaličku rodí), tak myslím, že už není potřeba pokračovat v diskusi.

                Snad jen dodám, že z komentářů je zjevné, že ono „neustálé vyhrocování mezi Symfony a Nette“ je oblíbené jen u tebe. Ty oblibuješ uniformitu, já zase pestrý svět s možností volby.

                  1. David Grudl

                    Re: Symfony2

                    Ano, složka common je taková roztomilá výjimka, aby existovala proti Nette nějaká munice :-)

                    1. Michal

                      Re: Symfony2

                      .. ze se do toho vkladam, nektere standardy by me opravdu chybely, konkretne PHPUnitu je skoda minimalne z jednoducheho duvodu.
                      Ve vsech IDE ktera stoji za to maji primou podporu, coz v mnohem zrychluje praci a hlavne to setri mysl programatora pred prepinanim (UI testu je integrovano do UI IDE).
                      Obecne vzato ma framework z meho pohledu jednu velikou vyhodu v tom, ze uci programatory jednotnosti a krati dobu potrebnou na zvykani si pri migraci projektu. FW by z techto duvodu urcite mel i nutit lidi k jasne danym konvencim.

                      To jsou me nazory, nikdo dalsi je nemusi respektovat, myslim ze to podstatne prijde pro Nette az s vykouknutim za hranice kde bude postaveno do souboje s ostatnimi obecne pouzivanymi FWs.

                      1. David Grudl

                        Re: Symfony2

                        Ale ty přece netestuješ framework, takže by ti mělo být v podstatě jedno, co se používá k jeho testování. Nebo jsem něco přehlédl? Na testování používám o něco jednodušší nástroj, který se od PHPUnit liší v tom, že kód není zapsán ve třídách – velmi jednoduše se mi potom kód krokuje v IDE. Přepsat do PHPUnit by se dal kdykoliv, snadno, automatizovaně, ale zkomplikovalo by mi to práci.

                        Jakým způsobem ty třeba krokuješ v IDE testy?

                          1. David Grudl

                            Re: Symfony2

                            Díky, ale tohle je spíš popis debugování obecně. Mně se zdá zdlouhavé/složité se v dobrat až na příslušnou řádku v testu. Prostě test je jen třída a nevím, od kterého souboru mám začít krokovat, abych dospěl k cíli.

                            1. Michal

                              Re: Symfony2

                              Ja testy nekrokuju, ja si jimi akorat kryju co napisu.
                              Kdykoli se potrebuju presvedcit ze je vsechno ok, spustim testy. Kdyz jsou dobre napsane, tak vim, ze mi staci zelena linka nakonci a nemusim sahnout na prohlizec.
                              (Samozrejme za predpokladu ze pisu i Behaviour testy).
                              Ja uz se bez toho neobejdu, jsem zaprve linej testovat neco rucne a zadruhe uz mi to milionkrat vytrhlo ze zadku takovou trisku na kterou bych rucne neprisel, takze by se v klidu dostala na produkci, kde by se samozrejme projevila v nejmin vhodnou dobu.

                                1. Michal

                                  Re: Symfony2

                                  Jestli myslis co delam kdyz mi nejakej z testu zcervena, tak to je jednoduchy.
                                  V zakladu spoustim testy souhrne jako asi kazdej (co testovaci trida to radek na cli), pokud se neco podela, spoustim konkretni tridu (BDD scenar) co se podelala a tam vidim kterej assert nesedi.

                                  To je preci standardni postup, nevim co myslis krokovanim, ale prijde mi ze to o cem mluvis resim debugem.

                                2. Jan Tichý

                                  Re: Symfony2

                                  Pokud potřebuješ krokovat testy, není to spíš známka špatně napsaných a strukturovaných testů? V jakém případě Ti nestačí standardní PHPUnit informace, který konkrétní assert ve kterém konkrétním testu se kterými konkrétními hodnotami selhal?

                                  1. David Grudl

                                    Re: Symfony2

                                    I ty Brute? ;-)

                                    Je mi líto, že se programátorské řemeslo za posledních 30 let přesunulo z plnohodnotných IDE do primitivních poznámkových bloků (obzvláště na platformě Mac), ale jsem holt stará generace, co plnohodnotné IDE používá, kód krokuje a nevidí v tom známku špatně napsaného a strukturovaného kódu, ale známku vyšší úrovně práce. A je fuk, jestli jde o aplikaci, testy nebo cron skripty.

                                    1. Oldis

                                      Re: Symfony2

                                      Dokud sem delal v c++, pouzival sem samozrejme krovonani pri debugovani, ostatne byl to jedinej zpusob jak zjistit co se zrovna deje spatne, a vetsina chyb vychazela vetsinou z neosetrenych ukazatelu. Po tom co sem se zacal zivit s php, kde sem zacinal v notepadu(nekolik dni), pak v pspadu(cca tyden), dreamweaveru (nekolik mesicu), az sem skoncil u eclipse, ktera mi zrovna sedi nejvic, sem si na krokovani odvykl, zacal sem hojne pouzivat var_dump a vetsina chybovejch hlasek nebo vyjimek me vetsinou navede, k mistu kde je problem. jinak na krokovani nevidim nic spatneho, ale kdyz si vzpomenu jak to probihalo v c++, kolik casu sem stravil krokovanim, tak mi to nijak nechybi.

                                  2. Borek Bernard

                                    Re: Symfony2

                                    Krokování dá i odpověď na otázku, proč selhal. Krokovat není potřeba vždy, ale občas se to hodí.

                                  3. Martin MalýAutor příspěvku

                                    Re: Symfony2

                                    „V jakém případě Ti nestačí standardní PHPUnit informace, který konkrétní assert ve kterém konkrétním testu se kterými konkrétními hodnotami selhal?“ – přeci v případě, když máš assert tam, kde si myslíš, že by mohl být, a ne tam, kde má být! ;)

                                    Já se nechci pouštět do programátorských debat, ale – nejsou testy a debugging rozdílné věci? S rozdílnými „use cases“, tudíž vzájemně nezaměnitelné?

                                    1. Oldis

                                      Re: Symfony2

                                      unit testy se hodi predevsim na to, ze se nechaji testovat krajni hodnoty a chovani jednotky pri nesmyslnych vstupech, cili pokryti vsech pripadu co mohou nastat, krokovani ma smysl v okamziku, kdy sem se ne zcela jasne nekde upsal, a nevim co se deje a tedy to potrebuji zjistit, v c++ se mi to stavalo pomerne casto a jak sem rekl vesmes slo o praci s ukazateli, coz se v php jen tak nestava.

                                      1. MW

                                        Re: Symfony2

                                        V PHP jsou možné dva přístupy ladění – nastrkat na všechna možná a nemožná místa var_dump a ještě trefit, v kterých proměnných by mohl být nesmysl a refreshovat jako o závod, když jsem na nějaký výpis zapomněl.

                                        Anebo nainstalovat debugger, krokovat si to řádek po řádku a průběžně koukat do všech proměnných, které mě během toho napadnou.

                                        Pokud to aspoň trochu jde, tak volím postup číslo 2.

                                        1. Martin MalýAutor příspěvku

                                          Re: Symfony2

                                          To je debugování. Řeč šla o testech.

                                        2. Michal

                                          Re: Symfony2

                                          Jeste je tu jina moznost.
                                          Napsat si v testech co od aplikace ocekavam a postupne to natirat na zeleno.
                                          Ze si mezitim potrebuju prohlizet obsah promennych je jasna vec.

                                          Nedokazu uverit kam az se uhnulo od me poznamky na adresu chybejici podpory PHPUnit v Nette.
                                          delejte si co chcete, tahle diskuze me jen utvrdila v tom, ze Nette neni nic pro me.

                                        3. David Grudl

                                          Re: Symfony2

                                          Jde o chybějící _podporu_ nebo o to, že autor PHPUnit _nepoužívá_?

                                          Pokud to první, jsem připraven o tom diskutovat a rád podporu doplním. Jen potřebuju vědět, jak by měla konkrétně vypadat (nejlépe asi začít na fóru.) Pokud jde o to druhé, pak to patří to do stejné skupiny „cotipotom“, jako nářek jednoho komentátora, že Nette není vyvíjené na Linuxu.

                                        4. Martin MalýAutor příspěvku

                                          Re: Symfony2

                                          Nechápeš důležitost toho, aby byl open source vyvíjený v open source OS? To je ale elementární požadavek, asi jako aby UI bylo navrhováno na Macu!

                                        5. Michal

                                          Re: Symfony2

                                          Nevim co kdo pouziva a je mi to uprimne jedno, ale jsem uz nejakou dobu zvyklej (skoda ze jsem na to neprisel driv) na TDD.
                                          Je dobre ze na PHP vznikaji podobny obecne respektovany baliky jako treba na ruby, protoze to vede k velke podpore od autoru, kvalitni dokumentaci, jednodussi praci a v neposledni rade v podpore u ostatnich nastroju.
                                          Pokud jde o vyber mezi malym treba i lepsim neznamym nastrojem a konkurencnim obecne znamym standardem volim vzdy velkej obecne podporovanej, hlavne kvuli podpore krizem krazem vsude mozne a veliky pravdepodobnosti provazani jeho funkcnosti s dalsimi nastroji jinde.
                                          =====
                                          Co napisu budu psat o v0.9, ve ktere jsem resil jeden projekt a musim rict ze to byl navrat do dob obnovovani prohlizece a pokusu dostat stranku do vsech moznych i nemoznych situaci jak zapricinit chybu a to nebylo prijemny.
                                          v2 jsem zatim nevidel, ale z rozhovoru vim, ze nektere veci o kterych budu [sat uz jsou resene jinak, tak to ber s rezervou.
                                          =====

                                          1) Na to aby se do Nette dalo zakomponovat testovani, bylo by treba umoznit Nette kompletne spravovat databazi. Testy potrebuji sva vlastni data, takze by se z toho podle meho nazoru muselo zase delat symfony a pridat nejake ORM, ktere si tu datazi bude samo resetovat alepson pro testovaci prostredi (sorry, ja chapu ze te to s tim sf sere, ale tyhle veci tam maji fakt vymysleny docela dobre)
                                          2) Pokud ma byt podpora unit testingu uzsi, bylo by potreba pridat nenavidene generatory kodu, ktere by spolu s modelem generovaly na prani testy i presentery a sablony. Web development je repetetivni cinnost a je treba vyclenit lidsky faktor i frustraci s opakujicich se cinnosti a tech je dost- generator, generator, generator.
                                          3) Zaintegrovat behaviour test nastroj (dneska asi pripada v uvahu jen Behat) – kdo nezna, muze mrknout na BDD treba tady http://railscasts.com/episodes/155-beginning-with-cucumber, nebo tady http://scotland-on-rails.s3.amazonaws.com/1A06_JosephWilk-SOR.mp4 princip je vsude stejnej, na ruby, i v php, rails pouze automatizujou nektery procedury v ramci integrace testu do projektu..

                                          Neber to jako utok na Nette, ja vlastne obdivuju ze se tomu tak venujes, chapu ze abych o to mel zajem, muselo by se to menit v neco co to byt asi nema, ale nechtel jsem tvuj konstruktivni prispevek nechat bez odpovedi.
                                          Kazdopadne si myslim, ze minimalne to BDD by se tam integrovat urcite melo.

                                        6. Tharos

                                          Re: Symfony2

                                          Tohle nechápu. Já osobně používám přístup TDD v Nette (sice jen pár měsíců, ale tak pár webových aplikací už jsem tímto způsobem k velké spokojenosti napsal) a nenarazil jsem na žádný problém.

                                          Mluvíme vůbec o tom samém? http://en.wikipedia.org/wiki/Test-driven_development

                                          Co brání použití této metodiky v Nette? V čem je problém resetovat databázi v setUp() do nějakého výchozího stavu ($dibiConnection->loadFile(‚vycho­zistav.sql‘))? O automatické generování testů, jejich spouštění a kompletní správu se mi stará IDE.

                                        7. Landy

                                          Re: Symfony2

                                          Ja teda nevím jak v Nette, ale obecně si myslím, že unit testování je něco trošku jiného. Například pokud vyloženě netestuješ DB vrstvu tak si přece přístup do DB simuluješ nějakou in memory kolekcí dat a né že si děláš nějaký setup a teardown dat v db :)

                                        8. Tharos

                                          Re: Symfony2

                                          V jednotkových testech testuješ vždy jednu funkcionalitu (typicky jednu metodu nějaké třídy) a pro veškeré závislosti, které testovaný kus kódu má, se vytváří stub/mock objekty. To proto, aby se v daném jednotkovém testu neřešila chyba, kterou mají eventuálně jiné části aplikace a kterou v daném unit testu záměrně nechceš řešit.

                                          Nicméně je běžná praxe, že se knihovny 3. stran (tj. třeba i databázové vrstva) nemockují, protože pak by 95% kódu testu mohlo být věnováno vytváření stub/mock objektů. To by bylo těžce kontraproduktiv­ní… No a pak je zbytečné vytvářet ještě kolekce dat někde bokem, když lze pracovat normálně s databází naplněnou testovacími daty.

                                        9. Landy

                                          Re: Symfony2

                                          Tak s tímto názorem sem se tedy za celou dobu studia unit testování nikde nesetkal. Všude se hojně doporučuje mít vše napsané proti rozhraní a né si tam dávat DB už jen z důvodu rychlosti spouštění testů. Testování proti DB si dokážu představit v nějakých integračních testech ale rozhodně ne v unit testech.

                                        10. Tharos

                                          Re: Symfony2

                                          Tak tady máš pár názorů od jiných autorů: http://osherove.com/blog/2004/12/10/i-changed-my-mind-mock-objects-are-wrong-for-database-unit-t.html, http://www.xaprb.com/blog/2008/08/19/how-to-unit-test-code-that-interacts-with-a-database/ … A další viz Google (tyto jsem našel během pár vteřin hledání).

                                          Pro mě osobně je mockování databázové vrstvy, které důvěřuji a která má své vlastní testy od jejích autorů, naprosto zbytečný overhead a ztráta času. Navíc tím roste objem kódu samotných testů a zvyšuje se pravděpodobnost vzniku chyby v samotných testech.

                                          Tím ale nikomu nechci brát jeho styl a přesvědčení. ;)

                                        11. Tharos

                                          Re: Symfony2

                                          Ještě bych doplnil, že k přímé práci se skutečnou databází v unit testech (testující kód, který s databází pracuje) navádí i PHPUnit samotný a je na vyprázdnění databáze a její uvedení do výchozího stavu přímo vybaven. Viz manuál: http://www.phpunit.de/manual/3.5/en/database.html

                                        12. landy

                                          Re: Symfony2

                                          samozřejmě pokud budu chtít testovat nějaké volání funkce která má v popisu práce zapsat data do db tak jí nějakou db budu muset poskytnout. Já se k tomu ale snažím přistupoat tak že aplikace s DB komunikuje přes nějaké moje IRepository které si pak pro účely testování namockuju nebo udělám fake atd. Já osobně si s tím hraju v asp mvc takže tam je to pak jendoduché a takové repository už má jen odkaz na Entity fw který samozřejmě netestuju protože to je kód třetí strany.

                                        13. Tharos

                                          Re: Symfony2

                                          Jasně, ale ty to máš zjednodušené o to, že nějaký databázový mapper, který ve výsledku jako jediný komunikuje přímo s databázovým serverem, je už kód třetí strany. :) Teď mi svitlo, že v podstatě mluvíme o tom samém. Ty jednotkově testuješ nějakou část aplikace a mockuješ IRepository, já jednotkově testuji i to repository (protože je to například můj kód) a v něm používám DBAL, které ale už netestuji (kód třetí strany). Ty máš v ASP.NET MVC podporu pro snadné mockování Repository, což je super, zatímco já v PHPUnitu mockování použité DBAL nijak usnadněné nemám. A jelikož by to bylo pracné, tak prostě DBAL důvěřuji a používám jen nástroje pro správu obsahu a struktury testovací databáze.

                                        14. Landy

                                          Re: Symfony2

                                          Sem rád,že jsme se schodli :) ja vlastně původně reagoval na někoho jiného. A pokud bych se měl vrátit k té podpoře unit testování v Nette (s nette jsem pořádně nepracoval a proto jen domýšlím) která snad byla jako prapůvod tohohle vlákna, tak možná měl autor na mysli testovatelnost controlleru a podobných míst které přímo komunikují s mvc systémem fw. Vím z vlastní zkušenosti, že například v zendu to byl taky docela problém až oni nakonec sami napsali nějakou podporu pro testování controlleru. Ale jak říkám nemám přímou zkušenost a pod tohle jde v Nette naprosto bez problémů tak se klidně smažu :)

                                        15. Tharos

                                          Re: Symfony2

                                          U Nette se presentery jako celek testují v podstatě pouze akceptačními testy (vlastní zkušenosti + to, co jsem viděl jinde). Bohužel presenter má takových závislostí, že namockování všeho by byla opravdu neskutečná práce a pravděpodobnost nasekání chyb v samotných testech by hraničila s jistotou. Tady by možná opravdu šlo situaci vylepšit, ale přijde mi, že když se poctivě napíší jednotkové a integrační testy a to celé se doplní akceptačními testy celých presenterů, je to tak robustní pokrytí aplikace testy, že se mohou unit testy presenterů oželet.

                                          Nevím, jestli je nějaký PHP MVC framework v tomhle nějak výrazně dál. Co jsem slyšel, tak v Zendu je to stejná bída… Dělat opravdový unit test nějakého controlleru je stejný porod (ale mýlím-li se, opravte mě někdo). Samozřejmě je mi jasné, že jsou platformy, které jsou v tomhle dál (namátkou .NET, Java).

                1. fanboy

                  Re: Symfony2

                  Po prohlédnutí aktuálního kódu Nette není PSR0 dodržováno ;) PHPUnit != Symfony, Doctrine != Symfony, Zend Framework != Symfony. Všechno mimo Nette není Symfony :)

                  1. paranoiq

                    Re: Symfony2

                    PSR0 je k ničemu. programátorovi to zápis ani čtení kódu nijak nezjednodušuje. v debatě o nových jmenných prostorech v Nette jsem byl proti tomu, aby se jmenné prostory komplikovaly až na úroveň adresářové struktury

                    úloha adresářů a úloha jmenných prostorů se totiž dost zásadně liší. to první řeší katalogizaci souborů s kódem a slouží především autorovi (autorům) frameworku. to druhé má řešit lepší čitelnost kódu a jednoznačnost názvů a slouží především uživatelům frameworku

                    (argument davem neuznávám. to že se na něčem shodne sebevětší valná hromada ještě neznamená, že je to správné, natož pak nejlepší řesení)

          2. Tharos

            Re: Symfony2

            To, že Nette jde svou vlastní cestou, je ale spíše jeho výhoda, nemyslíš? Konkurence je dnes už tak velká, že je důležité odlišovat se, dělat věci jinak.

            A je na programátorech, pro co se rozhodnou. U Nette nadvláda Davida nad zbytkem komunity možná až bije do očí, ale já osobně jsem za to rád, protože si nemyslím, že by ryze demokraticky vznikl lepší framework. Naopak je teď hezky konzistentní.

            Komu vyhovuje více demokratický vývoj, nechť prostě používá jiný framework, kde výrazně přispívá více autorů.

      4. David Grudl

        Re: Symfony2

        Bravo, vyhrál jsi!

        > Výběr frameworku by mělo být pragmatické rozhodnutí a ne fanboy názor.

        Dáme si naše oblíbené téma? Když jsi tuhle na diskusním fóru Nette odrazoval, proč vyvíjíme vlastní šablonovací systém, když je tu Twig, chtěl jsem po tobě vědět, jak se v Twigu vyřeší tento jednoduchý a zcela běžný úkol:

        - vypisuju nebufferované data z databáze (tj. neznám dopředu počet položek) jako elementy <li>
        – každý lichý bude mít class=“lichy“
        – poslední bude mít třídu class=“posledni“ (tedy class=“posledni lichy“, bude-li poslední zároveň lichý)
        – protože jsme puntičkáři, nechceme v kódu žádné <li class=“ „> apod, že jo
        – a samozřejmě veškerý výstup musí být escapovaný

        V Latte tohle zapíšu následovně:

        <ul>
        {foreach $data as $item}
              <li n:class=“lichy => $iterator->odd, posledni => $iterator->last“>{$item}</li>
        {/foreach}
        </ul>

        případně stručněji: (ze zkušenosti, nováček se tuto konzistentní syntax naučí během cca 20min)

        <ul n:inner-foreach=“$data as $item“>
              <li n:class=“lichy => $iterator->odd, posledni => $iterator->last“>{$item}</li>
        </ul>

        Prosím, napiš tady ekvivalentní zápis v Twigu. A necháme čtenáře posoudit.

        (ano, předpokládám, že to buď nepůjde, nebo to bude extrémně složité, nepřehledné a nečitelné, nicméně skutečnost, že Twig ve zdrojácích používá místo tabulátorů mezery, to jistě zcela vyváží! Jsi na tahu, pragmatiku)

        1. Honza Marek

          Re: Symfony2

          To má zase jinou syntaxi než znám… místo šipeček pro n:class používám otazníky.

          Jo a rozhodl jsem se trochu procvičit se v Twigu, tak jsem napsal makro, které umí vlastně to samé jako n:class.

          {# použití #}
          
          {# import makra, snad by to stačilo jednou v nějakém layoutu #}
          {% from 'JmNecoBundle::macros.html.twig' import class_attr %}
          
          {% set dataZDatabaze = ['prvni', 'druhy', 'treti', 'ctvrty', 'paty'] %}
          
          <ul>
          {% for item in dataZDatabaze %}
              <li{{ class_attr({'lichy': loop.index is odd, 'posledni': loop.last}) }}>{{ item }}</li>
          {% endfor %}
          </ul>
          
          {# soubor macros.html.twig #}
          {% macro class_attr(classes) %}
          {% set writeTag = true in classes %}
          {% set needSpace = false %}
          {% if writeTag %} class="{% for class, enabled in classes %}{% if enabled %}{% if needSpace %} {% endif %}{% set needSpace = true %}{{ class }}{% endif %}{% endfor %}"{% endif %}
          {% endmacro %}
          
          {# což je trochu nepřehledné, kvůli tomu, aby nikde nestrašily mezery #}
          
          {# tak to z didaktických důvodů odsadím ;) #}
          {% macro class_attr(classes) %}
              {% set writeTag = true in classes %}
              {% set needSpace = false %}
          
              {% if writeTag %}
                  class="
                  {% for class, enabled in classes %}
                      {% if enabled %}
                          {% if needSpace %} {% endif %}
                          {% set needSpace = true %}
                          {{ class }}
                      {% endif %}
                  {% endfor %}
                  "
              {% endif %}
          {% endmacro %} 
          1. David Grudl

            Re: Symfony2

            Asi víš, kterým směrem mířím… řeší loop.last i první bod zadání, tj. že neznáme počet položek, které ze zdroje dat vypadnou?

            1. Honza Marek

              Re: Symfony2

              Hm, tohoto bodu jsem si nevšiml. A aby fungoval loop.last, tak prý má být to iterované array nebo Countable.

        2. Martin Hasoň

          Re: Symfony2

          Tak jsem si ráno přečetl tuto diskusi a narazil na to, že mě David Grudl hledá a nakonec i prosí o radu (vytahování staré epizody o šablonách). A jak tento příběh vznikl ilustruje záznam z diskuse:

          PetrP, Honza Marek:
          Nezaváděl bych další magickou wtf syntaxi.

          David Grudl (DG):
          Zkuste si projít všechny šablonovací systémy na http://en.wikipedia.org/wiki/Template_engine_%28web%29 – to je bída, tam těžko hledat nějakou inspiraci. Ale jakmile jste leaderem, tak prostě vymýšlíte nová řešení.

          Martin Hasoň (MH):
          Příspěvek je smazán DG, ale byl v tomto duchu: Označit všechny šablonovací systémy za bídné je dost velká odvaha. Navíc je komické, že samozvaný leader není ani v tom seznamu uveden.

          Následovala sprška potup od čestné gardy DG :), ale nakonec pár lidí došlo, k závěru, že například šablonovací systém Twig není vůbec špatně napsaný. DG poté ujely nervy, napsal srdceryvný píspěvek a polovinu diskuze smazal.

          No a jak by se řešil požadovaný příklad ve Twigu? Tak předně si musím být vědom, jaká je filosofie používaného nástroje. Nelze vyžadovat po Twigu, aby se choval jako Latte, stejně jako nelze po Doctrine vyžadovat chování vlastní NotORM. Protože každá knihovna dává důraz na něco jiného.

          <ul>
          {% for item in data %}
              <li class="{{[loop.odd ? 'lichy' : 'sudy', loop.last ? 'posledni' : '' ]|join(' ')}}">{{item}}</li>
          {% endfor %}
          </ul>

          No a pokud by někdo opravdu chtěl chování, které má přesně Latte, stačí zaregistrovat do Twigu novou funkci (přes makro bych to nedělal).

          PS. Ačkoliv to DG tuším nepřiznal, tak se nakonec od jiných šablonovacíh systémů inspiroval (to je na tom ještě více komičtější – samozvaný leader přejímá věci z ‚bídných‘ systémů :)) Inspirace spočívala například v implementaci [] pro zadávání pole.

          1. David Grudl

            Re: Symfony2

            Děkuji moc za kód, jeho srozumitelnost má velkou vypovídací hodnotu.

            Že jsem takový puntičkář, bude splněn i bod č. 1 zadání, tj. že bude fungovat loop.last i tehdy, když počet položek ve zdroji dat nelze spočítat? Tedy s jakýmkoliv výpisem z databáze přes PDO? A bod č. 4, tj. že v kódu nebudou vznikat ošklivé <li class=““>?

            1. Honza

              Re: Symfony2

              Dobrý den vespolek,
              že jsem tak smělý, docela pěkná soutěž, šlo by takových příkladů umístit někde vícero? Včetně reakcí, a třeba i v různých programovacch jazycích, to by mě docela zajímalo…

  4. Segeda

    Administrace

    A to já se zase na administraci v projektu těším. (Jestli bude něco jako v Djangu nebo jako Adminer)

  5. Jiří Kuneš

    Goud Enough

    David to vystihl. Nette je Good Enough. Kdo chce ovšem být na špičce, tomu to nemůže stačit.

  6. Petr

    KDO DELA V PHP tak at se sebere a jde do UK

    Rozhodne PHP kodovani je daleko zadanejsi nez – PRAVY PROGRAMATORI.

  7. Petr Janda, @petrjanda (at) twitter

    Spatna povest PHP

    PHP je pro spoustu lidi vubec prvni jazyk s kterym zacnou pracovat, takze je jasne, ze na internetu je k videni spousta spatneho kodu. Zaroven jak bylo receno, v kazdem jazyce se da psat dobre/spatne, stejne jako v PHP.

    Jak jsou na tom soucasne PHP frameworky jako Nette s testovanim? Je mozne u nich videt podobne jednoduchou praci s testy jako napriklad u Rails? Bylo by super, kdyby se prave vsichni tito novi a mladi programatori naucili spravnym navykum a testovali svuj kod. Rekl bych ze celemu PHP ekosystemu by to velmi prospelo.

    1. Jiří Knesl

      Re: Spatna povest PHP

      Ahoj Petře. Pro PHP existuje docela dost nástrojů, port Cucumber (jmenuje se Behat), port RSpec (PHPSpec, ale ten se mi moc nelíbí), na TDD je PHPUnit, který je docela dobrý, existuje spojení do Capybary, na WebKitServer, na Selenia je tam taky adaptér.

  8. Michal Augustýn

    Re: David Grudl: Marketing Nette dělají spokojení uživatelé

    Díky Davide – už jsem si začínal myslet, že jsem jediný, komu přijde bezhlavé generování kódu jako hnus :-)

    1. fanboy

      Re: David Grudl: Marketing Nette dělají spokojení uživatelé

      Ovšem promyšlené generování kódu je už jiný level. V JavaScriptu na to už přišli.

  9. ondrej

    pragmatik

    „Zároveň jsem ale pragmatik – třeba nový návrh formulářů v HTML5 je značně nedotažený a nechci stavět na něčem, co se mění pod rukama.“

    toto ma pobavilo ;-)))
    presne to isté sa dá povedať o nette, stále sa mení „pod rukama“ a preto je viac-menej nevhodné na ňom stavať niečo seriózne.

    1. Tharos

      Re: pragmatik

      Tak to je asi logický, že se vývojová verze mění pod rukama, že ano. :) Jestli chceš verzi Nette, která se nebude měnit pod rukama, použij stabilní release.

      1. HosipLan

        Re: pragmatik

        Což je samozřejmě problém vzhledem k současnému verzování. Ovšem není problém si stáhnout konkrétní verzi a postavit na ní systém.

        Doufejme, všechny problémy, týkající se stavění na dev budou zítra smeteny ze stolu :)

  10. Petr Praus

    Generátory kódu v Djangu?

    „Pod vlivem Rails a Djanga se i do PHP šíří generátory kódu, co ti ty části, které píšeš pořád dokola, vygenerují za tebe.“

    Nevím jak v případě Rails, ale v Djangu jsem žádný generátor kódu opravdu nenašel ;-) Jediné co by se dalo považovat za generátor kódu je django-admin startapp, ale to v podstatě vytvoří jeden adresář a v něm tři prázdné soubory. Admin rozhraní Djanga žádný kód negeneruje, ale používá introspekci, která je v Pythonu obecně hodně silná a v Djangu se používá v místech kde by se jinak generátor kódu pravděpodobně použil.

    1. Pepa

      Re: Generátory kódu v Djangu?

      V rails generátory jsou. A není na tom <b>samozřejmě</b> vůbec nic špatnýho. Generátor je dobrý sluha ale špatný pán, jako skoro všechny nástroje.

      V Rails jsou napsaný dostatečně dobře aby začátečníkům pomohly rychle dojít k něčemu funkčnímu (což má obrovskou motivační hodnotu), pokročilým pomáhají ušetřit práci, když pochopí různý možnosti co jim nabízejí.

      Hezký přehled generátorů je tady http://railscasts.com/episodes/216-generators-in-rails-3

  11. Ajax

    Chybi dokumentace

    jako samouk jsem dal nette dva mesice a proste jsem to nedal. Za 2 mesice bych ten web mel hotovy bez FW a takhle nemam nic. Mozna je chyba ve me, ale ja to proste nedal. :( Dle meho anzoru by chtelo udelat stop feature stav a soustredit se na dokumentaci (+ debug) aspon rok…

    1. Jiří Kuneš

      Re: Chybi dokumentace

      A co takhle zkusit nějaký jiný framework? Anebo rovnou i jiný jazyk? :)

      Anebo můžeš čekat na bájnou verzi 2.0 stejně jako jiní čekali na bájnou verzi 1.0

      1. verajo

        Re: Chybi dokumentace

        Nette 2.0 je preci alias pro bajnou verzi 1.0. Nevim proc se tak neoznacila. Asi proto, ze se vyviji uz 7 let. :-) Kazdopadne oznaceni verze je vzdycky na autorovi a kazdy k tomu pristupuje jinak. (Me se treba libi pristup Ubuntu).

    2. Sebastian

      Re: Chybi dokumentace

      Prostě jsou věci, které chtějí čas u nette je to stejný, ale jak v něm napíšeš nějaký projekt.. Pak zkusíš další, ale s tím, že ses poučil ze svých chyb a pak si řekneš, že bylo by fajn si rozšířit obzory a začneš se koukat i jinde, věř mi, že pak nastane tolik „aha efektů“, že budeš jen žasnout…. :)

      1. FAk

        Re: Chybi dokumentace

        asi tak nějak, já ted zkoušim ASP.NET MVC 3 a mam tam takovýho aha, že bych to nejrači 100x za den otočil k Nette. Bohužel na MVC3 musím postavit diplomku, zatím je to celkem peklo.

        1. ax

          Re: Chybi dokumentace

          Nějakej příklad konkrétně? Zrovna si taky s asp.net mvc 3 hraju, a s nette mi přijde i dost podobnej. A nějaké extra problémy nezaznamenávám.

  12. Talpa

    Pokora

    Me se vzdy na Nette libila jedna hlavni vec, pokora… david si nehraje na vseznalka a jeho pristup, kdyz 50% lidi tape, tak jsem „blbej“ ja vystihuje vsechno. V soucasnosti mam respekt ze 3 programatoru, ktere jsem poznal osobne. David je jednim z nich. Diky Davide, Nette pouzivam a jsem pritom lemra lina, tak jsem se tam nasel, protoze parabola uceni je tam strasne prikra, zadne vopruzy s nestandardnim pojmenovanim a chovanim, proste je to inovatorske a zaroven to dodrzuje zazite programatorske techniky. Co si proboha vic prat?

    1. Jiří Kuneš

      Re: Pokora

      LOL! David si nehraje na všeználka? Dovolte abych se zasmál.

      To s tím „lidi to nechápu – blbej jsem já“ je jen póza. Doporučuji raději osobní setkání :)

      Internet má jednu zvláštnost – i fotka roztaženého zadku si najde svoje fanoušky. A jak David správně říká, i kdyby mělo něco milion plus jedniček, tak to o kvalitě neříká vůbec nic!

      1. HosipLan

        Re: Pokora

        A tvá zkušenost vyplývá z čeho? Znám Davida osobně a vím moc dobře, že když máš co říct, tak tě vyslechne a rád ti dá za pravdu, pokud ho přesvědčíš argumenty. Když nemáš pravdu vyvede tě z omylu. Co bývá občas problém tak upoutat jeho pozornost, ale kdyby po mě něco konstantně požadovalo několik stovek lidí, také bych jich hodně přehlédl.

        Ale proč ti to vlastně píšu, když už první slovo „LOL“ smrdí haterem a trollem, takže další příspěvek bude nejspíš plný urážek a v takovém případě si vyhrazuji právo na něj nereagovat :)

      2. plistiak

        Re: Pokora

        Mám tú česť, že som sa s Dávidom stretol osobne. Na školení Nette aj súkromne. Dovolím si povedať, že po niekoľko hodinovom rozhovore som schopný získať o človeku celkom pravdivý obraz. Dávid má iste zlé vlastnosti, tak ako každý z nás, ale nadutosť, nadradenosť, povýšenectvo a pod. k ním nepatria. Rád si dá poradiť a príjme aj kritiku.
        Pravdupovediac obdivujem ho ani nie preto, že by bol geniálny programátor (vlastne ani on nemá rád ak to niekto o ňom hovorí), ale práve pre to, že napriek častému nepochopeniu a neoprávnenej kritike má stále chuť tvoriť Nette pre ľudí. A ešte k tomu zadarmo.

      3. talpa

        Re: Pokora

        Znam ho osobne, nijak zvlast dobre tedy ne, ale 2x jsem ho videl na sobote.

        Rozhodne i v konferencich a vsude ma silnou auru, prave protoze ma dost casto pravdu a svou pravdou si pak stoji. Kdyz ji nema prizna to, to je podstatne. Jestli tobe Jirko nesedne jako clovek, to mi je i celkem ukradeny. Mam podobne tvrdy buldoci styl a vim ze u vetsiny lidi to je pak problem.

        Rozhodne je to rovnej clovek co je zaroven i soudnej. To se mi na nem libi

    2. Hmmm

      Re: Pokora

      Ja som tiez ostal prekvapeny ked som si precital, ze David je pokorny… Lebo ani Jakub a ani David na mna neposobia dojmom pokornych ludi. A to ich poznam iba z fora a z diskusii… Ci uz ide o Nette alebo o Adminer, ani jeden na mna neposobi dojmom normalneho cloveka, ale skor som z nich mal pocit, ze sa hraju na polobohov.

      1. Vojtěch Dobeš

        Re: Pokora

        Propána, rozhovor s vývojářem a v diskusi se řeší, jestli onen vývojař je nebo není pokorná povaha… kromě vyzdvižení nechutnosti podobných debat vůbec (1. příspěvek tohoto vlákna je OK :) ) mohu uvést, že jsem se zúčastnil dvoudenního školení Nette přímo s Davidem a byla to výborná zkušenost (žádné „tak vás naučím to moje božské Nette“ – tak si alespoň onen nepokorný přístup já představuju). A fóra… je možné třeba z Nette fóra dát nějaký odkaz s příkladem? Já mám dojem, že David s komunitou řeší tuny jednotlivostí, ze kterých se framework skládá, a to s velkou trpělivostí – já kdybych si piplal nějaký nástroj takhle pečlivě, asi bych podobnou trpělivost neměl. A to je podle mě pokora.

        1. talpa

          Re: Pokora

          Vojto, to je presne o cem jsem psal. Oni furt resi neco uplne jineho, na co ja s prominutim dlabu. Takze kdyz rikam, ze David ma v sobe POKORU tak to myslim vazne. Nestoji na kravine jen kvuli tomu ze ji napsal sam. Jestli se panum nelibi jak s nimi jedna, to uz je uplne na jinou diskuzi a na uplne jiny platek:)

      2. Martin MalýAutor příspěvku

        Re: Pokora

        Vy si děláte představu o povahových vlastnostech lidí z diskusí po internetu? Brrr, nechci ani domýšlet, kam by vedlo, kdyby se takový přístup nějak víc rozmohl. Třeba že bychom si dělali názory na lidi podle jejich komentářů pod články…

        1. wikipedista

          Re: Pokora

          Scénář u diskuzí, které se nějak dotýkají Davida Grudla, je téměř stále stejný. Je to takový podivuhodný fenomén. Obdivovatel nejprve přiřadí Davidovi nějakou cnost. To samo sebou musí vyvolat polemiku. A když se ozvou hlasy, které řeknou, že s tím zbožštěním to není zas až tak košer, tak se do debaty přidají známé osobnosti, aby tyto hlasy umravnili (viz případ největšího pašíka na internetu).

          Můj pohled na věc. Doceněnou vlastnost Davida Grudla by bylo vhodnější nazvat slovem ochota. Kritické hlasy na zmíněnou pokoru mají právo zaznít, protože pokora je velmi vysoce ceněnou ctností. Umravňování pouze kritických hlasů je neférové. Ne každá glorifikace je vždy nezávadná a ne každá kritika vždy špatná.

          1. Martin MalýAutor příspěvku

            Re: Pokora

            Což, máte recht, ale při psaní jste si asi nevšiml jedné drobnosti: Vůbec jsem nepsal nic o Davidovi, reagoval jsem jen a pouze na větu „X.Y. mi připadá takový a onaký, a to ho znám jen z diskusí a fór“, protože s tím mám jednak sám zkušenosti, a jednak, jak jsem psal, kdybych opravdu usuzoval na vlastnosti lidí z toho, jak se projevují třeba v komentářích zde, měl bych o nich mnohem horší mínění, než mi teď připisují…

            1. wikipedista

              Re: Pokora

              Ano, takové věty jsou problém. Odborně by se jim mohlo říkat známkovací věty. Známkování osoby na základě jejího projevu, lze považovat za komunikační chybu. Ale to neznamená, že se nemůže člověk k těmto projevův vyjádřit. Pro doplnění uvedu ukázky korektnějších reakcí:

              „Věty, které napsal X.Y, neobsahují žádný náznak pokory.“ – bavíme se o větách, ne o člověku.

              „Vtip na Twitteru o Aničce, který napsal David Grudl byl nechutný a stejně trapný, jako celá mediální masáž kolem unesení.“ – opět hodnotíme projev, ale ne člověka.

              1. keff

                Re: Pokora

                Jeste trochu lepsit komunikacni schopnosti, a z ‚vtip byl‘ bude ‚vtip mi prisel':)

                Me vtip pobavil, takze zjevne trapny a nechutny neni, to by se na tom museli shodnout uplne vsichni.

                1. wikipedista

                  Re: Pokora

                  Omyl!

                  Správná komunikace nikomu nenařizuje, aby byl relativista. Správná komunikace je taková, která respektuje člověka, ale nemusí respektovat každý blábol. Když někdo například řekne, že vražda není zločin, tak reakce nemůže být, že podle mého názoru je vražda zločin. Ale musí být vražda je zločin. A proč není tato věta správná? Protože lidská společnost je řízena zákony. Ať už vládní legisativou a nebo tzv. přirozeným zákonem. A to je ten nástroj, který dovoluje zaujmout jasná stanoviska k problémům, a na který se odvolává při argumentaci. Zákony nestanovuje většina. Zákony dává ten, kdo má moc. Zákony se udělují, zákony se nevolí. Tak jako dítě si nevolí zákony, ale dostává je od rodičů.

          2. David Grudl

            Re: Pokora

            Tak to se můžu přidat do debaty!

            Ale vážně. Znám ve svém okolí, mezi stejně mladými lidmi, jen minimum těch, které bych označil za pokorné. Vzácná vlastnost, která nejspíš přichází až s životní zkušeností. Že ji nemám, mě řadí mezi většinu. Možná i pokora je jistým opakem mladické dravosti a na rovinu, to druhé se mi nyní hodí víc.

            Že s tím „lidi to nechápu – blbej jsem já“ jsem jen posér? Budiž, vyvrátit to nelze, pro mě je cenné, že se z každého školení vracím se dvěma A4 poznámek, co udělat ve frameworku lépe :-)

            Když tu už zaznělo jméno Jakuba Vrány – to je jeden z nejskromnějších/nej­nenáročnějších lidí co znám. Jenže v českých reáliích, kde skromnost = nemluvím o svých úspěších, vytváří u řady lidí právě opačný dojem. Proto soudím, že mu Amerika sedne.

            1. wikipedista

              Re: Pokora

              Pár myšlenek:

              Opakem pokory je pýcha, ne dravost. Opakem dravosti je tuším rozvážnost.

              Když lidé nechápou nějakou věc, tak je dobré tu věc opravit. Vykonavateli opravy se však nepřisuzuje cnost pokora. Nelze personifikovat opravu. To by pak každý učitel byl pokorný.

              Skromnost != nemluvím o svých úspěších. Tato nerovnost platí všude, ale ne všude platí, že jakýkoliv způsob prezentace úspěchů je skromný.

              Články o NotORM od Jakuba Vrány na mě vůbec nepůsobily skromně. Celá jejich myšlenka sledovala nit – způsob zacházení s daty v NotORM je ten nejlepší a způsob práce s daty pomocí Doctrine je úplně mimo. To není skromnost. To nadzvedne ze židle každého.

              A jak lze skromně prezentovat své úspěchy? Například větou: „Síla NotORM je v jeho práci s daty na úrovni tabulek. Při tomto pohledu na zpracování dat dosahuje NotORM daleko větší efektivity než Doctrine, která se však na tento druh práce s daty nespecializuje.“ – je tam zmíněn úspěch a přitom je to řečeno skromně.

              1. David Grudl

                Re: Pokora

                > Články o NotORM od Jakuba Vrány na mě vůbec nepůsobily skromně.

                To je polemika s kým prosím?

                1. talpa

                  Re: Pokora

                  Vysvetli jim prosim te Davide, ze te nehodlam hodnotit jako cloveka (na to te fakt neznam a je to asi na nejakou filosofickou a psychologickou debatu na kterou nejsem ani fundovany :)))).

                  To kdyz mluvim o pokore mluvim o tvem pristupu ke kodu a obecne k frameworku. Pokud tuhle pokoru nikdo nevidi, tak je bridil. Samozrejme jsem zapomnel na pokoru ostatnich programatoru co Nette delaji, za to se omlouvam.

                  Ale i tak si myslim a trvam na tom ze programator ma byt pokorny:) a to nemyslim ve vztahu k lidem, jak uz jsem rekl, ale ke vztahu ciste ke kodu. Pac kdyz neni pokora, vznika desnej paskvil:)

                  Chapete to uz vsichni?:)

              2. Jiří Kosek

                Re: Pokora

                Sice je pravda, že Jakub to srovnání s Doctrine možná až zbytečně moc hrotil, ale proč by měl při srovnávání svého produktu s konkurencí psát zcela neutrálně jak nějaký článek do encyklopedie (že by profesionální deformace dle nicku)? Podobná porovnání, zvlášť pokud je dělá přímo jedna ze zainteresovaných stran, nikdy nejsou objektivní a nikdo soudný to od nich ani nečeká.

                Tip pro redakci — nešlo by si koupit placený přístup je Zdrojáku, kde by nebyly vidět diskuse? Reklamy se dají odfiltrovat snadno, ale filtrovat diskuse by mnohdy bylo přínosnější. ;-)

                1. wikipedista

                  Re: Pokora

                  Prezentace výsledků by měl být vždy úkon objektivní (do jisté míry neutrální). Že se od prezentace výsledků neočekává objektivita, ale jakýsi kus teatrálního sebeprosazení, pak automaticky nemůže být tato prezentace skromná. Použití slova soudnost, k označení akceptace ne zcela objektivní prezentace výsledků, je nepřípustné (je to stejně absurdní, jako výrok, že nikdo soudný nemůže očekávat, že se dodrží smlouva). O to víc zarážející je, že takovou základní věc, jakou je objektivita prezentace výsledků, svým výrokem podkopává člověk, který přednáší na VŠE.

                  Krom toho věta, kterou jsem napsal v předchozím příspěvku, jako ukázku skromné prezentace úspěchu, může někomu přpadat neutrální. Tento pocit vzniká tím, že se nesnaží vyvolávat emoce. Je to jasné. Pokud má totiž posluchač být o něčem informován, tak se musí posílit jeho rozum a ne potlačovat rozum, na úkor emocí.

                  1. FAk

                    Re: Pokora

                    Radši si přečtěte tady dole „jak má sedět správná podprsenka“ a „co dělat, když vaše přítelkyně zapáchá“ a přestaňte tu mlít s*** mimo obsah článku, včetně mě..

                  2. Jakub Vrána

                    Re: Pokora

                    Na „obhajobu“ Jirky Koska uvedu, že články jsou zařazeny v rubrice Subjektivně (i když by to podle mě nebylo potřeba).

                    1. Jan Tichý

                      Re: Pokora

                      Na obhajobu Arthura Denta pod jehož článkem o pokorném Davidu Grudlovi v diskuzi Jakub Vrána obhajuje Jirku Koska obhajujícího Jakuba Vránu, bych rád uvedl, že ten fotbal přece nedělá pro sebe…

                2. Hmmm

                  Re: Pokora

                  Pretoze ak je promo clanok pisany subjektivne a konkurencii nedava moznost na ferove porovnanie, tak to je z neho citit a z promo clanku je antipromo.

                  1. Jakub Vrána

                    Re: Pokora

                    Konkurence měla možnost se k článku vyjádřit ještě před jeho vydáním: Doctrine Lead Developer explains my WTFs, part 2. Odkaz na toto vyjádření byl i tady na Zdrojáku.

                    Když je v článku uvedeno 13 konkrétních bodů, které se autorovi nelíbí, tak rozumný čtenář udělá to, že si u každého z těch 13 bodů řekne, jestli je pro něj důležitý nebo ne a na základě toho se rozhodne.

                    Žádná objektivita v takovém případě ani neexistuje. Protože i když bych napsal: „knihovna X je špatná, protože s ní musíte napsat spoustu zbytečného kódu, je šíleně pomalá a poškozuje vaše data“, tak to pořád pro někoho nemusí nic znamenat, protože pro něj osobně je důležitější, že knihovna používá čtyři mezery místo tabulátorů.

              3. Jakub Vrána

                Re: Pokora

                Nejspíš jde o článek Doctrine 2 a NotORM – videotutoriál a jeho pokračování. Bylo by možné odcitovat nějakou neskromnou pasáž?

                I když jednu knihovnu pochválím a druhou zkritizuji (na základě dlouhého seznamu konkrétních argumentů), tak to podle mě ještě pořád není nic neskromného. Já nikde neříkám „podívejte, jak jsem to pěkně udělal“, říkám prostě jen „tahle knihovna to má tak a tak a na tom je užitečné to a to“. Že jsem autorem knihovny je v této argumentaci zcela nepodstatné.

                1. Pepa

                  Re: Pokora

                  Vyznění celýho čtvýho článku a seriálu je „podívejte jak je Doctrine strašně blbě udělaná knihovna (a jak je ta moje úžasná)“. Je to cítit z každé věty a z celkové struktury těch článků.

                  Takže souhlasím s kolegou, chybí mi tam trošku skromnosti, pokory a respektu vůči práci jiných, jak u Tebe, tak částečně i u Davida. Přesně to, co pak tvrdě kritizujete a potíráte v jakékoliv diskusi.

                  1. Jakub Vrána

                    Re: Pokora

                    „Vyznění“ nebo „působení“ – to je subjektivní dojem čtenáře. Já jsem žádal o konkrétní citaci. Když už tady wikipedista uvedl příklad skromné věty, tak bych chtěl vidět příklad nějaké neskromné, kterou jsem v těch článcích použil.

                    A vědět to chci samozřejmě proto, abych si na to příště dal pozor.

                    1. Pepa

                      Re: Pokora

                      „…některým informacím se mi nechtělo uvěřit“,
                      celá ta pasáž „Co se mi na Doctrine 2 nelíbí“,
                      „i když se knihovna tváří jako vysokoúrovňová a tudíž by měla být robustní, tak skutečné chování je přesně opačné“,
                      „Za ještě horší ale považuji to…“,
                      atd.

                      Obecně se mi nelíbí to schéma, že nejdřív shodíš něčí projekt vypíchnutím jeho chyb a pomlčením o většině benefitů, a následně si přihřeješ polívčičku s vlastním projektem. Nejde o to, čí projekt je „lepší“ ale o ten styl komunikace. Já vím že se to blbě posuzuje a je to subjektivní, ale tohle už mi přišlo hodně za hranou.

                      1. HosipLan

                        Re: Pokora

                        Obecně se mi nelíbí, že se někomu nelíbí, že si dělá self-promo.

                        Proč by se Jakub, nebo David nemohli vychloubat? Mají přece čím. Až napíšeš knihovnu, kterou budou používat stovky a tisíce uživatelů, taky budeš psát na zdroják články o tom, jak jsi lepší než tohle a tamto. Skromnost není na místě. A věcnost Jakubovi nikdy nechyběla, argumentů má vždycky dost.

                        Já třeba Doctrine2 používám a jsem rád, že Jakub na ty nedostatky upozornil.

                        1. Pepa

                          Re: Pokora

                          Ale ať si dělá selfpromo vrchem spodem, to je naprosto v pořádku. Ale bez toho prvního kroku naházet špínu na něco jinýho a na tom se přiživit.

        2. Hmmm

          Re: Pokora

          Nejde len o komentare a prispevky.

          Dost hovoria aj samotne clanky, ale v tomto pripade skor o Jakubovi. Pamatam si na jeho propagacny clanok o Adminerovi, kde velmi arogantnym (ba dokonca mozno az klamlivym sposobom) zhadzoval pod zem phpMyAdmin. Neviem ci sa rovno nesnazil tym clankom vsetkych jeho uzivatelov previest k Adminerovi. Len tak na okraj, Adminera som si potom aj sam vyskusal, rovno tyzden som s nim pracoval. A po tom tyzdni som sa vratil spat k phpMyAdminovi. Klamliva reklama, z mojho pohladu.

          Alebo velmi usmevne bolo ako minule testoval rychlost frameworkov a Nette skoncilo ako uplne posledne. Samozrejme okamzite padla vina na nieco ine, pretoze „Nette ma povest jedneho z najrychlejsich frameworkov“, takze urcite nie je chyba tam.

          A milo vyznieva aj David, ktory sa teraz nevie prestat na twitteri smiat z tejto diskusie ked tvrdi, ze odisli Symfonisti (Nette je spatne, bo misto mezer pouziva tabulatory (myslim, ze pointa tej diskusie bola niekde uplne inde, pozn. moja)) a prisli psychologovia.

          Takze cim maju tito pani zniet na internete skromne? :)

          1. Jakub Vrána

            Re: Pokora

            Jde pravděpodobně o článek phpMyAdmin VS Adminer. Opět bych prosil o citaci nějaké arogance nebo dokonce lži.

            Podotýkám, že mě v následné diskusi čtenáři upozornili na existenci jedné funkce, jejíž absenci jsem phpMyAdminu vyčetl, protože je tak dovedně schovaná, že jsem ji prostě neobjevil. Za tuto chybu jsem se v diskusi omluvil.

            Co se návratu k phpMyAdminu týče, tak by mě opravdu zajímaly důvody. V populaci je pár procent velmi konzervativních lidi (nebo takových, kteří se nejsou schopni naučit nové věci), potom taky pár procent masochistů. Někdo je taky placen za čas nehledě na odvedenou práci, takže jim vyhovují pomalé nástroje nebo takové, které vyžadují napsání spousty zbytečného kódu. Pokud do žádné z těchto skupin nepatříte a k návratu vás přiměly nějaké konkrétní důvody, tak bych je opravdu rád slyšel, protože by to mohl být námět na vylepšení Admineru.

            1. Pepa

              Re: Pokora

              tak tenhle komentář je dokonalou ukázkou té arogance:

              phpMyAdmin je
              – pro velmi konzervativní
              – pro neschopné učit se
              – pro masochisty
              – velmi pomalý
              – blbě napsaný

              1. Jakub Vrána

                Re: Pokora

                Chápu, že psaný text je někdy těžké pochopit, ale nic takového z mého příspěvku neplyne. Velmi konzervativní lidé nebo neschopní učení mají obecný problém přejít ze zažitého na nové. Když by se nejprve naučili Adminer, tak by se jim také na cokoliv jiného přecházelo obtížně. Skupina masochistů by mě zajímala, když by používala Adminer – pokud používají něco jiného, tak mě to nezajímá. Velmi pomalý phpMyAdmin skutečně je – někomu to ale může vyhovovat třeba proto, že snadno pozná, že se něco děje (nebo je placen za čas strávený u počítače).

                Hlavní pointa mého příspěvku je ale jinde. Všechny tyto skupiny nepochybně phpMyAdmin používají (stejně jako možná používají i Adminer). Napsal jsem, že pokud Hmmm do jedné z těchto skupin patří, tak mě to dále nezajímá. Zajímalo by mě to v případě, že by do žádné z těchto skupin nepatřil.

                1. Pepa

                  Re: Pokora

                  A zase. To že začínáš útokem „chápu, že psaný text je někdy těžké pochopit…“ Možná jsi vynikající programátor (nedokážu posoudit, protože tvou práci neznám), ale bohužel tak trošku sociopat.

              2. Spidy

                Re: Pokora

                phpMyAdmin je – pro neschopné učit se
                Já jsem se naopak naučil používat Adminer mnohem rychleji než phpMyAdmin :o)

            2. Hmmm

              Re: Pokora

              Po precitani posledneho odstavca nemam vobec zaujem ozrejmovat nejake dovody mojho navratu k phpMyAdminu. Uz len z toho dovodu, ze taketo definovanie populacie je samoucelne a zavana obrovskou davkou bohorovnosti.

              Ale predsa, v skratke, mne phpMyAdmin vyhovuje podstatne viac nez Adminer uz len kvoli tomu, ze v nom viem urobit vsetko co potrebujem par kliknutiami a mam v nom jasny prehlad o tom co potrebujem. A vobec nie je pomaly, na to neviem ako ste prisli. A okrem toho je nasadzovany u zakaznikov. O komplikaciu menej.

              Ale jedno klamstvo z clanku nadovsetko:
              „phpMyAdmin používá pro zobrazení stránek rámy a samostatná okna. To uživateli znemožňuje ukládat si jednotlivé stránky do oblíbených položek a otvírat je do samostatných panelů“
              Ste normalny? Pracovali ste vobec niekedy v phpMyAdminovi? Otvorit si tabulku v novom paneli alebo okne sa da uplne jednoducho.

              „Adminer používá příkaz INSERT s klauzulí ON DUPLICATE KEY UPDATE, která jako jediná provede import správně.“
              Skutocne? Povedal kto? Jakub Vrana? :)

              „phpMyAdmin dovoluje vytvořit pohled z libovolného SQL příkazu (pohled se ale potom automaticky nezobrazí v seznamu tabulek)“
              Dalsie klamstvo.

              „Adminer dovoluje tabulku třídit podle více sloupců (např. nejdřív podle data a potom podle času), phpMyAdmin obdobnou funkci nabízí jen komplexním databázovým dotazem.“
              Zase klamstvo… phpMyAdmin ma na to rozhranie.

              „Při vytvoření tabulky v phpMyAdminu je nutné předem stanovit počet sloupců. Pokud si teprve při jejím zadávání uvědomíme, že potřebujeme ještě nějaké sloupce navíc, je nutné odeslat formulář. „
              To je snad logicke, nie? Ked vytvaram databazu a v nej tabulky, tam ma jasnu predstavu ako to ma vyzerat. Ci snad ideme vychovavat programatorov k prasacinam? Vy si hovorite vyvojar?

              A dalej sa mi uz ani nepokracujem, nechce sa mi dalej stracat cas…

              1. HosipLan

                Re: Pokora

                Proč se pod svůj lživý příspěvek alespoň nepodepíšeš? Neumíš si stát za svým názorem? Ale je pravda, že kdybych obhajoval vlastní hloupost, taky bych se asi nepodepsal…

                Myslím si, že by nebylo od věci, kdyby se to tu trochu pročistilo od příspěvků, které nesouvisí s tématem. Přece jenom phpMyAdmin, Doctrine ani Jakubova povaha s představením Nette2 moc společného nemají.

              2. Jakub Vrána

                Re: Pokora

                Věta „viem urobit vsetko co potrebujem par kliknutiami a mam v nom jasny prehlad o tom co potrebujem“ mi úplně stačí. Jde podle mě o jasný projev konzervativního uživatele – na tom samozřejmě není nic špatného, já jsem třeba u desktopových aplikací také velmi konzervativní.

                Jak se v Admineru uloží libovolná stránka do záložek? Pomocí běžného příkazu prohlížeče. Když se pokusím totéž udělat v phpMyAdminu, uloží se jen stránka s definicí rámů. Musím to udělat složitěji – najít ikonu na spodku každé stránky (vědět o její existenci) a do záložek si uložit tu.

                Jak otevřu okno do nového panelu v Admineru? Běžným příkazem prohlížeče (např. prostředním tlačítkem myši). Když se pokusím totéž udělat v phpMyAdminu, dostanu stránku bez navigace. Když ji chci s navigací, musím to opět udělat složitěji – buď stránku otevřít normálně a potom použít malou ikonu (čímž přijdu o původní obsah okna) nebo stránku otevřít do nového panelu a použít malou ikonu (která odkaz otevře do nového okna, takže mi zbude jeden panel navíc). Ať tak či tak, stránka se musí načíst dvakrát.

                V diskusi jsem se přiznal, že jsem o existenci malé ikony nevěděl, takže jsem to v článku nezohlednil a omluvil jsem se za to. Arogantní reakce by podle mě vypadala jinak. Nicméně i když bych o tom věděl, tak bych tyto dvě funkce stejně v článku uvedl, protože se v phpMyAdminu dělají podstatně krkolomněji.

                phpMyAdmin pro import nabízí:

                • INSERT – skončí chybou při existenci řádku
                • UPDATE – nevloží nové řádky
                • REPLACE – může smazat víc řádků než kolik jich vloží

                Klauzule ON DUPLICATE KEY UPDATE skutečně jako jediná udělá to, co je ve většině případů potřeba – vloží nové řádky a aktualizuje stávající.

                Vytvoření pohledu nezpůsobí obnovení rámu se seznamem tabulek. Tuto chybu obsahuje i aktuální verze (phpMyAdmin 3.4.1). Opravdu by bylo lepší se neohánět pojmy jako lež před tím, než si člověk zjistí fakta.

                Třídění – to rozhraní se jmenuje „Dotaz“, je k dispozici na úrovní databáze a je poměrně komplexní. Takže jeho pojmenování „komplexní databázový dotaz“ je myslím zcela na místě.

                Počet sloupců – Adminer se dá použít i pro návrh databáze, kdy při stanovování toho, jaké tabulka bude mít sloupce, tyto sloupce rovnou vytvářím. phpMyAdmin se k tomuto účelu dá použít jen velmi krkolomně – návrh je lepší mít dopředu (nakreslený třeba tužkou na papír nebo v nějakém specializovaném návrháři), kdy je počet sloupců už dopředu znám.

                Mrzí mě, že jsem se nedozvěděl o jediném racionálním argumentu, proč používat phpMyAdmin.

                1. Hmmm

                  Re: Pokora

                  Vy ste zrejme skutocne nikdy naozaj pracovne nepouzivali phpMyAdmina. Inak by ste vedeli, ze to co ste vypisali NIE JE nevyhoda alebo zdrzanie pri praci. Je to len Vas alibizmus.

                  Btw, snad si nemyslite, ze niekomu nahovorite, ze ste SKUTOCNE hladali dovod preco pouzivat phpMyAdmin. Kazdemu sudnemu cloveku je uz dopredu jasne, ze VY nikdy ziaden racionalny dovod na to neuznate. Nikdy.

                  1. Jakub Vrána

                    Re: Pokora

                    phpMyAdmin jsem pracovně i nepracovně používal několik let. A právě nespokojenost s ním na mnoha různých úrovních (uživatelské rozhraní, funkční výbava, výkonnost, bezpečnost) mě vedla k vytvoření Admineru.

                    Nevím přesně, který ze zde popsaných neduhů nepovažujete za nevýhodu, ale pro mě osobně všechno z toho byly mimořádně otravné věci. A připomínám, že jde jen o zlomek toho, s čím jsem nebyl spokojen.

                    Důvody pro používání phpMyAdminu hledám neustále. Nicméně pokud by to pro mě osobně (nebo pro dostatečně přesvědčivé uživatele) byly užitečné věci, tak se nad nimi zamyslím a jejich pokud možno vylepšenou variantu zapracuji do Admineru.

                    Pro mě je skutečně velmi užitečné vědět, co se uživatelům v phpMyAdminu dělá lépe nebo co jim vadí na Admineru. Ale od vás se to bohužel asi nedozvím.

              3. Jakub Vrána

                Re: Pokora

                Ještě k té rychlosti – to se dá prostě změřit. Nebo si prostě jen chvíli klikejte v obou nástrojích – je to patrné na první pohled. Ten rozdíl je subjektivně ještě mnohem patrnější než uváděných 28 % a 56 %. U aktuálních verzí bude rozdíl podle mě ještě větší. U dlouhotrvajících operací je rozdíl řádový – zatímco Adminer základní data zobrazí hned a pomalá data stahuje asynchronně, tak phpMyAdmin na všechno čeká (navíc pokud bych si chtěl phpMyAdmin zároveň otevřít v jiném panelu, tak ten musí na dokončení pomalé operace také počkat).

                1. gawan

                  Re: Pokora

                  > Mrzí mě, že jsem se nedozvěděl o jediném racionálním argumentu, proč používat phpMyAdmin.

                  Ak môžem. Osobne používam Adminer a prešiel som na neho z PMA okamžite bez najmenších problémov a PMA už nemám ani nainštalovaný. Ale predsa len PMA má jednu dôležitú vlastnosť, ktorú v Admineri nie je. Problém je, že keď mám DB s viac ako 100 tabuľkami a pracujem s tabuľkami z druhej polovice, napr: „user_*“ potom vždy, keď sa chcem presunúť na dolné tabuľky, musí si to „odkolečkovať“ mišou. Keďže PMA pracovalo s FRAMEmami, tak zoznam tabuliek vždy zostal na tom mieste kde som to potreboval. V admineri, keď pracujem s viacerými tabuľkami v dolnej časti, je to otravné stále sa presúvať dole.

                  Neviem, či existuje nejaký spôsob ako by sa to dalo vyriešiť, keďže Adminer nepoužíva framy. Možno cez ajax alebo css by to nejako šlo.

                  V každom prípade Adminer mi prináša toľko výhod, že toto nie je pre mňa až také podstatné, aby som sa vrátil v PMA. Píšem to len pre Jakuba ako tip na vylepšenie.

                  Inak zúčastnil som sa asi troch školení s Jakubom a môžem povedať, že okrem toho, že som sa veľa naučil, za tie tri dni som nespozoroval ani najmenší náznak povýšenectva alebo píchy alebo o čo to tu píšete.

                  Vždy som si myslel, že programátori sú ľudia, ktorí dokážu logicky, čisto myslieť, ale teraz vidím, že som sa asi mýlil. Keď niekto používa vecné argumenty, ktoré sa tu niektorím diskutujúcim nepáčia, hneď sa im do myslenia primiešajú pocity a city a začínajú sa správať ako ženy.

                  1. Jakub Vrána

                    Re: Pokora

                    Díky za tip. Nedávno jsem na základě podnětu uživatele připravil plugin tables-filter, který dokáže filtrovat seznam tabulek v navigaci. Tento filtr sice nepřežije obnovení stránky, to by ale v moderních prohlížečích (Firefox 4, Chrome) nemuselo vadit, protože se většina operací vyřizuje AJAXem.

                    Pak by se to taky dalo vyřešit uživatelským stylem: #tables { max-height: 30em; overflow: auto; } (uložit do souboru adminer.css). To bude fungovat za stejných podmínek.

              4. Ondřej Mirtes

                Re: Pokora

                Vy nechápete potřebu konkurence. Osočujete tu Jakuba, že vytvořil nový nástroj pro správu databáze, který se poučil z chyb a nedostatků phpMyAdmina a dává uživatelům možnost volby – zůstat u phpMyAdmina, se kterým umí pracovat, i když se tam některé úkony dělají krkolomněji a něco neumí vůbec, anebo vyzkoušet Adminera, který je zabalený v jednom souboru a má promyšlenější uživatelské rozhraní.

                Moje zkušenost je taková, že když posadíte dlouholetého uživatele phpMyAdmina k Admineru, je nadšený z té jednoduchosti a přívětivosti.

                Více nástrojů trhu jen prospěje a nikdo vás nenutí používat něco nového a lepšího.

                1. Hmmm

                  Re: Pokora

                  Prosim? Kde ho osocujem z toho, ze vytvoril novy nastroj na spravu databaz? Kde?

                  Prosim skopirovat prislusny odstavec alebo vetu.

          1. David Grudl

            Re: Pokora

            Věř tomu, je to přesně jak píše. Martin Hasoň chodí provokovat na Nette fórum a vysmívat se nám, že jsme hloupí. Chtěl jsem tedy po něm kód, jak stejné zadání vyřeší v jím prosazovaném systému Twig, ale ukázkou nikoho nepřesvědčil, nehledě na to, že zadání splnil jen z 50 %. Stejně jako v tebou odkazovaném příspěvku. Přesto dál rušil, ponižoval, lhal, tak jsem jej smazal. Což dělám velmi zřídka. Ale co si počít, když někdo takto cíleně nabourává vlákno, kde se řešila poměrně důležitá věc?

            1. Martin Hasoň

              Re: Pokora

              Provokoval, vysmíval, rušil, ponižoval, lhal a ještě splnil zadání Davida Grudla jen z 50%!

              Jsem rád, že David Grudl konečně napsal text, který celou debatu o jeho zmíněné pokoře vysvětluje a navíc ukazuje pravou podstatu jeho osobnosti. Uvedená tvrzení o mé osobě jsou prachsprosté pomluvy.

              1. David Grudl

                Re: Pokora

                Přesně tak.

                Velmi rád bych se bavil věcně, „ukázal si kódy“, dal jsem tu proto zadání triviálního úkolu pro šablonovací systém a ukázal jeho řešení v Latte. Ty jsi ho vyřešil z 50 %, budu rád, když řešení dotáhneš do konce. Ale protože to nejspíš nejde a protože je očividné, jak krkolomné řešení v Twigu je, tak se alespoň oháníš slovy jako „samozvaný leader“, „ujely mu nervy“, „vykrádá jiné systémy“.

                Přitom si myslím, že nejsi hlupák, o to víc mě zaráží, že za žádných okolností nepřijmeš fakt, že v tomhle je Latte prostě lepší. A pokud ho snad přijmeš, jak vysvětlíš své počínání na fóru Nette, kde mě odrazuješ od vývoje, zesměšňuješ atd? To je nějaký komplex?

                1. Martin Hasoň

                  Re: Pokora

                  Pane Grudle, nevím, zda mám výrok „Přesně tak“ chápat jako omluvu za Vámi napsané pomluvy, ale berme to, že ano. Nad větou „přitom si myslím, že nejsi hlupák“ se raději nebudu moc pozastavovat. Musím brát na zřetel, že to, na co upozorňoval uživatel wikipedista, není mnoha lidem zřejmé.

                  Předně Vás nikdo záměrně nezesměšňuje a neodrazuje od vývoje, ale pouze se pozastavuje nad Vašimi výroky.

                  Za leadera jste se označil sám, tudiž jste samozvaný leader. Váš výrok:

                  Zkuste si projít všechny šablonovací systémy na http://en.wikipedia.org/wiki/Template_engine_%28web%29 – to je bída, tam těžko hledat nějakou inspiraci. Ale jakmile jste leaderem, tak prostě vymýšlíte nová řešení.

                  To, že Vás debata o šablonovacích systémech vykolejila svědčil příspěvek na Nette fóru, který jste však smazal.

                  O vykrádání kódu jsem nikdy nehovořil. Psal jsem o možnosti využívat i jiné knihovny a nepsat vše znovu. Pověstné znovuvynalézání kola.

                  Samozřejmě, že Latte má přichystánu speciální metodu n:class, kterou Twig nemá. Nikdy jsem netvrdil opak. Ale to neznamená, že je Latte lepší nebo, že je Twig horší (‚bídný‘). V té době Latte nemělo například zkrácený zápis pro pole []. Ve smazané diskuzi došlo několik lidí k názoru, že je Twig lépe napsán a já jen dodal, že je to i díky tomu, že je kopií šablonovacího systému Jinja, který je napsaný v pythonu.

                  Řešení nemusím dotahovat do konce, protože prostě těch zbývajících 50% nepotřebuji. Na fóru nikoho nepřesvědčuji, to snad ani v těch ~10-ti informačních příspěvcích, co tam jsou ode mne, ani nejde.

                  1. David Grudl

                    Re: Pokora

                    Omlouvám se, že se dostávám k odpovědi tak pozdě, ale v žádném případě se nejednalo o omluvu, chraň bůh! Překvapilo mě, že tě takový výklad vůbec napadl, proto raději postuluji, že pokud neuvedu výslovně „omlouvám se“ (viz tento komentář), nejde o omluvu.

                    Jinak se vcelku shodneme. Šablonovací systémy na zmíněné stránce jsou, pokud jde o inovativnost, vesměs nic moc, třeba v porovnání s Latte.

                2. verajo

                  Re: Pokora

                  V uvodu se priznam, ze nejsem nejaky Latte master, ale zalibila by se mi moznost psat neco jako tohle:

                  {foreachelse $a as $item}
                  {$item}
                  {else}
                  "empty"
                  {/foreachelse}

                  misto :

                  {if $a}
                  {foreach $a as $item}
                  {$item}
                  {/foreach}
                  {else}
                  "empty"
                  {/if}

                  Jestli neco takoveho uz v Latte je, tak dekuju za upozorneni. Anebo jestli Vam to prijde jako nesmysl, tak jsem zvedavy na nejaky argument.
                  Martin

                  1. v6ak

                    Re: Pokora

                    O podobné syntaxi se již diskutovalo a bylo to zavrženo jako příliš WTF, pokud se nemýlím. Ale je pravda, že tato syntaxe by mohla být lepší. Původní návrh vypadal, tuším, zhruba takto:

                    {foreach $a as $item}
                    {$item}
                    {/foreach}
                    {else}
                    "empty"
                    {/else}
                    1. Petrr

                      Re: Pokora

                      Co treba nastavit vychozi $a = array();
                      a v sablone pak:

                      {foreach $a as $item}
                      {$item}
                      {/foreach}
                      {if !$a}
                      "empty"
                      {/if}

              2. paranoiq

                Re: Pokora

                pokud jde o zadání – byla hledána taková syntaxe, která by splnila každodenní požadavky webového kodéra a zároveň byla dostatečně jednoduchá. tomu prostě twig nevyhověl

                pokud jde o pokoru – pokud by jste si všiml nadpisu vlákna či dokonce fóra, jednalo se o vývoj Nette a jeho šablonovacího systému. pokorný člověk nenarušuje debaty o věcech které nepoužívá a nechce používat a nenutí ostatním za každou cenu své nevyhovující řešení

                dané vlákno jsem před smazáním také četl a mohu potvrdit, že o pomluvy nejde. ostatně smazáním vašeho asciartu ve twigu diskuze k újmě nedošla

                1. Martin Hasoň

                  Re: Pokora

                  Milý paranoiq,
                  chtěl jsem Vám nejprve oponovat a ukázat jiný pohled na věc. Ale tímto krokem bych bohužel nejspíš porušil Názorový kodex, protože bych mohl být nařčen z toho, že jsem nesnášenlivý vůči Vašemu náboženství. Respektuji Vaši víru, ale naprosto nesouhlasím s jejími projevy – pomluvy mé osoby.

  13. lolak

    Nette

    Nette nepouzivam cele, ale za formulare jsem Davidovi neskutecne vdecny.

    „Frameworku“ :-) jsem si za ta leta pro svoji potrebu par napsal, ale na „otravne“ formulare jsem nikdy nemel cas ani chut ;-) Od te doby nevyuzivam (a nepotrebuji) na generovani a validaci fromularu nic jineho. Takze diky!

    1. HosipLan

      Re: David ako programator super

      Nechceš jít radši založit nějakou stránku kde ho budeš pomlouvat? Tohle do diskuze o frameworku moc nepatří, nebo se pletu?

    2. Dragonn

      Re: David ako programator super

      Davidovy tweety nečtu, ale jestli jde o Aničku, kterou půl roku omýlali na Nově, tak tu jsem taky neměl rád. Při zmínkách o ní jsem byl ochoten začít přepínat televizi, protože mě na tom mrzelo a štvalo to, že podobných případů byla spousta ale nikdo o tom nikde nepromluvil více jak jednou nebo dvakrát, ale když jde o peníze, tak klidně 6x denně 7 dní v týdnu…

      1. DM

        Re: David ako programator super

        Davidův vtip byl sice dost černej, ale byl to jen vtip, na rozdíl od myšlenkového průjmu, který se strhl v následující debatě. David by určitě tímto způsobem nešel kondolovat Aniččiným rodičům.
        A Anička není ta která by mohla za to, že nás média neustále masírovala tím, co se stalo. Je vcelku nepodstatné, jak moc se o tom mluví nebo nemluví, prostě to je natolik hrozný, že si to většina lidí neumí představit. Tak by se k tomu neměli raději vůbec vyjadřovat, pokud nechtějí projevit lítost.

    3. blizz

      Re: David ako programator super

      TrSek nedostatok zmyslu pre humor je prejavom nízkej inteligencie, podľa mňa ten vtip je dobrý. btw najlepšia reklama je negatívna reklama takže tým že sa na niekom pohoršuješ, mu vpodtate robíš reklamu. a okrem toho david si môže na svojom twiteri písať čo chce keď sa ti nepáči tak to nečítaj.

  14. Jaromír

    Nette je pro všechny

    Díky za Nette. Jsem opravdu rád, že jsem Nette objevil – vyřešilo se tím mnoho potíží, které jsem do té doby s PHP zakoušel.

    Důležité se mi zdá to, že nemusíte být profesionál, který dělá na zakázku 5 projektů měsíčně. Díky relativní jednoduchosti a pochopitelnosti vám může pomoct i v případě, že potřebujete napsat jen sem tam něco malého (nebo i velkého, ale sem tam).

    A nemusíte vlastně být ani příliš dobrý programátor. Nette stojí mezi vámi a všemi těmi složitými objektovými úžasnostmi. Mnoho věcí vám pohlídá, vzájemnou závislost souborů (require) neřešíte, na to jak bude vypadat URI nemyslíte, šablony používáte jaksi samosebou, chyby celkem blbovzdorně vypíše, atd… Ne, neříkejte, že to znamená, že Nette je pro bastliče, co jenom upravují hotové příklady. To by znamenalo, že o tom nic nevíte. Znamená to, že je prostě pro každého: jak pro megamindy, kteří vědí co je to Dependency Injection, tak pro ty co se sice stydí, že to nechápou, ale potřebují napsat aplikaci. Pro ty druhé, je to navíc šance mnoho se naučit a možná i získat dobré návyky.

    Překážkou je snad jen relativní nedostatek aktuální dokumentace. Mnoho návodů a rad už neplatí a někdy je těžké dopátrat se co a kdy se změnilo. Každý bohužel nemůže průběžně sledovat vývoj. Ale i tak to stojí za to.

  15. LeMongoine

    Vydání Nette

    Tak Nette 2.0 si začíná budovat svou pověst. Posunutí slibovaného termínu bety (z důvodu, že je David líný) mu vážně neprospěje – akorát se tím nasralo hodně lidí.

    1. Jiří Kuneš

      Re: Vydání Nette

      Ideální by bylo, kdyby se pan Grudl naštval tak důkladně, že by skromně z celého projektu vycouval. Jenže to se nestane. Ten pán svými obstrukcemi a sliby jen napíná komunitu, aby upevnil svou slávu a moc.

      Pěkně na kolena a proste Boha! Třeba použije svůj kýbl pokory a něco vám snese. Když budete hezky prosit.

  16. Honza

    Davide, Davide

    Davide bylo by fajn alespon nekdy dodrzet planovane terminy, kdyz uz to slibujes. Mame sobotu a Nette 2.0 beta neni na strankach uvedeno.
    Je to uz po nekolikate:( Si vzpominam, jak uz nekdy na podzim se slibovalo, ze nova verze bude do tri mesicu. Pak nekolikrat sliby v radu tydnu s beta verzi, nebo dokumentaci.
    No a ted oficialni termin padl, byt o den, ale stejne :-) A 1.6. ma byt dokumentace. No nevim:-) Byl by to asi prvni termin, co jste za posledni 3/4 roku dodrzeli:-) Skoda :-(

    1. Michal

      Re: Davide, Davide

      Ty muzes akorat tak drzet hubu a krok. Kolik si toho do Nette napsal ze si tohle dovolujes? Bud rad ze ti neco zadara vyda.
      A jeste za jednu vec bud rad. Ze to nevydava vcas nedodelany.

      1. Hmmm

        Re: Davide, Davide

        Nette nie je zas tak majstrovske dielo aby si si taketo nieco mohol pre zmenu dovolovat ty.

        Pokial sa povie termin, ma sa dodrzat. Pokial sa nevie kedy to bude hotove, tak sa nema davat termin ziaden. Zaujimave, ze napriklad taky Notch s tym problem nema. Ten povie termin vydania novej verzie az vtedy ked uz vie naisto, ze to stihne vydat. Pritom Notch ako Jakuba, tak aj Davida s ich Nette a Adminerom svojim pocinom strci hravo do vrecka.

        1. David Grudl

          Re: Davide, Davide

          Checht ;) Doporučuji omýt přirození vlažnou vodou a trávit pátky jinak, než refreshováním http://nette.org, dyk to není žádné majstrovské dílo, že si radši nestáhneš něco od Notche ;)

            1. Hmmm

              Re: Davide, Davide

              Uvadzam to ako priklad, pretoze aj napriek tomu, ze Minecraft je nepochybne na naprogramovanie podstatne zlozitejsi a casovo narocnejsi projekt nez nejaky framework pre php, tak si jeho autor dokaze velmi pekne planovat terminy vydania a navyse ich aj dodrziavat. :)

              1. Magneto

                Re: Davide, Davide

                Je evidentní, že ty sám jsi neudělal ani hru v Javě, ani framework, ale máš naprosto jasno v tom, jak je co složité a jak se mají ostatní chovat.

  17. marcela

    Re: David Grudl: Marketing Nette dělají spokojení uživatelé

    Vážení pánové, velice mě udivuje kolik máte času si tady navzájem v diskusi předhazovat, kdo je lepší. Sama jsem před časem Nette zkoušela, ale zřejmě jsem k němu intelektuálně nedospěla a zase jsem jej opustila (tak z 90% to bylo zaviněno dokumentací a rychlým až překotným vývojem, ale nevylučuji ani moji neschopnost). Podle mě máte každý svojí pravdy trochu. Přeji Nette hodně úspěchů a snad se mu podaří prorazit i mimo čechy a slovensko.

    1. Smokie

      Re: David Grudl: Marketing Nette dělají spokojení uživatelé

      No dokumentacia je uz znamy a najvacsi problem Nette.

      Preto som pre externych zamestnancov radsej napisal vlastny Nette manual, pretoze by trvalo tyzdne, ktore nemame, kym by sa naucili urobit co treba podla povodnej dokumentacie.

      A tento problem sa netyka len toho, ze je roztriestena medzi verziami 0.9 a 2.0. Ale plno veci je bud vysvetlenych zle alebo nedostatocne. Je pekne vidiet kusok kodu, ktory mam vlozit niekam, ale co z toho ked nikde nikto nenapisal kam ho mam vlozit. Preco sa to mam dovtipit sam? Preco si to mam hladat na fore? Od toho dokumentacia predsa nie je. To radsej idem niekam kde ma dokumentacia povedie za rucicku. Ak uz nic ine, setri to moj cas.

      1. Jakub Vrána

        Re: David Grudl: Marketing Nette dělají spokojení uživatelé

        Bylo by možné to zveřejnit? Myslím, že by to řada lidí ocenila.

        1. Smokie

          Re: David Grudl: Marketing Nette dělají spokojení uživatelé

          Je to interna firemna dokumentacia, takze nie. Su tam aj rozne nase vychytavky a urychlovatka, ktore nemame zaujem zverejnovat. Nie preto, ze by boli neviem ako uzasne a neprekonatelne, ale jednoducho su nase a chceme aby nasimi aj zostali.

          Ale mozno staci najst nejakeho naseho byvaleho nastvaneho zamestnanca a ziskat to od neho ;)

          1. Jakub Vrána

            Re: David Grudl: Marketing Nette dělají spokojení uživatelé

            Tak tomu říkám komunitní přístup!

            1. Michal

              Re: David Grudl: Marketing Nette dělají spokojení uživatelé

              Jo tak to je pecka :-D. Pouzivat neci framework ktery potrebuje podporu krizem krazem jak prase drbani a naferovku vyklopit ze co si do nej dodelam nikomu nedam :-D

              1. Čelo

                Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                No a? Je klidně možné, že dotyčné nové zaměstnance firma posílá k Davidovi na školení. Komunitní přístup je uživateli Nette nějak vyžadován? Podle mne jde o svobodnou volbu každého jedince či firmy. Tím nepopírám a samozřejmě si uvědomuji výhody komunitního přístupu i pro dotyčného přispěvatele.

              2. Smokie

                Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                Nemal som to spominat, moja chyba. Chcel som tym len zvyraznit potrebu vylepsenia dokumentacie.

            2. Smokie

              Re: David Grudl: Marketing Nette dělají spokojení uživatelé

              Neviem o tom, ze by som sa niekde pri pouzivani Nette zaviazal ku komunitnemu pristupu a k tomu, ze vsetko co si urobim budem povinne zdielat s komunitou. Ukaz mi kde som nieco take odsuhlasil a v tom momente prestavam Nette pouzivat (aj tak uz pomaly migrujeme na CodeIgniter).

              Prezije ten kto ma konkurecne vyhody. Pokial mi moj manual dava aspon aku taku vyhodu, tak nevidim dovod to uvolnovat a davat k tomu pristup komunite a konkurencii. Komunita mi nepomoze ak pojde moja firma ku dnu, ci ano? Nemyslim, pretoze vsetci clenovia komunity okolo Nette su si navzajom konkurentmi.

              Moj prispevok komunite je ten, ze ta upozornujem na to, ze dokumentacia je problem, nie je jednoznacna a niekedy tazko pochopitelna. :)

              1. gawan

                Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                no myslím, že s týmto tvojim prístupom tvoja firma už dlho neprežije;-)

                Mal by si poradiť Davidovi, aby si nette nechal len pre seba, lebo takto si len buduje vlastnú konkurenciu. Mal by si doma krásne vylepšovať svoje nette nikomu o tom nehovoriť a byť jednička na trhu.

                1. Smokie

                  Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                  Myslim, ze si nepochopil :) Alebo nechces pochopit.

                2. Smokie

                  Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                  Ale neviem preco sa tu niektori snazia rozputat flame alebo co.

                  Upozornil som na chybu, urobil som to co je „mojou povinnostou“ v ramci komunity. A tam sa to konci.

                  David tiez vypustil Nette kvoli tomu aby z toho mohol neskor tazit a dnes aj tazi (nie ze nie). Ak by nechcel, tak nerobi skolenia, rozhovory a marketing.
                  Ak vypustim svoju dokumentaciu, tak z toho tazit nebudem, nic mi to neprinesie. Mozno prave naopak. Preto to neurobim.

                  A takto rozmysla kazdy jeden clovek tu. Nemyslim, ze mi ma niekto co vycitat. :)

                  Tymto pomyslne uzatvaram toto vlakno, pretoze jeho ucel bol uplne iny. Ako som uz pisal vyssie, moja poznamka o vlastnej dokumentacii mala za ucel iba podciarknut nutnost poriadnej dokumentacie pre Nette. Ze to bohuzial niekto pochopil uplne opacne a zacal to brat za uplne opacny koniec, tak to ma mrzi, ale s tym ja uz nic neurobim.

                  1. Jakub Vrána

                    Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                    A čí „povinnost“ je tu dokumentaci napsat a zveřejnit?

                    Když používám nějaký open-source projekt a napíšu k němu dokumentaci, tak považuji za samozřejmé, že ji dám zpátky k dispozici. A to i přesto, že mě k tomu žádná licence ani nic podobného nenutí.

                    A řada lidí i firem už pochopila, že tímto přístupem mohou vytěžit strašně moc. Počínaje tím, že jim někdo tu dokumentaci vylepší, a konče tím, že se k nim budou hlásit schopní programátoři do zaměstnání.

                    Rozhodně vám tím ale nic nevyčítám a respektuji vaše rozhodnutí. Jen mi tento přístup „střežím si své tajemství a tím získám výhodu“ přijde jak z minulého století, protože ve výsledku podle mě funguje mnohem hůř (i když třeba oblíbenost nebo vůbec známost firmy u schopných programátorů se měří poměrně špatně).

                    1. Čelo

                      Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                      Osobně s vámi a uvedenými důvody souhlasím, ale za samozřejmé to nepovažuji.

                    2. Smokie

                      Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                      Napisat a zverejnit dokumentaciu je povinnost autora, to je myslim bez debaty, nie? Pokial chce aby sa jeho projekt uchytil medzi ludmi a zacal pouzivat.

                      Mozte uviest niektorych takychto ludi alebo firmy? Neviem si velmi predstavit ako by mohol tento krok pomoct k tomu, ze sa do firmy budu hlasit schopni programatori, ked ta firemna dokumentacia aj tak splynie s povodnou autorovou, resp. z nej bude autor cerpat. Uvedie niekde nejaky odkaz na firmu? A co ak sa rozhodne to neskor dat prec pretoze podla jeho mienky uz dokumentaciu upravil svojim dielom natolko, ze z tej predoslej firemnej nic necerpa, pricom to nemusi byt vobec pravda? Ako sa tento pripad osetri? Zmluvne asi velmi nie. Potom to bude ako pomahat firme? Iba na zaklade JPP?

                      Neviem, neviem…

                      1. Jakub Vrána

                        Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                        Příkladem takové firmy je třeba Facebook a řada jeho aktivit na poli open-source, např. HBase.

                      2. paranoiq

                        Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                        autor rozhodně není povinen napsat a zveřejnit dokumentaci. to je bez debaty. (z jakého závazku by taková povinnost vyplývala?)

                        1. Smokie

                          Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                          Druha veta prispevku na ktory si reagoval:

                          „Pokial chce aby sa jeho projekt uchytil medzi ludmi a zacal pouzivat.“

                          To je myslim bez debaty.

                  2. David Grudl

                    Re: David Grudl: Marketing Nette dělají spokojení uživatelé

                    Jen pár poznámek: žádný závazek vůči Nette pochopitelně nemáš. Jen, jelikož je současná dokumentace dílem dobrovolných nadšenců, je poněkud netaktní jejich dílo zkritizovat a současně odepřít opravu. Právě proto, že její nedobrý stav je vlastně výsledkem takových přístupů. Situace kdy je lepší mlčet.

                    K tomu těžení z Nette: na rozhovorech nevydělávám, ty diskuse naopak vyžadují silné nervy,, marketing mě peníze stojí a školit bych mohl jakýkoliv jiný framework a bylo by to snadnější.

        2. Smokie

          Re: David Grudl: Marketing Nette dělají spokojení uživatelé

          Koniec koncov ani to nie je nutne. Staci dat dohromady dokumentaciu na stranke Nette, nie? :)

          1. frosty22

            Re: David Grudl: Marketing Nette dělají spokojení uživatelé

            Takových lidí více a všichni skončíme leda u .NET / Microsoft .. samozřejmě „vykrádat“ opensource komunitu má své výhody a neváže člověka ke zpětné vazbě, ať žije Moliére

            1. Landy

              Re: David Grudl: Marketing Nette dělají spokojení uživatelé

              Co je zas tohle za blud? to povídal včera na obědě Pepa z 9.A?

  18. maryo

    Re: David Grudl: Marketing Nette dělají spokojení uživatelé

    Ale vzdyt udelat si do do Twigu funkci pripadne plugin neni zadnej problem… Tim nechci schazovat Latte, naopak, ty filtry mi prijdou jako vybornej napad… Vic konkurencnich systemu znamena vic napadu… Ja osobne si vybral Dwoo(kdybych jel na Nette tak nepremyslim o tom co si vybrat).

    V tom Dwoo by se to pak dalo zapsat treba nasledovne, v Twigu by to vypadalo dost podobne.

    <li{class array($iterator->odd=>’lichy‘,$­iterator->last=>’posled­ni‘)}>

    1. maryo

      Re: David Grudl: Marketing Nette dělají spokojení uživatelé

      Vlastne ty podminky nemuzou byt jako klice :). Tak spis nejak takhle.

      <li {attr „class“ array(‚lichy’=>$­.iterator->odd,’posledni’=>$­.iterator->last)}>

      1. David Grudl

        Re: David Grudl: Marketing Nette dělají spokojení uživatelé

        Shodou náhod takřka stejná syntax fungovala v Latte před několika lety, od té doby došlo k velkému pokroku.

        1. maryo

          Re: David Grudl: Marketing Nette dělají spokojení uživatelé

          Ajo, ted to vidim i v dokumentaci :)… Ale prave to Dwoo a Twig rekl bych prave stavi na tom ze se tam daji jednoduse psat ty pluginy, funkce a tak, jakoze se da k tomu {attr} tagu „priradit“ classa ktera vraci uz zkompilovanej/nez­kompilovanej kod podle potreby… Bidny mi neprijdou… Zase jsem to moc nestudoval ale, takze je dost mozny ze v Latte to jde taky a jeste ma vychytavky navic… Urcite by nebylo od veci to nekdy vypustit zvlast, vyzkousel bych to (pokud uz neni)…

          1. Ondřej Škvařil

            Re: David Grudl: Marketing Nette dělají (ne)spokojení uživatelé

            Davide, teď to neber jako osobní útok (nebo tak něco). Ale s neustálým nedodržováním termínů ve světě Nette moc nepochodí.

  19. Fanda

    Pěkné

    Uf, komentáře jsem dočetl jen do půlky. :-)

    Rád jsem se do tohohle rozhovoru začetl. Díky. David je mi sympatický.

    Zatím jsem toho s Nette moc nevymyslel, ale věřím těm, co tvrdí, že se vynaložené úsilí vyplatí. :-)

Napsat komentář

Přihlásit se

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: http://www.zdrojak.cz/?p=3495