2. (PHP XOR JS) OR (PHP AND JS) ?

Ilustrační obrázek k článku: (PHP XOR JS) OR (PHP AND JS) ?
V tomto článku vyřešíme otázku, zda náš převodník psát v PHP, JavaScriptu (JS) nebo snad obojím? Výsledek Vás určitě překvapí.

Zásadní otázka zní: Kde budeme tento převodník používat? Budeme jej používat na serveru (uvažujme PHP) nebo na klientovi (JS)?

Odpověď je stejná jako když třeba potřebujeme vytvořit třeba obrázek grafu. Někdy jej potřebujeme staticky z dat na serveru, někdy jej potřebujeme dynamicky na klientovi. A i v případě generování scény potřebujeme oba způsoby. Ale rozhodně náš kód nechceme psát 2x. Potřebovali bychom tedy nějak vyřešit přenositelnost klient-server.

Některé přístupy jak řešit přenositelnost mezi PHP a JS:

Existuje tedy mnoho řešení, jak tento problém uchopit. My si vyzkoušíme úplně nový přístup: napsat takový kód, který bude fungovat jak na serveru v PHP, tak v prohlížeči v JS a přitom vracet stejné výsledky.

Každý zkušený fullstack vývojář Vám okamžitě vyjmenuje důvody, proč takový kód napsat nelze:

Problémy při psaní kódu společného pro PHP i JS:

Ovšem my tyto překážky rozhodnně nebude brát jako důvod, proč toto nejde naprogramovat, ale jako kreativní výzvu pro vytváření různých nových programátorských postupů a řešení a ukážeme si jak dosáhnout toho, co se zdá nemožné.

Opravdu si ukážeme jak napsat takový kód, který lze spustit jak na PHP serveru tak i v Browseru!

K čemu je schopnost psát takový kód dobrá?

Podle mne je znát takovýto jazyk velmi užitečné. Občas se totiž vyskytnou nějaké úkoly, které je potřeba udělat na serveru i na klientovi a nikdo je nechce programovat 2x. Typicky se jedná například o:

Co to jsou izomorfní aplikace?

Izomorfní webové aplikace jsou takové, které používají stejný kód na serveru i v prohlíči.

A mezi PHP vývojáři (ke kterým se počítám) se moc nepoužívají. Viz třeba zde. Proč? Odpověď je logická: V prohlížeči běží jen JS a proto je nelze psát v PHP.

Já si myslím, že mít stejný kód na serveru i na klientovi má své výhody popsané třeba zde. A myslím, že pravidla hry lze změnit a izomorfní aplikace psát i na PHP serveru.


Nicméně i pro toho, kdo zůstane stále u původního PHP či JS jsou tyto konstrukce zajímavé, protože je samozřejmě může použít i jen v jednom z těchto jazyků a tím rozšířit své programátorské schopnosti.


Řez krychlí, čisté CSS bez JS

Pokusil se již někdo o něco podobného?

Snaze napsat zdrojový kód tak, aby byl spustitelný ve více programovacích jazycích se říká polyglotní programování. Z těchto na wiki uvedených příkladů je vidět naprostý zmatek ve zdrojovém kódu. Ovšem já budu vyžadovat přehledný a jasný zdrojový kód. A uvedené příklady končí někde u "Hello, word". Já budu vytvářet rozsáhlé programy s funcionalitou, na kterou si programátoři často netroufnou ani v jejich oblíbeném jazyku.

Tohle přece není možné

Samozřejmě, že programovat takovýmto způsobem, je vzpoura proti všem konvencím a výzva všem autoritám, které "ví" jak se má správně programovat a naprostá provokace mající ovšem jako výsledek nalezení nových cest a forem.

Je to zároveň návrat ke kořenům, kdy se programování považovalo za umění a opak "průmyslové výroby programů" s jejich těžkopádnou architekturou a často zbytečnými objekty. Místo toho si ukážeme syrové minimalistické obraty a zjednodušení různých principů až na dřeň. K tomu v rámci funkčnosti v obou jazycích uvidíte detailní mikrokonstrukce, které by se daly přirovnat k ambigramům (obrázek obličeje, který po otočení o 180° zobrazí zcela jiný obličej) či s Escherovým hrátkám s perspektivou. Jen my nebudeme obrázek otáčet či měnit jeho perspektivu, ale budeme střídat PHP a JS.

Ano, to co si předvedeme je PUNK a SURREALISMUS ve zdrojovém kódu. A tento blog bude jeho manifestem. Pokud chcete být součástí této vzpoury, přihlaste se k odběru a těšte se na další kapitoly.

Jaké poučení si můžeme vzít z této kapitoly?

Pamatujte, že první krok ke kreativitě je překonat přesvědčení, že něco není možné. Pokud se vám to podaří, otevřou se vám nečekané možnosti. A ty si ukážeme v dalších článcích.

Nenaslouchejte hlasům, že něco nejde.
Předchozí   Následující

Diskuze

Floda
Vydáno 1.4. Apríl?
BLOG@RM5.CZ
Nechte se překvapit