IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Rozdíl mezi PHP a JS

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Steve Stevovic:17.12.2016 8:28

Dobrý den chtěl sem se zeptat jaký je přesně rozdíl mezi PHP a JS(například:K čemu se hodí víc PHP a k čemu JS)? Vím že PHP se zpracováva přes server a JS přes počítač a to je tak asi všechno co vím o jejich rozdilnosti.

 
Odpovědět
17.12.2016 8:28
Avatar
Odpovídá na Steve Stevovic
Neaktivní uživatel:17.12.2016 8:59

Nejlepší bude v nich začít programovat, otázka se ti zodpoví sama. Pro vývoj webu potřebuješ oba tyto jazyky.

Nahoru Odpovědět
17.12.2016 8:59
Neaktivní uživatelský účet
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Steve Stevovic
Jindřich Máca:17.12.2016 10:09

Zdravím! Otázka poměrně jednoduchá a jasná, odpověď je ale hodně složitá, protože zrovna tyto dva jazyky jsou hodně rozdílné. Zkusím tedy popsat nějaké ty zásadní rozdíly a případy použití.

  1. Programovací paradigmata

Začneme hlavními rozdíly, které člověk pocítí právě při programování. Jak již napsal Neaktivní uživatel, nejlépe je asi člověk pochopí, když jsi oba jazyky vyzkouší. Já to vezmu z obecnější teoretické roviny.

  • Oba - Oba dva jazyky podporují standardní prvky procedurálního programovacího paradigmatu tj. proměnné, podmínky, cykly apod. Lisí se pak hlavně přístupem k objektovému programovacímu paradigmatu tj. při objektově orientovaném programování (OOP).
  • PHP - Původně čistě procedurální jazyk, kde model pro OOP byl převzat z Javy tzn. je velice podobný jako třeba v C#, Javě atd., i když díky dynamickému typování jsou tam patrné rozdíly.
  • JavaScript - Již od začátku dynamicky typovaný jazyk založený na OOP, v podstatě vše v JavaScriptu je objekt. Ovšem má unikátní implementaci objektového paradigmatu pomocí tzv. prototypů. To ho činní dosti odlišným od většiny jazyků používajících objektový přístup. Ještě bych k tomu asi doplnil důležitou poznámku a to, že v nové verzi do něj byly přidány i prvky OOP, která má právě PHP např. třídy, ovšem slouží pouze jako obal a na pozadí stejně pořád funguje původní prototypový systém.

To je k této sekci asi vše. Pokud toho moc nevíš o OOP, tak Ti to asi moc neřekne, ale tohle jsou ty rozdíly, které zkušeným programátorům prozradí skoro vše potřebné.

  1. Použití jazyků

Druhá část Tvé otázky směřovala na použití jazyků a k čemu se hodí. Opět, to využití je dost široké , a já to zkusím vzít spíše obecně.

  • PHP - To je vlastně původně skriptovací jazyk, který se dnes ale nejvíce využívá na psaní webového backendu (serverové části). Z toho plynou asi dvě důležité věci. Za prvé, jazyk se pořád dá využít ke psaní skriptů a nejenom pro web. Za druhé, i když je dnes stále nejpoužívanějším jazykem na tvorbu serverové části webu, tak dle mého názoru se hodí spíše na klasické weby (na velikosti dnes už zase tolik nesejde), ale např. pro tvorbu komplexnějších enterprise aplikací (stále se bavíme o webu) už zase tak vhodný není. Přeci jen původní význam zkratky PHP je Personal Home Page. Jeho tak vysoké použití na tvorbu webu je také dáno tím, že je poměrně snadné s ním nějak začít a je podporován drtivou většinou web hostingů.
  • JavaScript - Původně navržen pro běh na frontendu (klientské části webu), kde je dodnes jediným podporovaným programovacím jazykem (HTML a CSS nejsou programovací jazyky v pravém slova smyslu a nejrozšířenější webové prohlížeče neumí pustit nic jiného než JavaScript). Z toho důvodu k němu vznikla stále vzniká celá řada knihoven, frameworků, ale dokonce i úplně samostatné programovací jazyků, které se dají na JavaScript překompilovat (převést). Ovšem tím to nekončí. V roce 2009 se objevil na scéně NodeJS, který umožňuje psát v JavaScriptu i plnohodnotnou serverovou část webu a dokonce i věci s webem nesouvisející. Tímto se tento jazyk rozšířil k použití v mnoha dalších sférách, i když jeho největší využití stále zůstává na straně webového frontendu.

Když tedy máme možnost psát webový backend v PHP i JavaScriptu dovolím si menší srovnání ještě v tomto ohledu.

  1. Architektura na webovém backendu

V podstatě se jedná o velký rozdíl v přístupu zpracování uživatelských požadavků na webový server.

  • PHP - Standardně funguje tak, že daný server přidělí každému příchozímu požadavku nové vlákno a v něm se rozběhne zpracování pomocí PHP skriptu.
  • NodeJS - Funguje obdobně, ale s vlákny pracuje jiným, efektivnějších způsobem a to hlavně proto, že webový server neběží jako nadstavba, nýbrž jako součást samotného NodeJS. Ten je pak navržen pro psaní vysoce škálovatelných aplikací, což je v dnešní době hodně žádané. Jelikož také přistupuje ke zpracování požadavků asynchronně, je velice vhodný k použití např. s protokolem WebSocket, který umožňuje obousměrnou komunikaci v rámci webu (velice vhodně např. pro chaty apod.). Ne, že by tento protokol v rámci PHP použít nešel, ale je to hodně neefektivní a navíc většinou web hostingů již nepodporované.

Celkově se dá říct, že oba dva tyto serverové přístupy mají něco do sebe a co moje zkušenosti sahají, dost často je kombinují. Klasický obsah stránek rychle a snadno obslouží PHP, když to NodeJS se postará o dobře škálovatelné a rychlé chaty na backendu té samé webové stránky. Samozřejmě pak nesmí chybět obsluha na frontendové části, která bude také v JavaScriptu, často za použití nějaké té knihovny nebo frameworku.

Doufám, že tahle moje "slohová práce" pomohla alespoň trochu objasnit danou problematiku. Pokud se budete chtít dozvědět o jednotlivých pojmech a konceptech více, stačí zabrousit do příslušné sekce zde na ITnetwork, případně využít známý vyhledávací nástroj. ;)

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
17.12.2016 10:09
Avatar

Člen
Avatar
Odpovídá na Neaktivní uživatel
:17.12.2016 10:52

Oba jazyky nepotřebuje. Serverová část se dá napsat i v JS (Node.js) nebo jiných jazycích (Python atd.). Klientská se dá zase napsat i bez JS, pokud mu budou stačit základní animace a stránku bude vždy generovat na serveru, vystačí si s CSS3.

 
Nahoru Odpovědět
17.12.2016 10:52
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.