Articles

Poslední příspěvky

Vezměme to pěkně od začátku: PHP je divný a ošklivý jazyk. Není výjimečně rychlý. Není krásný ani po syntaktické stránce. Není formulován kolem jasného názoru na správné postupy vývoje softwaru. A přesto v něm píšu hodně softwaru. Zřejmá otázka zní: proč? Proč dnes používat PHP?“

Je pro to spousta dobrých důvodů, které přesahují osobní idiosynkratické preference. Zde je prostor zabývat se právě jimi. Proč je PHP mým oblíbeným jazykem pro vývoj webových stránek?

Co je PHP?

„Co je to PHP?“ „Co je PHP? Nebo častěji „co je to PHP?“. Stručně řečeno, PHP je programovací jazyk vytvořený pro web, který byl vytvořen na základě programovacího jazyka C a který používá idiosynkratické značky (nebo sigly) podobné HTML, aby obsahoval svůj kód. Programovací jazyk PHP se většinou používá na straně serveru, což znamená, že běží na softwaru vašeho webového serveru, který obvykle bude návštěvníkům servírovat HTML.

PHP původně znamenalo „Personal Home Page“. Protože to docela důkladně omezilo význam a vhodnost použití jazyka pro obecné použití, znamená nyní tento jazyk „PHP: Hypertext Preprocessor“. Tomu se říká rekurzivní zkratka (název, který obsahuje název). Nerdové je milují.

Co PHP umí?

K čemu se PHP používá? V podstatě vše, co chcete dělat na webovém serveru, můžete dělat pomocí PHP. Vytvořit blog? Ano. Vytvořit plnohodnotnou aplikaci typu software jako služba? Určitě. Napsat malý skript, který během několika sekund zpracuje nějaká data? Na to je PHP skvělé. Napsat složitou sadu skriptů, ze které se náhodou stane úspěšná softwarová firma? PHP se takto používá často.

Pokud mi nevěříte, webové stránky PHP uvádějí následující způsoby použití:

  • Skriptování na straně serveru
  • Skriptování na příkazovém řádku
  • Psaní desktopových aplikací

Nejsem si tak jistý, zda bych podporoval poslední odrážku, ale je to možné. Ale první dva jsou běžné a dobré důvody, proč používat PHP v roce 2019.

Tím se dostáváme k jednomu důležitému a nevyhnutelnému faktu…

PHP je VŠUDE

Existuje mnoho důvodů, proč znát a milovat PHP, z nichž asi nejsilnější a nejplatnější je tento: používá se a běží VŠUDE, kde se dělá web. Váš malý levný hostingový účet za 3 dolary měsíčně vám může umožnit provozovat webovou aplikaci v jazyce Python nebo Ruby, pokud budete pečlivě nakupovat. Ale určitě na něm poběží PHP. To znamená, že se na něj můžete spolehnout, ať jste kdekoli.

Symony is one of the reasons that people choose PHP

A protože běží všude a je snadné s ním začít, je v PHP napsáno mnoho velmi populárního softwaru. WordPress je příkladem, který je pro mě největší i nejznámější, ale nástroje jako Joomla, Drupal, Magento, ExpressionEngine, vBulletin (ano, ten stále existuje), MediaWiki a další běží na serveru v jazyce PHP.

A existuje také více aplikačních frameworků PHP, než bys řekl švec: Symfony, Zend, Laravel, Aura, CakePHP, Yii a dokonce i úctyhodný CodeIgnitor. Jistě by se dal sestavit dlouhý seznam webových frameworků pro téměř jakýkoli jiný jazyk. A pro běžně používané webové jazyky, jako je Python, Ruby nebo Node/JavaScript, můžete dokonce sestavit početně konkurenceschopný seznam. Ale samotný objem webů s PHP je obrovský.

WordPress se hrdě chlubí tím, že pohání více než 30 % internetu. Nemusíte tomuto faktu ani věřit, abyste si uvědomili, že velká část internetu musí používat PHP, pokud je tento fakt vůbec myslitelně pravdivý.

