👋 Nový obsah na borekb.cz

Info Tento blog je v "read-only módu" a nový obsah již nebude přibývat. O vývoji píšu na DevBlog.

Lze PHP porovnávat s Javou nebo s .NETem?

Čas od času se na webu objeví polemika PHP versus zbytek světa. Martin Snížek píchl do vosího hnízda článkem K čemu je PHP, pod kterým se objevilo mnoho vášnivých komentářů. Roman ‚Dagi‘ Pichlík se v zápětí na svém blogu ptá Znáte PHP? a pokládá několik zásadních otázek, jako jestli pro PHP existuje MVC framework, komponentně událostní framework typu Faces apod. Ale o tom tento příspěvek být nemá.

Nevím, co je toho příčinou, ale pod podobnými příspěvky se často objeví tvrzení, že PHP nelze s Javou nebo s .NETem porovnávat. Např.:

Tvuj problem je v tom, ze porovnavas PHP a Javu, pricemz to se porovnavat neda. PHP a Java jsou uplne jine programovaci jazyky s uplne jinou logikou a myslenim, nemuzes se snazit do PHP vnest veci z Javy, protoze tam fungovat proste nebudou a naopak.

píše Markon na Dagiho webu.

Lze porovnávat kosu s kombajnem? (aniž bych chtěl naznačovat, čím je PHP :) Lze porovnávat kus dřeva a železa s nesmírně komplikovaným zařízením, které stojí majlant a potřebujete k němu řidičák? Lidé, kteří tvrdí, že nejde porovnat PHP s Javou, říkají, že nemůžete porovnat kosu s kombajnem. Mají i nemají pravdu.

Pokud se budete dívat pod kapotu a zkoumat ostrost kosy, asi vám připadne, že oba nástroje jsou natolik rozdílné, že je porovnat nelze. Ale proč vlastníte kosu nebo kombajn? No přece abyste posekali pole. Nyní je kriterium porovnání jasné – vemte kosu, vemte kombajn a zjistěte, se kterým nástrojem budete mít dřív po šichtě. To je vítěz.

Jsem tedy zastánce názoru, že dvě věci lze porovnat vždy, když slouží ke stejnému účelu. Java (resp. její podmnožina) i PHP jsou technologie pro vývoj webových aplikací a jejich srovnání tedy smysl má. Argumentovat lze ještě jinak – když se manažer ptá „mám pro projekt XY zvolit Javu nebo PHP“, žádá si srovnání obou technologií. Jelikož lze na otázku odpovědět, musí být možné porovnání provést.

Stručně shrnuto: porovnávat PHP s Javou nebo s .NETem smysl má. Koneckonců, právě PHP versus ASP.NET bylo téma mojí bakalářky (a nutno podotknout, že jsem si z porovnání odnesl stejný pocit jako Martin; ale nač ty flamy :) )

Zařazeno do kategorií | | |
rarouš (St, 2006-01-04 19:34):

Jj souhlasím, PHP se s ASP.NET srovnávat dá a podle mě dokonce musí :) Jinak by jsme se ještě houpali v korunách pomyslných webových stromů. PHP bych osobně přirovnal k webovému komunismu. Je to taky cesta, ale všichni víme své… ;)

markon (Pá, 2006-01-06 11:36):

Přesně jsi to řekl, ale chci tě vidět, až budeš potřebovat srovnat obilí poblíž keřů a tím kombajnem posekáš vše co bude stát v cestě :) Ono nezapomeň, že důvod proč má víc lidí kosu než kombajn je fakt, že ne každý má důvod kupovat celý kombajn a ne všude ten kombajn projede.

Zjednodušeně řečeno podle mě to obecně porovnávat nejde, jde to jen porovnat na konkrétním příkladu, jestli je pro CRM systém pro 1000 uživatelů lepší Java, PHP nebo .NET.

Borek (Pá, 2006-01-06 12:20):

Vypadá to, že se nakonec asi shodnem :)

