56 komentářů k článku Jak jsme zmigrovali 50k řádků kódu z Nette do Symfony za 17 dní ve 2 lidech:

  1. Jarda

    Hmm, to je zajímavé. Takže píšete, že jednou z hlavních motivací byl ekosystém okolo nette, kdy spousta balíčků a knihoven není udržovaných.

    Sám Nette nepoužívám, ale stejně by mě zajímalo jak to vidí ostatn. Na jednu stranu je super, že firmy do Nette přispívají a posílají měsíčně nemalé částky. Na druhou stranu pokud ekosystém okolo skomírá, tak to moc nepomůže a podobných přechodů bude do budoucna více.

    1. Tomáš VotrubaAutor příspěvku

      Na druhou stranu pokud ekosystém okolo skomírá, tak to moc nepomůže a podobných přechodů bude do budoucna více.

      Máš pravdu. Za poslední měsíc se mi ozvaly 3 firmy, že mají o podobný směr zájem. Proto si proces migrace nenechávám pro sebe, ale sdílíme ho s ostatními. Co trochu drhlo a co bolelo. Dneska bychom s Honzou stejnou operaci zvládli do 10 hodin.

      Dnes už to není jako dřív, kdy změna frameworku znamenala zastavení vývoje na 3 roky a dělala se jednou za 10 let. V česku jedou úspěšné a vydělávající na Symfony 1.6, Zend 1 nebo Nette 0.9. Všechny zasloužili oprášit na verzi z roku 2019, ale dělat to ručně je šílené drahé, proto na nich stále jedou.

      Sám Nette nepoužívám.

      A co používáš?

  2. David Grudl

    K migraci na Symfony není naprosto žádný důvod.
    Nette Framework je v nejlepší kondici za svou existenci. Jeho ekosystém se má čile k životu, zmíněné Kdyby balíčky v tuto chvíli připravuje na aktuální verzi Nette jeden z největších e-commerce specialistů Pecka Design https://twitter.com/peckadesign/status/1108633781962006528 a zájem o Nette proniká do světa.

    K migraci na Symfony není naprosto žádný důvod.

    Článek je hromada lží a polopravd, zcela pomíjející, co přechodem z Nette na Symfony uživatel naopak ztratí, ignorující bezpečnostní otázky, ale hlavně před čtenářem tají, že se týká migrace velmi specifického projektu. U běžných projektů by přechod představoval řádově složitější a dražší problém. Se sporným výsledem.

    Což je pochopitelně záměr. Celé je to reklama na placené služby Tomáše Votruby a na jeho open source nástroje. Je pravdivá asi tak, jako každá jiná reklama na zázračné zhubnutí za 17 dní.

    Založit si byznys na manipulaci s klienty a parazitování na práci jiných je IMHO něco, co Tomáš, a znám ho pár let, nemá zapotřebí. Snad si to uvědomí dřív, než si tím zničí jméno.

    1. devnull

      Re: K migraci na Symfony není naprosto žádný důvod.
      Vývoj kolem Nette nesleduju, ani ho nepoužívám, ale tenhle příspěvek mě přiměl se na chvilku podívat.

      Přímo na homepage nette.org je upoutávka, že verze 3.0 se blíží. V 9 měsíců starém blog postu se píše, že podpora 2.4 skončila podle plánu v červnu 2018 a trojka vyjde brzo (říjen až listopad 2018).

      Pokud je Nette v nejlepší kondici, chtělo by to dát nějak vědět. Na náhodného kolemdoucího to působí tak, že neexistuje žádná podporovaná verze a vývoj nabírá mnohaměsíční zpoždění.

      1. David Grudl

        Re: K migraci na Symfony není naprosto žádný důvod.
        Článek popisoval situaci před 9 měsíci, která se od té doby hodně změnila. Prodloužili jsme podporu pro verzi 2.4, aby nebyla přerušena a zároveň mohli do přípravy verze 3.0 věnovat více času.

        Díky tomu bude Nette 3.0 jedním z úplně prvních frameworků plně využívajících všech výhod PHP 7.1.

        Oficiální představení proběhne na Nette Conference za cca dva týdny: https://conference.nette.org.

        1. Lopatin

          Re: Framework využívající všechny výhody 7.1
          Framework využívající všechny výhody 7.1. – to je nic neříkající blábol naprosto stejného ražení oproti kterému se ohrazujete.
          Že framework využívá výhody nějaké verze PHP je sice hezké, ale jestli poslední 3 roky trávili vývojáři Nette tímhle, tak je to k ničemu. Nějaká zásadní architektonické změny, které posunou framework o krok dále a které řeší problémy uživatelů, to je podstatné, nikoli nějaká verze PHP.

          1. David Grudl

            Re: Framework využívající všechny výhody 7.1
            Zrovna PHP 7 přineslo dost zásadní novinky v podobě striktního chování, sklarárních typehintů a typyhinty pro návratové hodnoty funkcí a metod. Programování to posouvá na novou úroveň a za sebe preferuji používání knihoven, které jsou striktně napsané.

            Nette tohle má, frameworky jako Symfony, CakePHP nebo Zend zatím ne. Ty se stále drží úrovně PHP 5.

            Proto má smysl tuhle přednost zdůraznit.

    2. Dok

      Re: K migraci na Symfony není naprosto žádný důvod.
      Tak, jako v open source světě existují kromě programátora různé pozice, jako např. překladatel, grafik, atd …, zapojují se do open source i odborníci na public relation? IMHO umět komunikovat s veřejností není samozřejmost. Je to obor jako každý jiný. Já odborník rozhodně nejsem, ale pokud bych měl dát zpětnou vazbu jako běžný konzument, tak musím přiznat, že současná forma na mě nepůsobí příliš sebevědomě.

    3. jkucharovic

      Re: K migraci na Symfony není naprosto žádný důvod.
      Davide napiš, prosím, článek o přechodu ze Symfony na Nette, kde všechny ty lži a polopravdy vyvrátíš.

      Redakce to zcela jistě uvítá a ráda ti za to i zaplatí.

    4. T(h)or

      Re: K migraci na Symfony není naprosto žádný důvod.
      Zajímavý přístup nalákání lidi do komunity. Když někdo odejde, když někdo začne používat něco jiného, když přestane glorifikovat, když …, tak se mu dostane Ad Hominem na rozloučenou. Uff, ulevilo se mi, že Nette je stále nejlepší. Chyba je stále jen u těch, co nemají rádi Nette.

      1. MiloNemilo

        Re: K migraci na Symfony není naprosto žádný důvod.
        Ale ne. Kdybyste průběžně sledoval dění, přijde vám ta reakce adekvátní. Takhle to asi vypadá dost ostře.

        Na Nette fóru a Slacku se běžně řeší integrace Symfony komponent do Nette úplně v pohodě.

    5. Jan

      Re: K migraci na Symfony není naprosto žádný důvod.
      Za těch 200k měsíčně zatím moc práce, kromě soukromých dovolených, vidět na Nette nejde.

      1. Martin Hassman

        Re: K migraci na Symfony není naprosto žádný důvod.

        Tohle mě zajímá. Co konkrétně není vidět? Tedy co konkrétně nevidíte a chtěl byste vidět? Předpokládám, že máte nějaké očekávání, to nebylo splněno a proto jste zklamaný. Co je to za očekávání?

        Za sebe dodám, co vidím já, když se podívám na web Nette. Jdu hned kontrolovat Download a tam vidím poslední vydanou verzi Nette 2.4 – vydáno v červnu 2016. Což mi opravdu přijde poněkud archaické. Projekt s poslední verzí z června 2016 vypadá, že umírá.

        Na tom webu se mi nabízí nějaké vývojové verze, ale když nejsem expert na Nette, tak zdovolením nějaké nestabilní verze zkoušet nechci.

        Z těchto důvodů na mě ten webu skutečně působí, jakoby projekt skomíral a David nic nedělal. Zároveň z různých informací vím, že to úplně není pravda. Připravuje se třeba nová verze, nejspíš Nette 3, ale o té jsem tam nic nenašel. Na Twitteru je vidět, že se stále něco děje děje, mění a vyvíjí, ale na hlavním webu je mrtvo.

        Z toho všeho mám pocit, že David a další dělají dost. (Nesnažil jsem se zatím přesně nalézt a specifikovat ono dost.) Ale plně souhlasím, že to vidět nejde. Nejsem součástí komunity Nette, jen pozorovatel zvenčí a vidím… ano ono mrtvo.

        Vnímám to spíš jako komunikační problém. Čili PR problém. Možná by stačilo říct něco jako „Makáme na Nette XY, až ho vydáme, pochopíte, co jsme vše dělali a proč to vypadalo mrtvě.“

        Ale to jsou jen dohady. A jsem zvědav, s čím Nette přijde. A zda to (zvenčí) uvidím.

        1. David Grudl

          Re: K migraci na Symfony není naprosto žádný důvod.
          Uživatelé Nette sledují dění spíš přes release notes na fóru/GitHubu nebo přes blog a stránky ‚download‘ se staly od nástupu Composeru druhotnou záležitostí. Ale díky za postřeh, že pro kolemjdoucího to může působit jako skomírající projekt.

          Přidal jsem proto stránku https://nette.org/en/releases kde je vidět, že aktivita je opravdu neutuchající :-)

        2. Oldisy3

          Re: K migraci na Symfony není naprosto žádný důvod.
          Jo už tak rok co občas zavítam na nette.org a nebo blog, si řikám hm asi ude lepší se rozmyslet jestli přejít na laravel nebo symfony. je fakt že do downloadu sem se dlouho nedival, nejaky opravy composerem chodej, ale blog ve me budi dojem ze se nic nedeje (samozrejme vim e se vybirali/jí penize a dělá se verze 3, ale aby nebyla poslední), kdyby se tam objevil třebai kratší text co cca 14 dní nebo měsíc hned by to budilo víc důvěry.

    6. /dev/urandom

      Re: K migraci na Symfony není naprosto žádný důvod.
      Trochu pouzivam Nette, trochu Symfony, ale hlavne, a nestydim se za to, pouzivam Laravel.

      Ale souhlasim, ze tohle pusobi jako reklamni clanek a to zpusobem, jakym pest pusobi na oko.

      A nejhorsi fabulace jsou polopravdy a zaroven je vyvratit da mnohem vic casu nez je vytvorit, tak na to kaslu.

    7. Tomáš Syrový

      Re: K migraci na Symfony není naprosto žádný důvod.
      Tak nějak mne mrzí, že vznikají dva tábory „only-nette“ a „only-symfony“. Místo toho, aby se oba dva frameworky vzájemně inspirovali a používali navzájem, tak vzniká válka o to, kdo má větší pé*o. Oba dva frameworky mají své plusy a mínusy a je dobré znát oba dva a chytře je kombinovat. Koneckonců i to se děje – SymfonyBundles se integrují do Nette a z Nette do Symfony přechází často Laděnka/Tracy (byť už je to samotný projekt) a jistě i další balíčky/zvyklosti apod.

      Nette jsem používal na hodně úspěšných projektech a Symfony zrovna tak. Nemyslím si, že Nette nějak umírá – to spíš Symfony dělá různé skopičiny a jede moc hrrr… Častěji jsem řešil nesoulad v Symfony balíčcích než v tom, že by Nette zastaralo.

      Přepis Presenterů do Controllerů a Latte do Twigu – jako vážně? Proč to?

      Věta Tomáš Votruby, že Nette skomírá, a proto se rozhodli přejít na Symfony, je zavádějící. Kdyby napsal, že si to prostě chtěli vyzkoušet, nebo že nabírají programátory z Francie, tak ok. Vlastně už ani neplatí běžný argument, že Nette je one-man show. Co bude Tomáš dělat, až bude skomírat Symfony? Bude migrace zpět na Nette, Laravel, Yii, Zend? A není to vlastně vůbec jedno?

      Na druhou stranu Davidova reakce není úplně šťastná, ale je pochopitelná. Myslím, že kvůli Davidovi se hodně lidí něco naučilo a nyní vydělává za to těžké prachy. Je jedno, jestli aktuálně používají Nette nebo Symfony… Musí to ale umět dobře!

      Rector je zajímavý – někdy v noci si ho doma z postele vyzkouším na něčem lokálně, ale na vydělávajícím projektu si to nelajznu…

    8. Lukáš Brzák

      Re: K migraci na Symfony není naprosto žádný důvod.
      Davide, takové vyjádření je hodno malému dítěti, kterému sebrali hračku a tak kope kolem sebe jako splašené. Používat dokola jakousi anketu (z roku 2015) o oblíbenosti frameworků je komické. Zkus přijmout fakta a podívat se na reálná čísla, která mají o oblíbenosti frameworků skutečnou vypovídající hodnotu:

      Za mě je odchod od člověka jako jsi ty naprosto pochopitelný a pokud to chceš změnit, buď pro svou komunitu dobrý leader hodný následování. Kritika je často opodstatněná, ego je tvůj velký nepřítel.

    1. Dok

      Re: heh
      A za dalších pár roků zjistíte, že nejlepší je čistá světnička bez počítačů někde v Beskydech nebo třeba v Horehroní. PHP vám ovci neostříhá. Akorát jsme možná na špatném serveru. :-)

  3. Lopatin

    Ajaj, Nette od 10ti k 5ti?
    Za mě určitě palec nahoru. Je na každém jak si situaci okolo Nette vyhodnotí. Já bych si jí vyhodnotil stejně. Je sice fajn že po injekci 200k měsíčně odplynul autorovi Nette splín a chystá pro nás novinky, nicméně roadmapu Nette jsem nenašel, Google vrací tohle – Nette 3.0 alpha vyšla před 3mi lety – https://forum.nette.org/en/28023-nette-3-0-0-alpha-released. U Symphony je tohle https://symfony.com/roadmap.

    Mě to stačí k souhlasu s článkem a kdybych k tomu měl ještě někoho jako Tomáš Votruba, který prostě v Symfony umí parádně, tak vůbec neváhám a klidně mu na to dám i měsíc, protože se to vyplatí!

    Z reakce Grudla je jasně vidět jak je Nette na tom bídně. Pane Grudle, pokud je to všechno kupa lží a polopravd, tak tady čekám článek, který to vyvrátí a který předvedete migraci obdobného projektu ze Symfony na Nette/Kdyby (samotné Nette by to na to nestačilo? hm asi ne) s tím jak to všechno bylo parádní a s jakými cool nástroji z Nette ekosystému to zvládli. Samozřejmě článek bude nikoli od Vás, Vy se věnujete přece naplno programování, ale od nějakého vašeho zákazníka/uživatele. Do té doby jsou ty Vaše výlevy jen kupa lží a polopravd.

    P.S.: Redakci prosím o lepší korekturu, hned na začátku: API aplikace ostavená na presenterech, routingu. A v textu jsou i další překlepy.

    1. David Grudl

      Re: Ajaj, Nette od 10ti k 5ti?
      Byl bych velice rád za článek od uživatelů Nette, který by popsal migraci z jakéhokoliv jiného systému, výhody i úskalí, ale jak jistě potvrdí redakce Zdrojáku, lidem se články psát nechtějí a je velmi těžké najít nové autory. Byť vím o spoustě takových případů.

      Koneckonců tohle není článek od spokojeného uživatele. Je to článek od autora všech zmiňovaných migračních nástrojů. Je to tedy čistě reklamní text. Když výrobce přípravků na hubnutí sepíše článek o tom, jak jsou jeho přípravky skvělé, je dobré při čtení trošku zapojit kritické myšlení.

  4. bene

    Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
    To že se jedná o specifický projekt Tomáš Votruba uvedl v první větě v první sekci „Co jsme migrovali?“. Cituji „API aplikace postavená na presenterech, routingu, Kdyby integracích Symfony, Doctrine a pár Latte šablonách“. Tento popis mi stačí, abych si udělal představu, jak takový projekt vypadá. Článek je navíc určený pokročilejším programátorům, který by si představu měl schopen udělat také. Článek pak obsahuje v podstatě všechny zásadní změny, které byly potřeba udělat.
    Tudíž nařčení Tomáše Votruby je lživé.

    Pokud David Grudl kritizuje Tomáše Votrubu, že si daným článkem dělá reklamu, cituji „Je pravdivá asi tak, jako každá jiná reklama na zázračné zhubnutí za 17 dní.“, tak by si měl první zamést před vlastním prahem. Na svém webu se Nette chlubí (dělá si reklamu), že je třetí nejoblíbenějším PHP frameworkem na světě (https://www.sitepoint.com/best-php-framework-2015-sitepoint-survey-results/). Každý, kdo rozumí statistice nebo má alespoň trochu selského rozumu a umí číst zjistí, že 770 hlasů, což je druhé nejvyšší skóre hned po USA s 819 hlasy, je z České republiky (300 mil obyvatel VS 10 mil obyvatel). Francie (odkud Symfony pochází, 65 mil obyvatel) dodala 343 hlasů.
    Tím samozřejmě nerozporuji, že by Nette na třetí příčku nedosáhlo. Nicméně je jasné, že rozdíl cca 500 hlasů mezi Nette a Symfony absolutně neodpovídá realitě a o oblíbenosti daného frameworku vypovídá asi tolik, co reklama o účinnosti pilulek na hubnutí.
    David Grudl přirovnává článek (použité nástroje) k reklamě na hubnutí ve více komentářích a tím se snaží autora očernit. A i kdyby to byl jen článek napsaný proto, kde autor představí svůj produkt na reálném příkladě, zdůvodní pohnutky, nevidím na tom nic špatného.

    Tomáš Votruba v komentářích uvedl, že dotaz na převod měl již od třech firem. David Grudl předpokládám takové dotazy nedostává, to ale neznamená že neexistují a napsat větu „Založit si byznys na manipulaci s klienty…“ je daleko za hranicí slušnosti.
    Tomáš Votruba přidal odkaz na svůj anglický článek, který popisuje situaci kolem Nette. A rozhodně má pravdu. Sám jsem v Nette programoval a přešli jsme před lety na Symfony. Jedno z nejlepších rozhodnutí, co jsem jako člověk zodpovědný za vývoj udělal. Bylo v tom víc než jen legendární tweet Davida Grudla, to ale není podstatné. Podstatné je, že když se zeptáte většiny Symfony vývojářů, kteří přešli z Nette, tak tento tweet uvedou jako hlavní argument. Upřímně a bez nadsázky Davidovi Grudlovi za tento tweet děkuji. Otevřel tím Symfony dveře do ČR, vznikla konkurence ze které těží vývojáři (mohou si vybrat) a také firmy (mají na výběr programátory). Vlastně by měl dostat od antimonopolního úřadu cenu.

    Dále David Grudl argumentuje, že Kdyby balíčky se nyní aktualizují, ale věděl to Tomáš Votruba v době kdy tento převod uskutečnili? Že je Nette ekosystém v nejlepší kondici? První zmínka „Nette 3.0.0 alpha released!“ je na forum 2 roky stará. Já si tedy žijící ekosystém představuji jinak. Ano, díky příspěvkům se situace změnila, ale jak je to dlouho? A co ten čas před tím? Nette ztratilo, vznikla poptávka po Symfony a myslím, že je zbytečné abych tu dále vypisoval proč.

    Je nesmysl tady vyzývat Davida Grudla, aby napsal článek na téma „Ze Symfony na Nette“ protože takovou potřebu nemá. Takovou potřebu nejspíš nemá jediný člověk na světě. Nicméně by měl někdo z Nette komunity, pokud nechtějí aby slova Davida Grudla byly jen mlácení slámy, vydat článek vysvětlující větu „…zcela pomíjející, co přechodem z Nette na Symfony uživatel naopak ztratí, ignorující bezpečnostní otázky…“, kterou se David Grudl ohání. Obzvlášť informace ohledně ignorace bezpečnostní otázky mě velmi zajímají. Pokud tedy nepůjde o autoescape Javascriptu v Latte, kdy v Twigu musíte udělat <script>{% autoescape 'js' %}{% endautoescape %}</script>, protože to je ohraná písnička, která v Symfony světě nikoho netrápí. A argument, že je to otravné/že na to můžu zapomenout neberu. Javascript píšeme pouze takto a pokud někdo píše inline, tak to je chyba sama o sobě. Za to Nette trpělo (možná stále trpí) problémem komponentového návrhu, kdy nezkušený vývojář v Nette udělá lehce, na první pohled neviditelnou chybu v zabezpečení komponent (vyvolávání komponent v jakékoliv akci v presenteru).
    Symfony se o security stará, ostatně je autorem https://github.com/sensiolabs/security-checker. O security problémech informuje https://symfony.com/blog/category/security-advisories a fixuje je.

    Pokud se Nette skutečně postavilo na nohy, přeji mu mnoho štěstí.

    • Pokud na něm stojí projekty, které se v podstatě jen udržují, je nesmysl měnit framework
    • Pokud máte ve firmě špičkové programátory v Nette a platí co píše David Grudl, nemá smysl se přeorientovávat
    • Pokud se rozhodujete co ve firmě dál, co se jako programátor naučit za framework, se Symfony nemůžete šlápnout vedle a z osobních zkušeností považuji Symfony za lepší volbu. Stačí se jen podívat, jak Symfony informuje o novinkách https://symfony.com/blog/. Po stránce dokumentace ale i technické a funkční má Nette co dohánět (celý tento bod je můj subjektivní názor)

    Závěrem bych chtěl říct, že David Grudl pro českou PHP komunitu udělal hodně a zaslouží si respekt. To ale neznamená, že nemůžeme být k Nette kritičtí. Že někdo nemůže napsat článek o přechodu z Nette na Symfony, aniž by pak byl urážen a navíc dost pofiderně. A pokud lidé z Nette komunity na tento slušně, věcně a v podstatě neutrálně napsaný článek reagují takto, jsem rád, že už nejsem součástí

    1. Oldisy3

      Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
      dávam plus.
      dotaz: o laravelu jste neuvažovali?

      1. bene

        Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
        Na Laravel jsem se díval, ale odradil mě jeho statický přístup. Nechci tady vyvolávat flame ohledně static hell, mám pocit že Laravel Facades není nutné používat a lze psát čisté DI, ale návrhové vzory typu Service Locator, Active Record, Singleton a pod jsem zažil na několika větších projektech a vyhýbám se jim obloukem. Nehledě na to, že Laravel staví na Symfony komponentách, hlavně pak na http-kernel a http-foundation což je jádro Symfony frameworku. Tak proč nevyužít rovnou Symfony?

        Dalším obrovským kritériem byla stabilita/zázemí frameworku. Nechtěli jsme se dostat do stavu, který panoval v Nette (aktuální stav neumím posoudit). Mám pocit (už si to moc nepamatuji, takže se možná mýlím), že Laravel byl na tom podobně jako Nette, tzn. One man show. Za Symfony stojí společnost, která do něj nasypala obrovské peníze (http://fabien.potencier.org/sensiolabs-raises-5-million-euros-to-boost-the-symfony-ecosystem.html), přesto nebyla v plánu žádná prémiová verze, stále licence MIT a to už je pořádný argument.

        Dalším kritériem byla dokumentace. Kdo chce, může se podívat. Za těch x let si nepamatuji že by nově vydaná featura nebyla ihned v dokumentaci. Možná jsem měl štěstí, nevím. Samozřejmě jsem za tu dobu na cca 2 „chyby“ v doc narazil, ale to fakt řešit nebudu. Odkaz na novinky jsem jako příklad, jak Symfony informuje, dával. Každé pondělí v tramvaji si přečtu, co se za ten týden udělalo, co se plánuje, kdo co o Symfony napsal, jaké jsou trable jiných vývojářů a co by chtěli změnit a odkazy na další zajímavé stránky o návrhu aplikace, použití toho či onoho v souvislosti se Symfony. Každé pondělí! A pokud potřebuji, zobrazím si přehledně co v jaké verzi je za novinky https://symfony.com/blog/category/living-on-the-edge

        Dalším kritériem je LTS verze a sémantické verzování. Obojí Symfony má https://symfony.com/doc/current/contributing/community/releases.html a https://symfony.com/doc/current/contributing/code/bc.html. Sémantické verzování je obzvláště u frameworku, který je integrován do poloviny zdrojáků velmi důležité. Projekty, které hodně žijí pravidelně updatujeme a máme je na aktuální verzi. A díky Symofny přístupu je to paráda. V minor vezích jsou deprecates a první následující major verze je stejná jako poslední minor, ale očištěná o deprecates. Nepamatuji si, že bychom měli s nějakým přechodem problémy, vždy to proběhlo hladce. Možná jsme měli štěstí, že jsme nepoužili něco, co se pak rušilo. Nedávno jsme akorát jednu security autentizaci (jedna třída) předělávali na Guard, protože ta původní je deprecated. Ale do verze 5.0 bychom to vůbec dělat nemuseli. Pamatuji si, jak jsme u Nette šíleli když v nějaké minor verzi byla odstraněna konstanta Form::REGEXP nebo tak nějak. Abychom mohli přejít na novější verzi, která řešila bugfixy a nějaké nové features, museli jsme prolést cca 20 repozitářů s moduly a nahradit to. V Symfony by jsme to udělali postupně, pěkně v klidu, každý ve svém modulu, za který je zodpovědný, … David Grudl tuším někde napsal, že Nette sémantické verzování dodržovat nebude, ok, klidně, ale co se mě týče, děkuji nechci.

        Další kritérium pro výběru frameworku bylo jeho rozdělení na jednotlivé komponenty. Potřebovali jsme vybudovat jednu část projektu, který běží na Nette 0.9 nově tím, že ji připojíme. Symfony tohle splňuje od verze 2 a využili jen několik komponent. Začínali jsme tuším na verzi 2.1 nebo 2.2. Nezamýšlený benefit z toho byl, že manuálním spojováním komponent dohromady získá programátor skvělou zkušenost a představu, jak to celé funguje.

        Další kritérium byla koncepce přetvoření Request to Response a vyhnout se konceptu Nette Application, což považuji za jednu z jeho největších technických vad (to je na samostatnou diskuzi). Co jsem četl (omlouvám se, pokud to je jinak), Nette má v plánu přejít na koncept Middleware. Pokud to ale nebude v ohlášené verzi 3, tak Nette vývojářům není co závidět. Pominu-li aktuální koncept samotný, tak s verzí která Middleware přinese přijde i jiný styl vývoje v Nette. Nette předpokládám bude mít middleware, který zpětně původní koncept implementuje, jinak by si úplně podřezal větev, ale bude to trochu schizofrenní stav. Ale možná si to jen špatně představuji a bude vše při starém. Symfony už svou cestu našlo od verze 2 a jen provádí evoluci, která výrazně usnadňuje programátorům život. Symfony tuším verze 3.4 je dokonce revoluce v konfiguraci projektu, kdy projekt teoreticky nakonfigurujete na cca 10 řádků (podle množství použití skalárních typů v konstruktorech a i to lze snadno vyřešit obecným bindem). Mám pocit že Nette zatím jede po polňačce a na asfaltku teprve možná vyjede (to není myšleno hanlivě).

        Samozřejmě ani Symfony není dokonalé. Vadí mi několik věcí

        • V příkladech je používán abstract controller, který umožňuje použití DI jako Service Locatoru. Mě osobně se to nijak netýká, navíc controolery jsou dosti specifické (měli sloužit jen k transofmarci HTTP dat), tudíž to tolik nevadí. Ale je lepší učit programátory dobrým návykům od začátku. V tomto jsem něco jako programátorský inkvizitor, a také proto jsem Laravel zavrhnul velmi rychle
        • Razení přístupu použití modelových entit ve formuláři (stejně jako předchozí bod)
        • Komplikované zastavování validace na nějaké constraint (Group Sequence)
        • Translátor context – To co Tomáš Votruba ve svém článku u translátoru popsal jako „Syntax Sugar? Syntax Hell“ by vlastně měl být výchozí stav
        • „Iterface“ suffix – Toto není vyloženě chyba Symfony ale PHP komunity obecně. Nicméně Symfony s Doctrine (která ho má snad jen u jednoho rozhraní) možná měli sílu tuto zrůdnost přebít. Nette to dělá (dělalo) taky špatně (prefix „I“), ale je to alespoň kratší

        Když už jsem se tak rozepsal, tak se ještě vrátím k článku Tomáše Votruby, kdy jsem si uvědomil, že jednu polopravdu tam skutečně má. Jedná se o routování. Není totiž pravda, že v Symfony je to naopak, respektive zvolené anotace jsou pouze jednou z možností. Lze routy definovat stejně jako v Nette v jednom souboru. Podporované formáty jsou YAML, XML, PHP a zmíněné annotace. Osobně preferuji (a používáme) YAML. Anotace mají své výhody i nevýhody. Přiznám se, že teď nevím jestli leze určit pořadí importovaných rout z anotací, ale pokud ne, tak je problém pokud by jste měli nějakou obecnou routu, která bude řešit slug z databáze. Tato routa by pak mohla předběhnout specifické routy. Lze samozřejmě takovou routu udělat jinak a zaručit, aby byla poslední, ale pak se dostanete do schizofrenního stavu kdy něco je tak a něco jinak.

        Původně jsem chtěl pouze odpovědět proč Symfony a ne Laravel. Když jsem si to po sobě přečetl, zní to jako reklama :D Raději to uvádím rovnou, protože tuším, jaká by pak byla reakce. Ale nakonec proč ne. Proč nepodporovat framework, který používám, vždyť je to také jistý způsob přispívání. Rozdíl mezi výše napsaným a reklamou na pilulky na hubnutí je cca 10 let (cca 8 let aktivně) vývoje v Nette 0.9 – 2.3 a cca 6 let v Symfony 2.2 – 4.2.

        P.S.: V dávné době jsem doporučoval Nette, napsal jsem nějaký návod, chtěl jsem vydat extension (v době kdy jsem už primárně dělal v Symfony), ale z toho sešlo, protože Nette DI trpí koncepční chybou a byl trochu aktivní na foru.
        Netvrdím, že jsem pro Nette udělal hodně, jen to uvádím, kdyby mě někdo chtěl napadnout, proč jsem něco podobného nenapsal pro Nette

        P.S.2: Pokud to tak vyznělo, tak se omlouvám, ale nebylo mým cílem se navážet do Nette nebo Davida Grudla, ale jeho reakce na Tomáše Votrubu je dost přestřelená. Mě je situace kolem Nette vlastně už ukradená. Máme jediný projekt na verzi 0.9, který dožije a rozhodně ho nebudeme povyšovat pomocí Rektora natož ručně ;) Všechny ostatní projekty na Nette byly subdodávka/spolupráce pro někoho jiného a ti se o ně starají sami. Tudíž se mě situace kolem Nette nijak nedotýká.
        Pokud to byla reklama Tomáše Votruby na své produkty a když se nad tím člověk logicky zamyslí, tak on ani automatizovaný update/přechod než u frameworku nebo větší knihovny nedává smysl. A prostě to padlo na Nette. Chápu, že to Davidovi není příjemné, ale Tomáš nenapsal nic hanlivého, pouze popsal své pohnutky a situaci jak ji vidí. David mohl slušně oponovat. Pak by má reakce nikdy nevznikla

        Přeji hodně štěstí s výběrem frameworku…

        1. Oldisy3

          Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
          Dík za vyčerpávájící odpověď.
          No situace kolem nette na mě působyla takovým dojmem že asi tak verze 3 bude poslední. A z toho důvodu sem se začal dívat po jiném fw, čili teď přemítám (ještě nerozhoduji) jestli laravel nebo symfony. A zatím je to u mě na úrovni že nemám rád vážnou hudbu, ikdyž samozřejmě používám v aplkacích symfony komponenty (kdyby console), ale i treba collection z cakephp, z laravelu zatím nic, ale čeho se děsím je twig. Nelíbí se mi syntaxe (odkojen na smarty).
          Middleware uvidíme jak dopadne, v současné době mě třebas trápí že musím hakovat Form abych do něj dostal container s addXXX vlastníma controlama a měl je v našeptávání, spíš by se mi líbylo kdyby bokem formu existoval builder, se sadou addxxx. no uvidíme jak to dopadne.
          A protože sem zdědil spoustu palikací na nette, tak i teď u jednoho projektu přecházím z noFW na nette.
          Ale co se volby laravel/symfony týče, budu muset zkusit na nich něco postavit abych se rozhodnul fundovaně.
          Uvidíme jak to kolem nette bude pokračovat.

          1. bene

            Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
            Ohledně Twigu je to velmi individuální. Mám třeba kolegu, kterému se syntax Latte vůbec nelíbí. Jediné co mi ze začátku chybělo jsou n makra, ale dnes už si na ně ani nevzpomenu, pokud nezačne debata jako tato. A syntax mi přijde v poho, nemám s ní žádný problém. Je to o zvyku, ale chápu, že se to někomu nemusí líbit. Dále musíš dvěma řádky ošetřit autoescaping v Javascriptu, to jsem už někde zmiňoval.

            Za mě má Twig několik featur, kvůli kterým bych Latte už nepoužil (možná už má některé i Latte):

            • Perfektní a aktuální plugin do PhpStormu
            • Zobrazení chyb v Twigu ne v PHP (pokud máš chybu v syntax ve Twigu)
            • Parádní rozšiřitelnost (makra, funkce, filtry). V Latte mi to nevyhovovalo i když přiznávám, že se to s každou verzí zlepšovalo
            • Neřeším, co je pole, promenna nebo get/is metoda, proste píši user.id, je to hrozně návykové
            • Proměnná nemá na začátku dolar
            • ŽÁDNÝ PHP kód, nutí tě to dělat šablony čisté
            • Absolutní odkazování na další šablony. Latte to dělá relativně, což komplikuje jejich přetěžováním které je běžné, zvláště pokud máš vlastní komponenty
            • Klasický parser místo regularních výraců, které neskousnou třeba toto {include $path→root('xyz.latte', ['a' => 1])}. Je třeba si uložit to pole první do proměnné a tu pak použít (ten příklad řeší předchozí bod)

            Pokud používáš PhpStorm, tak formuláře v Symfony jsou super. Prvně se mi nelíbili definice chování typů (control v Nette) přes pole, jenže díky pluginu do PhpStorm to není nutné řešit. Plugin je aktualizovaný, dokonce ti napovídá jaké položky (name) do formu přidávat, když ho máš spojený s třídou. Ano pokud nepoužíváš PhpStom, je to na houby (nikoho takového neznám, ty cca 2 tis ročně za to stojí). Na první pohled jsou Nette formuláře výrazně jednodušší, ale jakmile jsem jich pár udělal, vrátit bych se nechtěl.

            Symfony formuláře mají několik benefitů (možná už má některé i Nette):

            • Typy jsou služby, tzn. můžeš mít svůj typ, třeba výběr států, které máš v databázi. Pak už jen ve formu ten typ použiješ a nemusíš si zároveň injektovat službu vytahující ti dané objekty z db (to už máš v tom typu)
            • Můžeš pracovat s objekty, třeba v selectboxu
            • Můžes provázat s objektem
            • Dynamické formy díky eventům
            • Spousta předvolených typů (https://symfony.com/doc/current/reference/forms/types.html)
            • Oddělený render od logiky
            • Předpřipravené styly pro bootstrap

            Nevím, jak hackujes Nette formy, abys tam měl svoje addXyz(), ale lze to udělat jednoduše:

            class MyForm extends Nette\Application\UI\Form
            {
                use MyContainerTrait;
            }
            
            class MyContainer extends Nette\Forms\Container
            {
                use MyContainerTrait;
            }
            
            trait MyContainerTrait
            {
                public function addContainer(string $name): MyContainer
                {
                    // Stacilo by volat parenta,
                    // kdyby Nette melo v teto metode $control = new static;
                    $control = new MyContainer();
                    $control->currentGroup = $this->currentGroup;
                    if ($this->currentGroup !== null) {
                        $this->currentGroup->add($control);
                    }
                    return $this[$name] = $control;
                }
            
                public function addMyControl(string $name, string $label = null): MyControl
                {
                    return $this[$name] = new MyControl($label);
                }
            }
            
            $form = new MyForm();
            $form->addText('text');
            $form->addMyControl('my_control');
            $form->addContainer('container')
                ->addText('text')
                ->addMyControl('my_control')
            ;
            

            Lze dosáhnout i chování jako v Symfony, mít v controls injektnuté služby. Stačí si udělat továrnu na svůj form a tu pak injectovat do kontroleru
            Navíc to má výhodu, když bude v Nette něco odstraněno, ty si to přidáš na jednom řádku.

            K tomu mě napadá jedna věc, jak David Grudl vychvaloval, že Nette 3.0 má všude typhinty. No tak to pak udělat nepůjde (pokud by sis neudělal metodu addMyContainer()), dokud nenasadíš PHP 7.4. Doufám, že Symfony se striktním typováním počká

            1. bene

              Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
              Oprava k poslednímu odstavci:

              /**
               * @return MyContainer
               */
              public function addContainer(string $name): Nette\Forms\Container
              {
                  $control = new MyContainer();
                  // ...
              }
              

              Bohužel se ale dostaneš na úroveň PHP 5

            2. Oldisy3

              Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
              presne jak si uved priklad formu to mam poskladane, povazuju to za necisty hack, container je v podstate god object, a mam s tim filosofickej problem.
              pouzivam eclipsu s codemixem.
              jak sem psal sem odkojenj na smarty, v tom pridelat filtr/makro bylo peklo take prechodem na latte sem si dost polepsil, samozrejme zezacatku sem udelal skolackou chybu a vyzbrojen znalostmi co vsechni to umi, sem spachal nekolik slozitejch sablon.
              v soucasne dobe se snazim udrzet sablony co nejjednodussi, pokud mozno bez nested ifů, a bussines logiku tedy resit v componente a do sablony posilat to co se skutecne bude zobrazovat, snazim se v sablonach ani prilis neopuzivat filtry. kdyz uz mam vlastni makra tak bootstrap opakujici se triviality.
              n makra se snazim neopuzivat, sou ve zdrojaku spatne videt.
              jestli se nepletu v typehintu muze bejt interface, takze snad nette 3 bude trochu vic ointerfacovane, a tedy to pujde. container jako takovej by klidne mohl byt zvlast, treba traita, ve spouste component ho nepotrebuju.
              do sablon vetsinou posilam but scalary nebo dto, takze neresim jestli je to pole nebo object.
              Tak to bych ucinil za dost racionalizaci.
              A co se control tyce, $form->addXXX se mi kdyz to pouzivam taky moc nelibi a spis bych dal prednost kompozici, $form->add( ….), prave proto abych nemusel mit god object container, a moh to mit tak jak to zhruba popisujes ze to ma symfony.
              Jo uvidime jak nette 3 dopadne

              1. bene

                Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
                $form->add(...) respektive $builder->add('name', Text::class, [...options...]), tak to řeší Symfony. Type (v Nette Control) jsou samostatné třídy/služby. Bez PhpStorm respektive bez napovídání klíčů pro options to není moc konfortní. Dá se to ale přežít, neboť většinou opakuješ ty samé klíče, tudíž si je zapamatuješ a když zadáš neplatný, zařve ti to, tudíž chybu neuděláš.

                Co se rozšířitelnosti macro/filter/funkce týče, mám s Twigem lepší zkušenost než s Latte. A pokud neřešíš n makra tak, pominuli „drobné“ rozdíly v syntax, nejde o žádnou výraznou změnu (co se šablon samotných týká)

                1. Oldisy3

                  Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
                  ještě mám dotaz, dá sse v symfony udělát formulář se snippetama bez manuálního renderu?

                  1. bene

                    Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
                    Bohužel té otázce nerozumím, můžeš uvést příklad?

                    Symfony má default render v twigu pro formy v několika variantách (div layout, bootstrap 3, 4, table) a můžeš si přetížit globálně/lokálně celý type (control) nebo jen konkrétní type v daném formu.

                    Dobře je to popsané zde:

        2. srigi

          Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech

          P.S.: V dávné době jsem doporučoval Nette, …, ale z toho sešlo, protože Nette DI trpí koncepční chybou.

          Toto by ma zaujimalo, mohol by si v rychlosti napisat o co ide?

          1. bene

            Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
            Nette DIC lze zkompilovat přímo do vygenerované PHP třídy (řetězec). Ten jsi schopen pak evalem vykonat, aniž by jsi musel zapsat na disk, ale je to celé tak nějak nemotorné. Pokud lze kompilovat bez generování třídy, pak se omlouvám za mystifikaci, zdrojáky jsem podrobně neprocházel.

            class Foo
            {
                public function bar(): string
                {
                    return 'bar';
                }
            }
            
            $generator = function (Compiler $compiler) {
                $builder = $compiler->getContainerBuilder();
                $builder->addDefinition('foo')
                    ->setFactory(Foo::class)
                ;
            };
            
            $class = 'MyContainer';
            $compiler = new Compiler();
            $compiler->setClassName($class);
            $generator($compiler);
            $code = $compiler->compile();
            
            eval($code);
            
            $container = new $class;
            
            $foo = $container->getService('foo');
            echo $foo->bar(); // "bar"
            

            Nepamatuji se, jestli byl tenkrát Compiler zvlášť (kompilace do třídy bez zápisu na disk) neprocházel jsem zdrojáky. To vedlo k problémům např. v testech (proto jsem extension nedokonočil).

            Daleko logičtější je kompilovat DIC nezávisle na generování PHP třídy. Pro vygenerování PHP třídy mít serializer, který serializuje již zkompilovaný DIC.

            Takto se to dělá v Symfony:

            $builder = new ContainerBuilder();
            
            $builder->register('foo')
                ->setClass(Foo::class)
                ->setPublic(true)
            ;
            
            $builder->compile();
            
            $foo = $builder->get('foo');
            echo $foo->bar(); // "bar"
            

            Je více věcí, které se mi v Nette DIC nelíbí. Např. že se třída nastavuje přes metodu setFactory, když ten kód čtu, nerozumím mu, je to matoucí. Toto je třeba prkotina, jiné jsou docela zásadní, ale raději už to vypisovat nebudu.

    2. David Grudl

      Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
      Fenomenální je to neuvěřitelné množství energie, které lidé vkládají do zdůvodňování a racionalizace proč všechno kolem Nette je špatně.

      Dokonce i taková fajn věc, jako že komunita kolem Nette pro něj ochotně hlasovala v anketě magazínu SitePoint, stejně vede k tomu, že se najde kritik, co je znechucen tím, že mám odkaz na anketu na svém vlastním webu. To je opravdu fascinující, opovržením Čechů ze všeho českého.

      Vždyť je to absurdní. Dám vedle sebe dva šablonovací jazyky, jeden má zjevně jednodušší syntax a prvenství v ve vymýšlení způsobů, jak se dá předcházet bezpečnostním dírám, druhý je složitější a bezpečnost tak moc zdaleka neřešil, ale nikdy si v žádné diskusi nepřečtu nic jiného, než že ten první je úplně špatnej.

      Svět českého OS je svět naprosté nepodpory, pohrdání, snahy všech dostat každého, kdo se jen pokusí něco zajímavého vytvořit, zpět na kolena. Sám jsem k Nette velmi kritický, ale bohužel když žiji v prostředí, kde nic jiného než kritičnost není, kde se musím neustále sám obhajovat, ve zcela hostilním prostředí, tak tam volání po vetší kritičnosti prostě neberu. Kritičnost je mor Čechů.

      1. David Grudl

        Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
        A teď mi prosím napište, že nebrečím :-)

        Děcka, my bysme mohli být tak šikovný národ, ale bohužel se tak nesnášíme, že nemáme šanci.

        1. Kolemjdouci

          Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
          To proto ze open source je komunismus co nefunguje

      2. oss

        Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
        To pre to, ze OSS komunita (aspon v CR a SK) je cisty komunizmus a nabozensky fanatizmus v jednom. Sklamal som sa v nej uz velakrat.

      3. Oldisy3

        Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
        Zrovna šablonovací systém na nette mám rád (možná pozůstatek po smarty) syntaxe je jednodušší, nevim koho to napadlo v twigu psát {{ a }}.
        nadruhou stranu se domnívám že latte toho řeší zase až zbytečně moc, svádí to k psaní bussines logiky do šablon.

        1. Jakub Podhorský

          Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
          to je jednoduchý. Snadný přechod s Jinja2.

      4. Oldisy3

        Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
        Zase i ta kritičnost má svá pozitiva, výsledky jsou dovedené k dokonalosti.

        1. Martin Hassman

          Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech

          Pod zdánlivou kritičností se snadno a nezřídka skývají jiné motivy, mnohem horší. Taková snaha poškodit, ublížit, znemožnit, paralyzovat a mnohé další. Bez hlubší znalosti problematiky a osob není snadné je identifikovat. Kdybychom to dokázali, bylo by to zajímavé a mohli bychom odhalit, zda ona lokálně zvýšená kritičnost je opravdu vyšší snaha o opravu chyb (nápravu problémů) anebo jen nárůst oněch patologických případů, které v součtu dělají ledacos jiného jen ne pomáhání.

          1. Oldisy3

            Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
            ano snadno, ne zřídka, no jednou sem na to v jedné práci narazil, měl sem takového šéfa který apriori odmítal všechno co nevymyslel, ale kdyby alespon neco vymyslel.
            Jenze to je problém že dneska sou všichni snowflake a za všim se hledají nějaké jiné motivy i když tam nejsou.

      5. lenoch

        Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
        Musím říct, že ačkoliv mi ta první reakce přišla dost neadekvátní, tak v tomhle Davida Grudla úplně chápu. Ten neustálý negativismus a shazování musí být pekelně frustrující a demotivující.
        Něco jiného jsou konstruktivní připomínky ve stylu: Líbilo by se mi, kdyby tam bylo ještě tohle. Chybí mi tohle, co má framework xxx, to bychom docela potřebovali, nebo proč y funguje takhle – nebylo by to lepší tak?
        Za Nette je zjevně obrovská spousta práce, David dělá opravdu skvělé přednášky a ani komunita na tom není tak špatně – i když pochopitelně světově rozšířený framework bude mít vždycky větší ekosystém.
        A ne, nejsem placený z žoldu Nette. :)

      6. bene

        Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
        Tak to je velmi špatně pochopeno. Je samozřejmě fajn, že Češi dávají hlas svému oblíbenému českému frameworku. Důvod proč jsem na to poukázal je, že článek Tomáše Votruby byl přirovnán dosti hanlivě k reklamě na pilulky na hubnutí. A pokud na tom Davide (snad nevadí tykání) trváš, pak já trvám na tom, že chlubit se třetím místem v takové anketě je to samé. Šlo mi pouze o přirovnání, nic víc.

        Dále jsem nesrovnával šablonovací jazyky, jen jsem tak nějak předjímal kam by se debata ohledně security issues ubírala. Slyšel jsem ji už mockrát a opravdu toto nikoho v Twigu netrápí. Latte má fajn věci o tom žádná, přesto preferuji Twig z několika důvodů (některé už nemusí být platné). A souhlasím Twig je více ukecaný. Nicméně to mě díky autocomplete moc netrápí. Twig plugin do PhpStormu je udržovaný. Pro Latte je poslední update Jul 01, 2016. Pamatuji, že mi to napovídalo deprecated makra a to pak tu menší ukecanost úplně zabije.

      7. Tomas

        Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
        Ono to s tou ceskou nesnasenlivosti asi nebude tak horke, kdyz se dari vybirat penize. Nebo to jsou zahranicni darci?Delam v hodne velke java firme a ta by nikomu neda ani dolar. Skoro mam pocit ze by radeji investovala do zmeny technologie nez nekomu dobrovolne prispivat.

        1. Oldisy3

          Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech
          právě součást české hyperkritické kultůry je hyperkritičnost vůči hyperkritičnosti.

          1. Martin Hassman

            Re: Musím se Tomáše Votruby (osobně jej neznám) zastat a to v několika bodech

            To je posilující se kruh. Jedno vyvolává druhé.

  5. Vojtěch

    performance
    Máte nějaké srovnání z hlediska performance? Na kterém z frameworků běží aplikace rychleji ap.?

    1. TomasVotruba

      Re: performance
      Tento faktor pro nás nebyl důležitý, takže jsme ho neměřili a při používání aplikace si ničeho nevšimili. Oba frameworky používají DI container, který se cachuje, tam defakto rozdíl není.

    2. bene

      Re: performance
      K tomu bych dodal, že Symfony cachuje i routování (v obou směrech), navíc ho v předposlední verzi více optimalizovali, viz. https://symfony.com/blog/new-in-symfony-4-1-fastest-php-router
      Pokud si dobře pamatuji, Nette trpí výkonnostním problémem při velkém množství rout a tuším, že chce cachovaní také zavést (otázkou je, ve které verzi, možná už je, pak sorry).
      Samotný Symfony kernel je docela light. Nepřekvapilo by mě, kdyby si výkonnostně polepšili.

      Ostatně by to mohlo být zajímavé srovnání a nemělo by být složité. Stačí lokálně spustit verzi před a po. Do nějakého presenteru/controlleru dát statický response (abychom měřili jen odpověď frameworku), vybuildit cache a pak poslat několik stovek dotazů za sebou a zprůměrovat.
      Možná to přesvědčí ty kdo s přechodem ještě váhají :) (toto roztomilé rýpnutí jsem si nemohl odpustit)

Napsat komentář

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: https://www.zdrojak.cz/?p=22913