Webová aplikácia v PHP

jjack

Webová aplikácia v PHP
« kdy: 29. 04. 2017, 17:50:45 »
Vsimol som si, ze mnoho ludi nedoporucuje PHP na vyvoj velkych webovych aplikacii. Niesom expert a preto by som sa chcel spytat, preco je to tak? Su tam nejake problemy s vykonom samotneho PHP, alebo si ludia myslia, ze je PHP stale ten jazyk, ktorym bol pred par rokmi? PHP 7 mi pripada celkom fajn - featury ako moznost deklaracie skalarnych typov a navratovych hodnot tomu dost pomohli.

Samozrejme existuje mnoho zaujimavych/modernych programovacich jazykov ako napriklad Elixir alebo Go, lenze zacinat start-up v nejakom taktomto jazyku by bolo asi sialenstvo (minimalne preto, ze je velmi problematicke ziskat dostatok dobrych programatorov v tychto jazykoch).

Okrem PHP tu este existuje moznost zacat pisat webovu aplikaciu v Jave, alebo v Node.js. Java mi pripada mierne legacy a vyvoj v nej nieje prave najpohodlnejsi (v porovnani s PHP). Node.js je fajn, ale pisat v nom celu aplikaciu mi pripada opat nemotorne. Radsej by som Node.js pouzil v kombinacii s PHP tam, kde potrebujem aby bola aplikacia real-timeova - chat, notifikacie, aj ked dnes uz nieje problem pisat to priamo v PHP (websockety pomocou ratchet, reactphp).
« Poslední změna: 01. 05. 2017, 21:15:06 od Petr Krčmář »


yad

Re:Webova aplikacia v PHP
« Odpověď #1 kdy: 29. 04. 2017, 18:28:11 »
Ked niekto robi velku webovu aplikaciu, tak volba jazyka je posledna vec, ktora ho trapi na zaciatku. Vacsinou sa riesia poziadavky a architektura. Potom sa to napasuje na nejaky existujuci znamy vzor (alebo technologiu) alebo sa navrhne riesenie vlastne (comu sa vacsinou snazi kazdy rozumny vyhnut, ale ked musis...).

Kit

Re:Webova aplikacia v PHP
« Odpověď #2 kdy: 29. 04. 2017, 19:27:59 »
Vsimol som si, ze mnoho ludi nedoporucuje PHP na vyvoj velkych webovych aplikacii. Niesom expert a preto by som sa chcel spytat, preco je to tak? Su tam nejake problemy s vykonom samotneho PHP, alebo si ludia myslia, ze je PHP stale ten jazyk, ktorym bol pred par rokmi? PHP 7 mi pripada celkom fajn - featury ako moznost deklaracie skalarnych typov a navratovych hodnot tomu dost pomohli.

S PHP problémy nejsou, jen jsou mírné problémy s některými zdejšími diskutujícími, kteří PHP neznají a prosazují svůj oblíbený jazyk.

Uvedené featury nepoužívám, neboť mé skripty musí fungovat souběžně na verzích 5.3 a 7.0. I tak je PHP moderním jazykem, který má skvělý ekosystém.

Re:Webova aplikacia v PHP
« Odpověď #3 kdy: 29. 04. 2017, 20:24:08 »
Za chvíli tu bude flame :-D

PHP měl velmi chaotickou koncepci vývoje a projekty v PHP mají v průměru obecně nižší úroveň. Ekosystém není tak bohatý. Navíc PHP se hodí hlavně na weby. Jiné jazyky mohou být univerzálnější. Výkon nic moc.

Podle mě je optimální java nebo jazyky postavený nad jvm. Ekosystém je tam ohromný, možnosti uplatnění značné, moderní trendy si může člověk nadávkovat dle libosti (výběrem daného jvm jazyka). Akorát je těžší se v tom ekosystému vyznat.

Nejlepší je si na to přijít sám - sám si najít vhodný jazyk pro svoje potřeby a naturel.

Kit

Re:Webova aplikacia v PHP
« Odpověď #4 kdy: 29. 04. 2017, 20:51:29 »
Za chvíli tu bude flame :-D

