Nejlepsi vec na tomto clanku je vyber tematu. Kazdy, kdo se mota okolo pocitacu potrebuje cas od casu vyrobit nejaky web (od ceho jsou kamaradi, ze). Clovek by rekl, ze to je ukol trivialni, ale jakmile se jednou ponori do bazin php kodu, malokdy se vrati nepoznamenan. Bylo by uzasne mit encyklopedii php frameworku, aby se clovek neztratil jeste nez zacne.
Genialni na php je, ze se v nem da skvele prasit. Problem s php je ten, ze se v nem neskutecne prasi. Typicka zivotni cesta vyspeleho php programatora je: bastlic v php - prechod na java nebo jine a pochopeni zakladu softwaroveho inzenyrstvi - zjisteni, ze kdyz je ukazneny, muze to same delat v php s mensimi naroky na zdroje a jednoduseji a tudiz selektivni navrat k php. Problem s php frameworky je ten, ze jejich tvurci pochazeji vetsinou ze stadia 1.
Typicke je to napriklad pro termin MVC. Kazdy si s nim vymyva hubu, ale malokdo tusi, k cemu je to vlastne dobre a jak to udelat spravne. Nedavno mi kamarad pro jeden projekt doporucil Silverstripe. Pry MVC framework s knihovnou pro ORM a vubec vsechno, co je potreba. Kdyz jsem se na to podival, zjistil jsem, ze model je soucasti kontroleru a view umi zobrazit pouze potomky nejake pripravene tridy. Kluci asi hodne hulili, kdyz si o MVC cetli, jestli si o nem vubec cetli. O ORM a ostatnim uz se radsi nezminuju. Separace logiky, dat a zobrazeni nesmi byt pouze "jako", musi znamenat realne oddeleni, tedy teoreticky moznost mixovat M, V a C z ruznych frameworku dohromady. Jediny framework zmineny v clanku, o kterem vim, ze to dovoluje, je Zend Framework (ale dost jich neznam moc podrobne).
Takhle je to s vetsinou php frameworku a jsou to problemy podle meho daleko dulezitejsi, nez rychlost renderovani stranky. Upgradovat server neni nic moc, ale sehnat dobreho programatora, ktery by byl ochotny se pustit do prace s knihovnou, ktera vypada jako parodie na navrhove vzory, to je nemozne - ja uz to taky v zivote neudelam.
jak moudra slova... opravdu dobrych frameworku je i dnes jako safranu, ale i tak k tomu php mam odpor... typ "mixed" a vubec ze vsechno je defacto string, to se mi opravdu hnusi. navic funkce, ktere vraci mixed a nebo jeste lepe boolean a zaroven int - to je k popukani s takovou vybavickou psat aplikaci.
nedavno jsem potkal nejaky framework, ktery implementoval vselijake vecicky - aby php nehazelo "note" ale primo exception. k tomu me napadlo, ze by vlastne vubec nebylo marne implementovat zakladni objekty - Object, Integer, String ... atd ... i kdyz je mi jasne, ze 99% "programatoru" php by to neprijalo, a mam dojem, ze dokonce takovych 80% by vubec nechapalo, o co jde.
ostatne, kdo si chce zaprogramovat a nezesilet, dela radeji v Jave nebo .NETu... nebo zkratka v cemkoliv jinem nez v php
Presne. Bohuzel se ale obavam, ze vetsina ctenaru Roota jsou tzv. "admini restartovači" (v nejlepsim napisou ctyri radky v Perlu a rikaji tomu programovani), takze tvuj prispevek nepadne na urodnou pudu. :)
No rekneme si to na rovinu. Delat webovy projekt v Jave nebo .NET muze pouze uplny kokot. A pak jeste par klikacu z Unicornu a podobnych zmrdoznich firem, kteri prosli 14dennim skolenim a mysli si, ze kdyz umi vyplnit Timesheet, tak ze umi i programovat.
Mimochodem nejlepsi PHP framework je Symfony, pak CakePHP, pak mozna Zend, ale to je vice knihovna nez framework.
No rekneme si to na rovinu. Delat webovy projekt v Jave nebo .NET muze pouze uplny kokot. A pak jeste par klikacu z Unicornu a podobnych zmrdoznich firem, kteri prosli 14dennim skolenim a mysli si, ze kdyz umi vyplnit Timesheet, tak ze umi i programovat.
Mimochodem nejlepsi PHP framework je Symfony, pak CakePHP, pak mozna Zend, ale to je vice knihovna nez framework.
proc tak ostra slova? java a .net maji oproti php hned nekolik vyhod - ty samozrejme ale nekdo nemusi ocenit, a nekdo je muze povazovat za nevyhodu, rozhodne bych hned netvrdil, ze ibm, sun, microsoft a jine spolecnosti jsou tupe, protoze nepouzivaji php!
tedy:
- java i .net jsou striktne typove a objektove jazyky ! (zlepsuje citelnost kodu a usnadnuje vyvoj)... jiste, v php lze psat ciste - to ano, ale lze psat i naprosto nesmyslne! a jelikoz je tolik skvelych "programatoru" php, je evidentni, kam asi speje vetsina prebranych php projektu po nekom jinem... a jak sem jiz zminoval, funkce, ktere vraci int a zaroven boolean sou vrcholem stupidity. je hezke, ze mame operator "===" ale ani to mi nejak neospravedlnuje, kdo s takovym zverstvem prisel! a o objektovosti php se neda mluvit ani dnes - sice je to proti php4 zlate, ale ke "standartni" pouzitelnosti to nema nejblize...
- java i .net mohou pouzivat / pouzivaji threading - ... treba udelat request, poslat uzivateli zpravu o tom, ze se neco deje... a zaroven spustit nejaky dalsi thread, ktery operaci vykona... v php bud udelat api pro ajax - coz ale pri urcitem nastaveni stejne nezabrani tomu, ze server nebude dale s uzivatelem reagovat (jeden uzivatel = jeden thread), a nebo si proste uzivatel pocka u prazdne stranky s "loading..."
- java i .net bezi (mohou a nemusi) jako servlety - takze nejake spolecne udaje, dejme tomu treba polozky z menu a par dalsich udaju se mohou drzet v pameti serveru - namisto neustaleho zahazovani a znovu-nacitani... on ani ten caching ktery lze udelat v php neni zadarmo - deserializace boli nejen cpu ale i seekovani disku, na ktery se ulozi nejaky soubor se serializovanymi daty...
Nekritizuji Javu ani .NET, pouze jejich pouziti pro webove projekty. To je cesta do pekel.
Stejne jako je cesta do pekel pouzit PHP na vyvoj databazoveho enginu nebo hry.
Proste kazdy jazyk se hodi na neco. Dobra je take kombinace PHP na fronted, Java nebo C++ na backend (tim nemyslim na model v MVC ale napr. na vyhledavani, viz Lucene).
- a mne sa obcas paci, ze true a false je aj 1 a 0, ved je to preddefinovana PHP konstanta.
- aj v PHP to ide, akurat to nie je v kope zaciatocnickych manualov a na php.net to nie je dobre domumentovane.
- aj v PHP ide cachovat data v RAMke, ale .... v kope zaciatocnickych manualov a na php.net to nie je dobre dokumentovane.
Zjavne ste venoval studiu javy a .netu viac casu, ako PHP ;-)
Tohle se neda brat ani vazne - skutecne tim chces rict, ze prasarna bez typovych kontrol je idealni cesta? LOL, hodne stesti.
S vyplody panu z U***** a C***** mam docela hodne zkusenosti, je to hruza, ale pochybuju, ze by to v PHP dopadlo lepe - spis naopak. Problem neni v technologii (.NET/Java), ale, jako obvykle, v lidech.
ale perl je... legenda. php je splacanina. nechci tvrdit, ze "java je nejlepsi na svete" nebo neco podobneho. kazdy jazyk, i php, ma sve vyhody. ma zkusenost je ale takova, ze php ma spise vic nedostatku nez vychytavek.
ostatne - nejsem vubec fandou jazyku, v kterych je milion ruznych operatoru - i kdyz i to phpcko ma pravidla, je mnohdy obtizne cist zdrojak po nekom, ktery se vsemi temi operatory ukaji.
To je zlo, tyhle internetove diskuze. Muj prispevek ma velmi jednoduchy ucel. Prosim autora, aby do hodnoceni frameworku zaradil pasaz o kvalite kodu a architektury. Kdyz uz se s tim tak dela neni to moc prace navic a pro me je to zasadni informace. Vetsina meho textu je jen omacka, kterou ukazuju, co presne chci vedet a doufal jsem, ze alespon na rootu se kvuli tomu nestrhne flamewar.
Kdo ma ktery jazyk rad nebo nenavidi je mi uprimne jedno, navic ten clanek o tom neni. Navrhove vzory jsou obecne, jsou jasne a jednoznacne dane a je mozno jednoduse konstatovat, jak moc se jim ta ktera architektura blizi.