Všimni si, že nikde v příspěvku není ani zmínka o tom, který nástroj je lepší nebo vhodnější. Ani v nejmenším nepopírám, že PHP má v určitých případech své výhody (oblíbil jsem si větu pana Brabce, vedoucího mé bakalářky: „PHP se hodí u aplikací, které vývojář napíše dříve, než by mu naběhlo Visual Studio“). Plně souhlasím, že do bažinatého terénu nebo na zahrádku se kombajn nehodí.

Ale – celý příspěvek není o vhodnosti nebo nevhodnoti Javy, resp. PHP, pouze o jejich porovnatelnosti. Máš pravdu, že pokud je předem znám konkrétní projekt, porovnání se provádí lépe. Ale i na obecné úrovni lze mnoho věcí porovnat – syntaxi, manuál, bezpečnost, výkonnost, dostupnost vývojářů, dostupnost frameworků atd. atd.

Jednoduše řečeno, podle mě porovnávat lze.

markon (Pá, 2006-01-06 19:13):

Ano lze jazyky porovnávat, třeba syntaxe jazyka PHP je velice jednoduchá, manuál velmi promyšlený snadno pochopitelný a jasný, jazyk je velice výkonný (navíc po kompilaci ve výkonnosti nemá moc konkurenci) a vývojáři snadno dostupní. Z hledisek co jsi vyjmenoval je PHP vítěz.

Co se já snažím říci je fakt, že u čistě webových projektů nemá PHP jinou konkurenci než Python. Důvod pro použití Javy a .NET je, že tyto jazyky lze snadno naimplementovat do celé struktury, což u PHP není možné. A jako příklad toho, že Java nic nezaručuje doporučuji server jobs.cz, jehož admin je naprostá příšernost a napsaná v Javě. .NET doporučuji porovnat stabilitu Zive.cz a Root.cz. To co já říkám je fakt, že porovnávat nemůžeš v obecné rovině nikdy a v ničem, vše je relativní.

Abych to přiblížil, která holka je podle tebe nejlepší, jako obecně? :) Vždy to porovnáváš s nějakými měřítky a ty měřítka stanovuješ ty a ano ty porovnávat můžeš, ale je to jen tvůj pohled, pohled tvého učitele a pohled tvých spolužáků. Pohled ekonomů může být třeba diametrálně odlišný a dokonce i stejně funkční.

Třeba ekonomové budou používat PHP s životností produktu 3 roky a náklady na vývoj 100.000 Kč. Programátoři budou používat Javu s životností produktu 6 let a náklady na vývoj 200.000 Kč. Kdo je lepší?

Borek (Pá, 2006-01-06 20:08):

Znovu opakuji, že příspěvek vůbec není o tom, která technologie je lepší, ale o tom, jestli vůbec lze takovou otázku položit. Pořád se nemůžu zbavit nepříjemného pocitu, že si nerozumíme.

Ale když už se mermomocí chceš bavit o PHP versus něco, nejsem proti, téma je to zajímavé.

syntaxe jazyka PHP je velice jednoduchá

Ano, stejně jako syntaxe Javy nebo C#. Dokonce bych si dovolil tvrdit, že tam je syntaxe ještě o něco jednodušší. Tak třeba pro začátečníky je velkým zmatkem už rozdíl mezi = a ==, natož pak když se do toho v PHP přidá ===. Nebo třeba skutečnost, že jedna funkce může vracet několik typů (viz strpos()), mi připadá jako vyložená anarchie (někdo to nazve „pružností“). Dalším jasným příkladem, kdy je syntaxe C# výrazně jednodušší, jsou vlastnosti (properties) – co se v C# zapíše jako objekt.Vlastnost++ se v PHP píše jako $objekt->setVlastnost($objekt->getVlastnost() + 1). Komplexnější polymorfismus se v PHP zapisuje daleko hůř než v C#. A tak dále a tak dále. Ale přesto uznávám, že syntaxe PHP je jednoduchá, jen to není argument proti Javě / .NETu.