PHP měl velmi chaotickou koncepci vývoje a projekty v PHP mají v průměru obecně nižší úroveň. Ekosystém není tak bohatý. Navíc PHP se hodí hlavně na weby. Jiné jazyky mohou být univerzálnější. Výkon nic moc.

Když někdo neumí PHP používat, tak ten výkon bude slabý. V Javě je to podobné. Ten, kdo s těmito jazyky umí zacházet, nemá s výkonem problém.


Tomas2

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:Webova aplikacia v PHP
« Odpověď #5 kdy: 29. 04. 2017, 21:03:35 »
jak píše yad, jazyk je naprosto nepodstatný, často během vývoje se jazyk změní či se nejprve udělá prototyp a pak stabilní řešení v něčem jiném.

PHP pro velké aplikace má jednu obrovskou nevýhodu, není to strktně typový jazyk a má automatické konverze primitivních typů, tím je aplikace náchylná k řadě zákeřných chyb a nedá se dobře použít statická analýza kódu.

Podívej na český internetu, v php je slevomat, damejidlo, heureka, mall nebo root (ikdyž všichni tři využívají části v jiném jazyku pro výkonnost nebo pohodlnost, či jak lákadlo pro programátory). V .NET je třeba alza.

Pokud navrhuješ aplikaci, zapomeň na jazyky, běžně jazyk nechám na volbě prvního programátora, který na tom začne dělat, pokud se jedná o velkou aplikaci, stejně ve finále v ní nezůstane ani kousek původního kódu.

jjack

Re:Webova aplikacia v PHP
« Odpověď #6 kdy: 29. 04. 2017, 21:32:10 »
Za chvíli tu bude flame :-D
Na flame predsa nieje nic zle. Akonahle zacne flame, tak diskusia naberie na obratkach a padne tam mnoho nazorov. Niektore vecne, niektore skreslene, ale rozumny clovek si z toho snad dokaze vytiahnut to podstatne a overit si, ci je to pravda. V podstate taky brainstorming bez pravidiel :)

Podle mě je optimální java nebo jazyky postavený nad jvm. Ekosystém je tam ohromný, možnosti uplatnění značné, moderní trendy si může člověk nadávkovat dle libosti (výběrem daného jvm jazyka). Akorát je těžší se v tom ekosystému vyznat.
JVM je dnes asi najlepsia volba. Moj problem s Javou, resp. s Java svetom bol vzdy v tom, ze bolo tazke naskocit do toho ekosystemu (Java samotna je jednoduchy jazyk ako kazdy iny). Pri PHP je dnes vsetko v podstate jasne, pokial chcem nejaky framework, tak je zrejme idealny Laravel, s nim dostanem Eloquent ORM a ako server pouzijem s najvacsou pravdepodobnostou Apache (pripadne Nginx). Ako je to pri jave (pripadne inych JVM jazykoch)?
 
Dajme tomu, ze si chcem rozsirit obzory a naucit sa nejaky rozumny framework, ktory je dostatocne moderny na pisanie real-time webovych aplikacii a clovek pri pisani v nom nebude pomyslat na samovrazdu. Co to bude? Co si tak pamatam, tak naposledy som dospel k tomu, ze najrozumnejsi vstup do sveta Java frameworkov je Spring boot. Stale to plati? Pripadne existuje nejaka jednoducha cesta ako zacat s Javou na webe (a idealne sa vyhnut vsetkym tym enterprise molochom typu Java EE, Spring MVC)?

PHP pro velké aplikace má jednu obrovskou nevýhodu, není to strktně typový jazyk a má automatické konverze primitivních typů, tím je aplikace náchylná k řadě zákeřných chyb a nedá se dobře použít statická analýza kódu.
Mam pocit, ze toto sa prave riesilo v PHP 7. Minimalne po zadefinovani strict_types sa to bude stazovat v situacii, ked metoda ocakava vstup typu int a miesto toho dostane retazec "10". Takze konecne mame aj v PHP istotu, ze ked chceme na vstupe int, tak mozeme pocitat s tym, ze sa do tej metody nic ine nedostane. Pre vyrazy typu 5 + "10" to zial stale neplati.

Suhlasim, jazyk je iba nastroj, ale niekedy prave vyber spravneho programovaci jazyka dokaze usetrit mnoho komplikacii.

Dakujem.

gll