PHP má několik velmi dobrých vlastností

Snadná dynamika je zapečetěna v PHP

PHP logo

PHP zvládá vykreslování HTML a programování snadněji než téměř jakýkoli jiný jazyk. Je tedy poměrně jednoduché změnit HTML na PHP. Stačí změnit file.html na file.php, přidat trochu dynamiky uvnitř některých značek <?php a ?>. Většina webových serverů již bude nakonfigurována tak, aby se o zbytek postarala za vás. Je to tak jednoduché, že s tím může začít téměř každý, aniž by potřeboval mnohem větší znalosti programování, než jsou tyto. Protože je jazyk PHP tak přívětivý, že si na něm můžete vylámat zuby, je v něm napsáno mnoho špatného kódu.

Když si uvědomíte, že většinu špatného kódu v jazyce PHP napsali začínající programátoři, většina strachu a nenávisti vůči jazyku PHP, se kterými se ve světě setkáte, pramení z jednoho dalšího zásadního problému: jazyk PHP nikdy neměl velkolepý návrh s vizionářskou myšlenkou, proč je to ideální jazyk pro váš webový server. Místo toho je výsledkem široké spolupráce v rámci otevřeného procesu, který slouží jako tyglík, jímž musí projít každý dobrý nápad – a několik špatných.

Objektová orientace se (skvělou) správou balíčků je nyní v PHP normou

Composer PHP language
Composer je skvělý důvod, proč používat PHP

A špatné nápady mohou tímto tyglíkem projít. Nejznámějším příkladem je, že PHP 5.3 – samostatně všeobecně považované za první moderní verzi PHP – zavedlo příkaz goto, kterému se obecně buď vysmíváme, nebo ho považujeme za snadný zdroj chyb.

Podobně špatné věci v PHP, které vyplynuly z procesu, jímž jazyk prošel: objektová orientace byla poprvé implementována jako chybný a omezený koncept, standardní knihovna je plná nekonzistentních názvů a pořadí parametrů a (v příkladu, kterému se nedávno dostalo slušné pozornosti) token :: je interpretem volán pro angličtináře nepochopitelným způsobem: T_PAAMAYIM_NEKDOTAYIM.

Ale dnes je OOP v PHP plně realizováno. Jen málo jazyků má tolik praxe OOP podobné Javě jako PHP. A co víc, na rozdíl od Javy má PHP jediného a široce oblíbeného správce balíčků, který se nazývá Composer. Ten se velmi povedl, a tak snadné natahování dalších dobře napsaných a dobře spravovaných knihoven v PHP není nic, co by se dalo zakřiknout.

PHP se hodně zrychlilo

Ale tyhle řečené věci, PHP se vyvíjí zajímavým způsobem. Roste směrem k tomu, aby se z něj stal docela plnohodnotný objektově orientovaný jazyk podobný Javě (v dobrém i zlém). A podobně jako Java získává snadné abstrakce pro funkcionální programování – pravděpodobně současný hit. Roste také docela úžasná sada nástrojů – PHP miluje Composer, a to z dobrého důvodu – a chvályhodná snaha o to, aby všechny tyto velké open source projekty v PHP trochu lépe spolupracovaly.

Oh, a neměli bychom zapomenout na současnou horkou novinku: zvýšení rychlosti, kterého PHP dosáhlo v řadě verzí PHP 7. Všeobecně se má za to, že to bylo iniciováno HHVM vycházejícím z Facebooku. Krátkou dobu hrozilo, že rychlost HHVM rozbije komunitu PHP. Ale nestalo se tak. Místo toho se PHP prostě zrychlilo natolik, že lidé většinou zapomněli, že HHVM existuje.

PHP má obrovskou komunitu; je přívětivé k učení