manuál velmi promyšlený snadno pochopitelný a jasný

Toto je velká přednost PHP. JavaDoc mi k srdci nepřirostl, špatně se mi v něm hledají potřebné informace. MSDN Library je zase záležitost na několik CDček, takže ačkoliv je vysoká pravděpodobnost, že tam někde hledaná informace je, není vždy snadné ji najít. Chce to chvilku cviku. PHP manuál je opravdu dobře zpracovaný.

jazyk je velice výkonný (navíc po kompilaci ve výkonnosti nemá moc konkurenci)

Tak to bych se už přel. I když věřím na pořekadlo „existují tři druhy lží: běžné lži, velké lži a benchmarky“, PHP prostě výkonné není. Je to interpretovaný jazyk a na mnoha hostinzích žádný akcelerátor neběží. Ale i pokud vezmeme PHP + Zend Performance Suite, pár kluků z matfyzu dokázalo pod .NETem rozjet phpBB a PHP-Nuke minimálně 1.7× rychleji. Neptejte se mě, proč se od té doby při zaslechnutí kombinace slov „PHP“ a „výkonnost“ jen tiše pousměji.

Co se já snažím říci je fakt, že u čistě webových projektů nemá PHP jinou konkurenci než Python.

Mně to jako „fakt“ nepřipadá.

Důvod pro použití Javy a .NET je, že tyto jazyky lze snadno naimplementovat do celé struktury, což u PHP není možné.

Nebo je důvod ten, že se na větší projekty firmám Java, respektive poslední dobou hlavně .NET prostě vyplatí. Pokud mám mluvit za sebe, pokud bych dostal zadání udělat aplikaci o 5 stránkách a jedné zobrazované databázové tabulce s možností editace, bez váhání bych to šel dělat v .NETu, ačkoliv PHP ovládám na velmi služné úrovni. Můj osobní názor je ten, že se .NET hodí i na velmi malé projekty (třeba už kvůli skvělému WYSIWYG editoru Visual Studia). PHP bych naopak zvolil asi jen tehdy, pokud bych chtěl udělat masový software vyžadující možnost zprovoznění na kdejakém freehostingu.

.NET doporučuji porovnat stabilitu Zive.cz a Root.cz.

Živě neběží na ASP.NET. Nebo máš nějaký důkaz o opaku?

Abych to přiblížil, která holka je podle tebe nejlepší, jako obecně? :) Vždy to porovnáváš s nějakými měřítky a ty měřítka stanovuješ ty a ano ty porovnávat můžeš, ale je to jen tvůj pohled

Nejlepší holka je Hanka :)

Díky za diskuzi, téma srovnávání něčeho je vždycky velmi zajímavé a uznávám, že ne pokaždé existuje objektivní pravda. Ale pokud obhajuješ PHP (ačkoliv já jsem ho svým původním článkem nijak vážně nenapadl), měl bys mít v ruce trumfy. Zmínil jsi manuál, ale kvůli tomu se pro PHP nerozhodnu. Můžeš zmínit hosting, což je IMHO dneska ten nejpádnější argument. Ale neargumentuj výkonností nebo tím, že výsadní postavení PHP je prostě „fakt“.

Jakub Vrána (Po, 2006-01-09 09:44):

Je někde ke stažení ta bakalářka? Případně bylo by možné mi ji poslat?

Borek (Po, 2006-01-09 10:44):

Bakalářka bude ke stažení na webu borber.com. S jeho spuštěním čekám, až mi skončí zkouškové a vyjde Drupal 4.7 (doufám, že obě podmínky budou splněny na přelomu ledna a února). Pokud chcete, můžu vás pak upozornit mailem.

Jakub Vrána (Út, 2006-01-10 12:50):

Upozornění uvítám, děkuji.

Komentáře jsou uzavřeny (blog je v read-only módu). Pokud mě chcete kontaktovat, můžete mailem.