Re:Webova aplikacia v PHP
« Odpověď #7 kdy: 29. 04. 2017, 22:35:26 »
Podle mě je optimální java nebo jazyky postavený nad jvm. Ekosystém je tam ohromný, možnosti uplatnění značné, moderní trendy si může člověk nadávkovat dle libosti (výběrem daného jvm jazyka). Akorát je těžší se v tom ekosystému vyznat.

Nejlepší je si na to přijít sám - sám si najít vhodný jazyk pro svoje potřeby a naturel.

Které JVM jazyky mají budoucnost? Přijde mi, že popularita alternativních JVM jazyků trochu upadá. Neřeší problém pomalého startu JVM. Nevyhnete se používání Java knihoven a luštění Java chybových hlášek. Zkoušel jsem Clojure, pěkný jazyk, ale použitelnost snižuje fakt, že běží nad JVM. I překladač Clojurescriptu je kvůli tomu pomalý. Ekosystém týkající se webu má PHP minimálně srovnatelný.

Re:Webova aplikacia v PHP
« Odpověď #8 kdy: 30. 04. 2017, 00:34:32 »
PHPko je v pohode, jazyk je jen nastroj. Potrebujes wireframes, potrebujes user stories atd. Pak potrebujes nekoho kdo ti zacne navrhovat frontend, tim zacnes prichazet na potrebu API a pak teprve zacnes resit KDO ti zacne psat backend - a tam ti jazyk prijde tak nejak sam. Tak treba https://weather.com/ - prijde ti to jako dostatecne velky projekt, aby to dokazalo, ze v PHP lze delat i celkem velke veci ktere funguji rychle a spolehlive? Co treba https://www.boston.gov/ , http://www.mtv.co.uk/ atd.
Myslis, ze udelas neco vetsiho?
Děkuji za možnost editace příspěvku.

Lol Phirae

Re:Webova aplikacia v PHP
« Odpověď #9 kdy: 30. 04. 2017, 00:52:05 »
Podle mě je optimální java nebo jazyky postavený nad jvm. Ekosystém je tam ohromný, možnosti uplatnění značné,


Lemming

Re:Webova aplikacia v PHP
« Odpověď #10 kdy: 30. 04. 2017, 07:25:37 »
Tady to zase perlí...

Neřeší problém pomalého startu JVM.

Jasně, on se totiž pro každý web request pouští extra JVM, takže start JVM je u webových aplikací ten největší problém, že?

Nevyhnete se používání Java knihoven a luštění Java chybových hlášek.

Java knihovny jsou právě výhoda - najdeš knihovnu prakticky na cokoliv. A přesto, že dělám v Javě docela dlouho, tak nechápu, co to mají být ty "Java chybové hlášky" které se musí luštit.

PHPko je v pohode, jazyk je jen nastroj.

Však sekyra je taky jen nástroj, tak proč řešit, že je tupá, což? Já teda radši používám nástroj vhodný pro daný účel. PHPko je super pro jednoduché věci, jako třeba ten weather.com. Ale používat ho na složitější věci je jako používat tu tupou sekeru. Jde to, ale dost se nadřeš a občas ti skočí a usekneš si prst.

Pokud navrhuješ aplikaci, zapomeň na jazyky, běžně jazyk nechám na volbě prvního programátora, který na tom začne dělat, pokud se jedná o velkou aplikaci, stejně ve finále v ní nezůstane ani kousek původního kódu.

No to by ses divil :D Možná nezůstane přesně v té podobě, trochu se přepíše, ale předělat aplikaci třeba z PHP do Javy se dá těžko dělat nějakými postupnými iteracemi, to musíš vzít a přepsat a to je drahý, hodně drahý. Znám jednu aplikaci, kde byla na startu zvolená technologie, která už tenkrát byla za horizontem (JSP + Spring MVC) a dneska je z hlediska vývoje technologií a požadavků na tu aplikaci silně nevhodná. Sice servisní vrstva může zůstat jak je, musí se přepsat "jen" ten frontend a ta aplikace není moc velká, ale stejně je to darda.

citanus006