Pokud se rozhodujete, jakou novou skvělou technologii používat, věc, které se podle mě často věnuje málo pozornosti, je, jaké je to se s daným jazykem sžít. Jaké je to učit se PHP? Výukové kurzy jazyka PHP jsou běžné a často docela dobré.

Jednou z nevýhod popularity jazyka PHP je, že se můžete setkat s nepříliš dobrým školením od lidí, kteří nevědí dost o tom, jaké používání tohoto nástroje skutečně je. Nebo kteří se naposledy řídili „osvědčenými postupy“, které byly aktuální před deseti lety. Ale celkově je to dost vzácné, takže si nemyslím, že by vás to mělo odradit. Zjištění, že postup, který jste používali několik měsíců, není skvělý, je vzácné a nepředstavuje velký problém.

Obvyklá srovnání s PHP

Spousta lidí, kteří s programováním začínají, hledá velmi obecné konfrontace jazyků. Tak tady jsou. Všechny jazyky, o kterých zde budu psát, mají s PHP společné následující rysy:

  • Jsou open-source. To znamená, že základní jazyk můžete používat zdarma (bez nákladů), a pokud chcete, máte možnost nahlédnout do základního programu a porozumět mu.
  • Často se používají pro vývoj webových stránek. Celkem přímočaré, jedná se o jazyky, které se často používají pro vývoj webových stránek. Některé se hojně používají i mimo toto místo, ale ne všechny.
  • Jsou vysokoúrovňové, volně a dynamicky typované. To znamená, že proměnná může měnit typy a že při definování proměnné nemusíte určovat, jaký typ věcí (čísla vs. řetězce vs. objekty atd.) bude uchovávat. To je obecně upřednostňováno pro programování na webu, ale ne univerzálně.
  • Jejich komunity jsou dobře velké nebo lepší. Existuje spousta zajímavých jazyků, které mají výše uvedené vlastnosti, ale které nemají velkou komunitu praktiků. Ty zde nechávám stranou.

Proč používat PHP? Proč ne JavaScript?

Snad nejdůležitějším jazykem, se kterým lze PHP srovnávat, je JavaScript. Moderní vývoj vyžaduje, aby každý projekt používal alespoň trochu jazyka JavaScript pro vývoj a interaktivitu na straně klienta. Se systémem Node se stalo poměrně snadné používat JS i na serveru. Myšlenka používat stejný jazyk „izomorfně“ na klientovi i na serveru je velmi lákavá.

Stejně jako PHP je i JavaScript eklektický a někdy ošklivý jazyk se spoustou bradavic a „chyb“. JavaScript se však v posledním desetiletí nesmírně zrychlil, takže důvody pro jeho použití jsou reálné. Proč dát přednost PHP před JavaScriptem? Máte odborné znalosti nebo potřebujete používat knihovny v PHP. Jinak si myslím, že JavaScript může být lepší volbou.

PHP vs Active Server Pages ((.Net) Core)

Active Server Pages začal svůj život jako uzavřený jazyk společnosti Microsoft pro programování webových stránek. Byl poměrně přímo srovnatelný s PHP, ale běžel v prostředí Windows Server. Ten byl nahrazen ASP.net. Který byl nyní nahrazen ASP.NET Core. Poslední dva jmenované jazyky jsou nyní open-source, stejně jako PHP. A já osobně jsem nikdy nenapsal ani líznout ASP, ať už v jakékoli variantě.

Přikláněl bych se k ASP, kdybych používal a miloval servery Microsoftu. Jinak mi dejte PHP, prosím. Velikost a rozsah komunit se opravdu nedá srovnávat.

Měl bych používat Ruby nebo PHP?“

Ruby, konkrétně Ruby on Rails, byl před deseti lety velmi populární. Ruby je stále velmi oblíbený jazyk, který je v mých očích mnohem elegantnější než PHP. Přesto je jeho komunita menší. A mám pocit, že Ruby přestal být „žhavým jazykem“ (byl v této roli vytlačen JavaScriptem). Ruby je krásný a je v něm dost dobrých lidí, takže bych se mu z tohoto důvodu nevyhýbal. Ale najímat lidi, kteří ho už znají, bude i nadále těžší než v PHP. (I když si myslím, že dovednosti průměrného vývojáře v Ruby jsou pravděpodobně vyšší než stejné u PHP.)