Re:Webova aplikacia v PHP
« Odpověď #11 kdy: 30. 04. 2017, 08:05:49 »
jak píše yad, jazyk je naprosto nepodstatný, často během vývoje se jazyk změní či se nejprve udělá prototyp a pak stabilní řešení v něčem jiném.
No nevim nevim, podoba stacku na kterym se bude stavet je zasadni volba a rozhodne by to nemelo byt na libovuli prvniho programatora s k tomu sedne. To by se mohlo stat, ze za pet let budes muset udrzovat aplikace ve vsech trendy jazycich, o ktery tvuj dev team zavadil(a ze jich za posledni dobu bylo kvanta). Jako stejne modni problem vidim trebas nosql databaze, neni moc lidi/projektu co je pouziva opravnene.

Vem v potaz potencionalni implementace stejnyho problemu pomoci:
- apache + php
- apache+python
- apache+perl

Ale co tydle? Implementovat pujde stejna mnozina rozhrani, ale samotna implementace bude velmi velmi odlisna.;
- C + asm 
- glassfish + j2ee
- yaws+erlang


PHP pro velké aplikace má jednu obrovskou nevýhodu, není to strktně typový jazyk a má automatické konverze primitivních typů, tím je aplikace náchylná k řadě zákeřných chyb a nedá se dobře použít statická analýza kódu.
Dalsi takovej co veri, ze ho compile time kontrola ochrani : )

Pokud navrhuješ aplikaci, zapomeň na jazyky, běžně jazyk nechám na volbě prvního programátora, který na tom začne dělat, pokud se jedná o velkou aplikaci, stejně ve finále v ní nezůstane ani kousek původního kódu.

Doufam, ze delas jen weby.


citanus006

Re:Webova aplikacia v PHP
« Odpověď #12 kdy: 30. 04. 2017, 08:14:26 »
No to by ses divil :D Možná nezůstane přesně v té podobě, trochu se přepíše, ale předělat aplikaci třeba z PHP do Javy se dá těžko dělat nějakými postupnými iteracemi, to musíš vzít a přepsat a to je drahý, hodně drahý. Znám jednu aplikaci, kde byla na startu zvolená technologie, která už tenkrát byla za horizontem (JSP + Spring MVC) a dneska je z hlediska vývoje technologií a požadavků na tu aplikaci silně nevhodná. Sice servisní vrstva může zůstat jak je, musí se přepsat "jen" ten frontend a ta aplikace není moc velká, ale stejně je to darda.

Ja si vzpominam jak redhat prepisoval c# do javy.. http://lpeer.blogspot.ie/2010/04/switching-from-c-to-java.html

gll

Re:Webova aplikacia v PHP
« Odpověď #13 kdy: 30. 04. 2017, 08:21:54 »
Tady to zase perlí...

Neřeší problém pomalého startu JVM.

Jasně, on se totiž pro každý web request pouští extra JVM, takže start JVM je u webových aplikací ten největší problém, že?

Když spouštíte testy po každé změně, tak to vadí.

Nevyhnete se používání Java knihoven a luštění Java chybových hlášek.

Java knihovny jsou právě výhoda - najdeš knihovnu prakticky na cokoliv. A přesto, že dělám v Javě docela dlouho, tak nechápu, co to mají být ty "Java chybové hlášky" které se musí luštit.

Příklad nějaké knihovny, ke které neexistuje ekvivalent jinde?

Psal jsem o chybových hláškách v jiných JVM jazycích, ne Javě. Chybové hlášky v Clojure vadí i jiným.

https://www.reddit.com/r/Clojure/comments/2x1viz/why_are_clojure_error_messages_so_awful/

Re:Webova aplikacia v PHP
« Odpověď #14 kdy: 30. 04. 2017, 08:30:15 »
Však sekyra je taky jen nástroj, tak proč řešit, že je tupá, což? Já teda radši používám nástroj vhodný pro daný účel. PHPko je super pro jednoduché věci, jako třeba ten weather.com. Ale používat ho na složitější věci je jako používat tu tupou sekeru. Jde to, ale dost se nadřeš a občas ti skočí a usekneš si prst.
Dokazes nejak definovat ty velky a slozitejsi veci?

Tve prirovnani neni dobre. Lepsi je toto: PHP je ostra sekyrka. Vsak ne kazdy potrebuje dvoumuznou motorovou pilu protoze by denne kacel Arbol del Tule.
Děkuji za možnost editace příspěvku.