Python vs PHP: Co je lepší?

Posledním jazykem, který má smysl srovnávat s PHP jedna ku jedné, je Python. Python se používá v mnoha dalších souvislostech, než je vývoj webových stránek (je také velmi oblíbený pro statistiku a analýzu dat). Je to také jeden z nejstabilnějších a nejlépe navržených jazyků, na kterém panuje všeobecný konsenzus.

Python (stejně jako Ruby a JavaScript) je o něco těžší zprovoznit na webovém serveru než PHP. Je to ale hezčí jazyk a používá se rozmanitěji než PHP. Je to jeden z jazyků, u kterého bych si dobře rozmyslel, zda ho upřednostnit před PHP, při zachování všech ostatních podmínek (přístup k externí knihovně, přístup k najímání odborníků atd.).

PHP vs Go? Scala? Java? atd?

Nahoře jsem zmínil, že je tu spousta podobností se všemi předchozími přímými porovnáními jazyků, která jsem provedl. Ale pokud tato omezení vypustíme, existuje spousta dalších jazyků, které bychom mohli porovnávat. Takže se stručně dotknu několika z nich:

  • Java je nesmírně populární a velmi rychlá. Používá se k vytváření aplikací pro Android, desktopových aplikací a webových aplikací. Není však dynamicky typovaná, což má lepší záruky výkonu, ale horší snadnost programování na webu.
  • Go je novější a stále se rozvíjející jazyk podporovaný společností Google. Je zaměřený na webové servery, ale o něco nižší úrovně (spíše jako C) než PHP. Je rychlý, ale komunita praktiků je menší.
  • Scala je populární jazyk pracující s JVM (kompatibilní s Javou), jehož popularita zřejmě stále roste. Je elegantněji navržený než PHP, ale nic moc jiného o něm s jistotou říct nemůžu.

Znovu, to je vše, co cítím, že mám dost souvislostí, abych se mohl dotknout. Ale možností je ještě víc, o kterých můžeš uvažovat. Tím ale konkrétní alternativy k PHP, které budu zvažovat, končí.

Výběr programovacího jazyka je o kontextu

Vzhledem k těmto srovnáním, proč používat PHP? Vyjmenoval jsem některé věci, které jsou na PHP špatné, a některé z nich pociťuji pravidelně. Nekonzistence jehly a kupky sena ve vyhledávacích funkcích mě kousne alespoň jednou za měsíc, když něco rychle dělám bez automatického dokončování.

Pro opravdový a kompletní projekt na zelené louce, bez potřeby spolupráce s jakýmkoli jiným systémem nebo potřeby běhu v libovolném prostředí, bez existujících odborných znalostí v týmu, bych se dost hluboce zamyslel, než bych PHP doporučil. Python se mi v takovém případě opravdu zamlouvá. Ale to je hodně výhrad. Existují velké důvody, proč i čerstvý projekt na zelené louce napsat v PHP.

Každý moderní webový jazyk vám může pomoci vytvořit dobré webové stránky a aplikace. A každý z nich má vlastnosti, které nejsou ideální. Jazyk PHP, stejně jako každý z nich, vyžaduje, abyste skutečně pochopili jeho kompromisy pro vás ve vašem projektu a určili, zda má pro vás smysl. Ale pro mě osobně stále platí, že je možné být – jak to vyjádřil Keith Adams v jedné skvělé přednášce – „šokujícím způsobem produktivní v PHP.“

Pokud máte tým programátorů v Pythonu, napište svou aplikaci v Pythonu. Pokud máte spoluzakladatele, který umí Javu, napište svůj SaaS v ní. Personální hlediska softwaru by měla vždy převážit nad jazykovými.

.