Autor Zpráva
PHP_Nemaster
Profil
Dobrý den,
nedávno jsem někde četl, že PHP je prý pomalý jazyk, ve kterém se nedělají velké portály, a stačí akorát na blogy.

Chtěl bych se zepat:

1. Je pravda, že je PHP pomalý a neprofesionální jazyk?

2. Znám velké portály v PHP ( Facebook, Wikipedia ). Když jsem se ptal některých odpůrců PHP, říkali, že je dělali bud' studenti ( Facebook ), a předělávat je na JSP nebo ASP je příliš drahé, nebo neprofesionálové ( Wikipedia ). Jaký je váš názor?

3. Jaké jazyky jsou na tvorbu i profesionálních velkých portálů lepší, pokud je to pravda? JSP, ASP?

Jaký je váš názor na PHP? Je to opravdu "neprofesionální" jazyk jenom na tvorbu blogů, nebo se v něm dají dělat i velké projekty?

P.S. V PHP pracuji už dva roky, dělám i relativně velké stránky s vlastním CMS, fórem atd. Nejsem odborník na "efektivitu kódu" a rychlost načítání a rekace mých projektů mi vždy vyhovovala. Načítaly se vždy téměř okamžitě. Vím, že to není zrovna profesionální přístup, jenom se vžít do role uživatele a ptát se, zda by mi jako návštěvníkovy vyhovovala taková odezva stránek.
Jak se měří efektivita a rychlost stránek?
Someone
Profil
Ahoj, nejsem žádný profesionál a PHP se nevěnuji zas tak dlouho (teprve asi před týdnem jsem začal databáze), myslím, že s klidnou hlavou můžu říct že je to nesmysl. A bez PHP si to nedokážu představit. I když je to asi můj, nevědomostí zkreslený, názor.
pcmanik
Profil
PHP_Nemaster:
PHP je dobry jazyk, co sa tyka rychlosti je na tom uz horsie, takisto Facebook nebezi na cistom PHP, na pozadi bezia rozne kompliatory co zvysuju vykon.
Podla mojho nazoru je lepsi ako JSP a ASP.
DoubleThink
Profil *
PHP_Nemaster:
Je pravda, že je PHP pomalý a neprofesionální jazyk?
Neřekl bych, že je pomalý. Je dost jednoduchý a nízkoprofilový (napsaný v céčku), takže má docela skromné nároky. Samozřejmě je to interpret, což je u aplikací, řekněme větších než velkých, problém a tak se často používají předkompilované moduly (facebook) nebo keše (wikipedia).

Je to opravdu "neprofesionální" jazyk
Objektový model PHP je hrozný, ale s jistou dávkou sebezapření použitelný. Víc chybí typová disciplína, kdy není dopředu jisté, jaké data nebo výjimky z funkce polezou. Výsledkem je bohužel ona typická "Invalid argument supplied for foreach" šmakuláda.
ShiraNai7
Profil
PHP_Nemaster:

1. Je pravda, že je PHP pomalý a neprofesionální jazyk?

Spíše v tom často "programátoři" píšou pomalé a neprofesionální aplikace :)

Opravdu velké a náročné aplikace používají "předkompilovaný" PHP kód (takže se všechny skripty nekompilují stále dokola na každé stránce - což u středních a malých webů nevadí) nebo různé cache (např. APC). Viz to co psal pcmanik, DoubleThink

2. Znám velké portály v PHP..

Je jedno na čem ony portály běží - přecejen návštěvníkovi to může být ukradené.

Jak se měří efektivita a rychlost stránek?

Efektivita stránky? To je podle mě neexistující pojem. A rychlost - tu bych posuzoval podle subjektivního pocitu návštěvníka, jestli se mu stránka načítá "hned". Ovlivňuje to víc faktorů (rychlost připojení klienta, odezva klienta, odezva serveru, doba běhu skriptu, způsob posílání výsledku atd)..



Jaký je váš názor na PHP?

PHP je super, hlavně od verze 5.3.0+. Velkou výhodou je jeho obrovská podpora ze strany snad každého hostingu.

Negativní názory na PHP jsou podle mě dány hlavně tím, že PHP dává opravdu VELKÝ prostor pro chyby. Většina už zmiňovaných "programátorů" má mizivé znalosti PHP internals a o nějakých chybách typu "notice" v kódu ani nevědí. Dokud jim to funguje, jsou spokojení. Nebo to jsou tzv. "ctr-c, ctrl-v masteri" :)

Nelíbí se mi jediná věc - to, že základní funkce PHP a starších rozšíření jsou prostě na jedné gigantické globální hromadě a nejsou ani jednotně pojmenované, např:

- str_replace vs strtr ... mohlo by být alespoň něco jako String::replace, String::translate
- fwrite vs file_put_contents
- atd

To samé superglobální proměnné.

To je vše :)
Lamicz
Profil
Klienta zajímá:
a) Kolik to stojí (pořízení, provoz)
b) Jestli tam jde udělat vše podle jeho požadavků
c) Jak je to efektivní (samotný CMS a jeho používání)
d) Jak to vypadá
e) Potřebný čas a cena na odstranění chyby

Programátora zajímá:
a) Poměr náročnost vývoje ku požadavkům klienta ku možnostem dané technologie
b) Rychlá orientace v napsaném kódu
c) Co nejmíň WTF stavů
d) Servisovatelnost
e) Rozšiřitelnost
f) Časová stálost technologie
g) Co nejlevnější a nejspolehlivější provoz

Podle toho se vybere technologie...
Chamurappi
Profil
Reaguji na ShiraNaiho7:
Velkou výhodou je jeho obrovská podpora ze strany snad každého hostingu.
Související nevýhodou je vyšší úmrtnost těchto hostingů. Většinu vlastních projektů mám v ASP.NET (i když jsou malé) a nikdy mi nevadilo, že je poskytovatelů hostingu méně. Stačí mi jeden, na kterého se můžu spolehnout.


Reaguji na PHP_Nemastera:
3. Jaké jazyky jsou na tvorbu i profesionálních velkých portálů lepší, pokud je to pravda? JSP, ASP?
Většina velkých portálů začínala jako malé weby a zpravidla plynule pokračují ve vývoji na stejné platformě, jakou si kdysi jejich pratvůrce vybral, protože předělávat všechno od základů se vesměs nikdy nevyplácí — a v nouzi je lepší soustředit se na optimalizaci toho, co už je, případně posílit hardware.

Krom toho mají lidi určitý potenciál k iracionální náklonnosti k názorovým proudům, takže málokterý programátor skutečně objektivně hodnotí klady a zápory dostupných serverových technologií — většinou se k něčemu přikloní (ještě jako malé programátorče), naučí se to, uvědomí si, jaký je pašák, že mu všechno funguje (díky selektivní paměti vlastně naprosto bez problémů), čímž se přátelský vztah programátora a programovacího jazyka utuží a v méně otevřené mysli i zakonzervuje. Přímá konkurence jazyka se pak stává nepřítelem jen proto, že je konkurencí, a objektivní argumenty se hledají dodatečně, případně se filtrují podle žádaného výsledku. Viz to, co jsi nedávno někde četl — kdyby to byla analýza podložená seriózními daty a statistikami, asi bys neměl potřebu se tady ptát…

Jaký je váš názor na PHP?
Je příšerné :-) … ale znám ho jen okrajově, rozhodně nemám znalosti na objektivní porovnání.
Připadá mi smutné, že PHP interpretr neumí nativně Unicode — viz tisíce dotazů souvisejících s UTF-8 BOMem tady na diskusi.
Davex
Profil
Chamurappi:
Připadá mi smutné, že PHP interpretr neumí nativně Unicode
Už by to asi 8 let uměl, ale trochu to odflákli, takže to není zapnuto ve výchozí kompilaci a vývojáři s tím stále čekají do PHP 6 (jehož vývoj byl pozastaven)...
Adrifinel
Profil
Mě kdysi bylo řečeno, že se v php dá vesměs napsat cokoliv. Takže využitelný je.
Joker
Profil
PHP_Nemaster:
K tomu, jestli se v PHP dají dělat i velké projekty: No zjevně dají, když takové existují.

PHP má hlavní výhodu, která současně patří mezi jeho velké nevýhody: Strmou učící křivku, které byly obětovány některé vlastnosti usnadňující život pokročilým programátorům.
Neboli, PHP má podobnou vlastnost jako třeba Visual Basic: Dá se v něm rychle naučit špatně programovat.
Pověst obou je pak ovlivněna velkým množstvím špatných programů psaných začátečníky.

Krom toho ale PHP má jednu velkou slabou stránku, a to je řekl bych nedomyšlený a nekoncepční vývoj. V dobré víře se přidávaly vlastnosti s katastrofálními dopady (jako magic_quotes), v různých částech se používá různý styl pojmenování funkcí, některé funkce vracejí různé věci v závislosti na situaci, atd.
Ovšem to sice znepříjemňuje programátorovi život, ale pokud umí programovat, není až takový problém se přes to přenést.

Čili já bych PHP třeba rozhodně nedoporučil jako výukový jazyk. Myslím, že na dobré programování v PHP je už potřeba mít ty „správné programátorské návyky“ a těmi pak omezovat široké možnosti PHP ve vytváření prasáckého kódu.
Na druhou stranu pro člověka který už programovat umí není PHP nějak zásadně horší ve smyslu, že by v něm některý projekt nešlo udělat.
Ugo
Profil
Taky přispěji svým pohledem, já dělám v PHPku 7 let a těmto názorům jako že je to mrtvý nebo pomalý jazyk se jenom směji. Jak bylo napsáno, phpko je extrémně jednoduché na naučení, při troše snahy to lze včetně HTML, CSS a MySQL stihnout za 1 den a pak už se jen zlepšovat. Kvůli tomuhle začátku má ještě dlouhou budoucnost, jako u jedinýho jazyka sem si jistej téměř 100% multiplatformností a taky je hned jasné jak jej nainstalovat a jak vytvořit UI. Samozřejmě když nyní kouknu na rok starý zdrojáky tak si říkám... snad sem to nepsal já.

S tím co v něm lze udělat je to téměř neomezené, já říkám že když jdou v kódu psát 1 a 0 tak de udělat vše a to PHP umí.

A rychlost je podle mě v pohodě větší projekty sou většinou směsicí menších částí takže na rychlost to nemá vliv a nebo je to hlavně o tahání z databází a tam zas je PHPko celkem nevině v pomalosti. Faktem ale je, že se dnes dělají pomalé projekty, je to hlavně tím, že se staví na frameworkách.. navíc na takových sajrajtech jako třeba Zend, Symphony ... je to další nadstavba, což se ještě nechá přežít, ale to že se samotnej FW pouští 50-1000 ms, to je neúnosný, aplikace i s DB by se měla vejít tak do 15ms. Ale rychlost je evidentně postačující, protože se i často dostačující rychlé neobjektové programování nahrazuje objekty který v PHPku sou opravdu hodně pomalé. Se středním objektovým projektem na dobrém serveru se nechá vejít do 5ms, což je v případě internetu a odezvy od serveru nepostřehnutelné.
ShiraNai7
Profil
Ugo:
navíc na takových sajrajtech jako třeba Zend, Symphony

To jsem rád, že nejsem sám s tímto názorem :)
Mastodont
Profil
Javu na vás, minimalisti.
Kdo staví aplikaci na Zendu nebo Symphony, používá opcode cache, jinak by byl trulant.
Petr ZZZ
Profil
Reaguji na Uga:
při troše snahy to lze včetně HTML, CSS a MySQL stihnout za 1 den a pak už se jen zlepšovat.

Je jasné, že každý posuzuje vše podle svých vlastních měřítek, ale všechno v nějakých hranicích a osobně vnímám takový výrok, diplomaticky řečeno, jako hodně zavádějící. Jsi si jistý, že mluvíš na základě nějaké zkušenosti a nevynechal jsi nic důležitého, co tomu jednodennímu ovládnutí všech čtyř technologií předcházelo? Já mám v živé paměti dobu, kdy jsem nevěděl o psaní stránek vůbec nic. Bez jakýchkoli základů, i kdyby mi někdo s didaktickými schopnostmi Učitele národů dokázal byť jen syntaxi vysvětlit během jednoho dne tak, abych to chápal, budu v tom druhý den mít bezedný guláš, a na to, abych vůbec byl schopen začít něco psát, budu potřebovat spíš mnoho týdnů než dnů. A pokud nemáš nikoho, kdo ti to vysvětlí, a učíš se jen z toho, co najdeš na internetu, může to trvat podstatně déle.
Ugo
Profil
Petr ZZZ:
tento výrok nemám podložený, ale myslím že je to reálný, musíš mít někoho kdo ti to vysvětlí, pak je z toho všeho nejsložitější asi CSS a to že budeš mít guláš je jasný, ale už budeš vědět jak nalezený věci rámcově použít

ShiraNai7:
sám? ani náhodou, zatim co sem měl možnost poznat, tak ti dobří phpkaři tím opovrhovali. jenom takový výkus ze zdrojáku Zendu (aneb proc pouzivat rychle prehledne konstanty kdyz mame funkci slow()) :

public function getQuoteIdentifierSymbol()
    {
        return '"';
    }
 public function lastSequenceId($sequenceName)
    {
        return null;
    }
ShiraNai7
Profil
Ugo:

Názory se bohužel různí no. Firmám je úplně ukradené, že je kód extrémně nabobtnalý, hlavně že to dělá to, co potřebují. Momentálně pracuji na jednom projektu, který by se dal považovat za relativně jednoduchou webovou stránku. Je (bohužel) postavená na Symfony 2. Na mém průměrném notebooku se stránka načítá přes 5 sekund, a to musím mít ještě aktivní APC extension pro PHP, jinak by PHP pokaždé parsovalo 18 mega zdrojáků. Funkčně totožnou stránku lze naprogramovat 100x jednodušeji s načítaním v rozmezí 50-100ms.

Já osobně si potrpím na mikrooptimalizace a prostě co nejvíce efektivní a čistý kód. To, co nevyužívám, nemá v kódu co dělat.

Ale to už je mimo téma :)
Joker
Profil
Ugo:
phpko je extrémně jednoduché na naučení, při troše snahy to lze včetně HTML, CSS a MySQL stihnout za 1 den
To jsou trochu silná slova.
Respektive, člověk který už umí programovat třeba v C++ se v PHP „naučí“ za 5 minut: Otevře si zadání, IDE, v prohlížeči manuál a může programovat.
Člověk který programovat neumí se to za den nenaučí.

Když si vzpomenu na výuku programování, tam se to přesně rozdělilo na ty dvě skupiny: Ti co už uměli programovat předtím to nějak prospali, prosurfovali nebo vyignorovali a z těch co kdo předtím programovat neuměli nemalá část po 80+ hodinách výuky stejně nebyla schopná dát dohromady jednoduchý program.
Ugo
Profil
jj založíme nový téma asi, i když sem to celkem patří taky. já nedám dopustit na svuj LUCI, funkčně mi jako muj výtvor sedí nejvíc.. kam se rychlostí psaní cpe i jinak dobrej CodeIgniter ;) a co se týká optimalizace, tak bez cache je mnohonásobně rychlejší jak nette (cache opravdu nepotřebuje), jelikož nedělám zbytečný věci a optimalizuju způsobem, že když je víc možností tak si je všechny zkusim a nejrychlejší tam de i když to je 1ms na desetitisice pokusu a minimalizovana verze se musi vejit do 8KB (i na ukor nazvu promenejch), aby zbytecne nezabirala dalsi cluster na disku - mensi spotreba mista, rychlejsi nacteni :-D tak to ma bejt a ne aby byl FW provazanejch 500 souboru ktery posilaj raketu na Mars i kdyz chces jit jenom zkontrolovat poštovní schránku :)
me vakérav
Profil *
PHP je pomalé. Nemá ani Just-In-Time překladač, nic takového, virtuální stroj je velice primitivní, i JavaScript je mnohem rychlejší (mluvím o konkrétních implementacích, jazykem jako takovým to moc není). PHP hraje na to, že se kód vykoná pouze jednou, na což je ale dobré.

Já PHP používám na běžné skriptování, tam kde nestačí bash, a na to je fajn, protože není moc ukecané. Nic většího bych v tom rozhodně nedělal (a vůbec v žádném netypovém jazyku).
Chamurappi
Profil
Reaguji na Uga:
taky je hned jasné […] a jak vytvořit UI
PHP běží na serveru, uživatelské rozhraní se dělá v klientských technologiích — a ty fungují nezávisle na platformě serveru. Programátor serverové části velmi často vůbec nepotřebuje umět CSS. Někdy ani HTML.

S tím co v něm lze udělat je to téměř neomezené
Znáš konkurenční technologie? Nebo je tvé hodnocení PHP podobně objektivní jako to mé? :-)
Joker
Profil
ShiraNai7:
Firmám je úplně ukradené, že je kód extrémně nabobtnalý, hlavně že to dělá to, co potřebují.
Firmy hlavně hledí na náklady.
A většinou snazší údržba, přenositelnost a rozšiřitelnost mají větší váhu než výkonová optimalizace.
Protože když poměrně slušný nový server stojí firmu zhruba stejně jako pracovní úkol na 3 dny programování (+ 3 analýza a 6 testování), většinou se pomalost aplikace řeší prostě nákupem rychlejšího HW.

Ugo:
optimalizuju způsobem, že když je víc možností tak si je všechny zkusim a nejrychlejší tam de i když to je 1ms na desetitisice pokusu a minimalizovana verze se musi vejit do 8KB (i na ukor nazvu promenejch), aby zbytecne nezabirala dalsi cluster na disku - mensi spotreba mista, rychlejsi nacteni
To je pak otázka řekněme alokace zdrojů, resp. toho kolik taková úprava stojí času který mohl být využit na něco jiného.

tak to ma bejt a ne aby byl FW provazanejch 500 souboru ktery posilaj raketu na Mars i kdyz chces jit jenom zkontrolovat poštovní schránku :)
Viz výše- když firmu 1GB místa na disku stojí pod 3Kč, 1GB RAM zhruba 250Kč, 1GFLOP výpočetní síly procesoru zhruba 100Kč… a 1 den práce programátora zhruba 2500Kč, většinou se nikomu nechce platit výkonové optimalizace.

Další věc je jaký ta optimalizace bude mít dopad na další věci- pokud budou dva systémy splňující požadavky, přičemž jeden bude vysoce optimalizovaný, ale vyzná se v něm jen jeho autor a nikdo ho nepodporuje, zatímco druhý bude rozšířený, podporovaný a vyžadovat dvojnásobně výkonný hardware, nejspíš zvítězí ten druhý.
Ugo
Profil
Joker:
Problémem je, že když se podíváš na ty zdrojáky tak je jasné že ty pomalé systémy sou vyvíjeny déle a nejsou tak přehledné. Jistě umí toho 50x tolik, ale 50x tolik zbytečných věcí které se dají řešit například cestou nezávislých modulů. Další věc konkrétně pro tyhle případy je, že tyhle projekty víceméně nejsou placené. Jinak máš ale naprostou pravdu s tim že je lepsí koupit komp než programátora (i když bych chtěl bejt ten co stojí deně 2500 :-) .. už sic nestojim měsíčně 10k, ale pořád se k takovéhle ceně nevyhoupnu.. snad jednou xD). Nicméně tyhle zdržování jsou na straně FW a ne samotné aplikace, tam když to už vyvíjí firma tak to dává smysl že to chce udělat jakkoliv, hlavně levně.
K
Profil *
Predem se omlouvam za diakritiku, nemam ceskou klavesnici.

Zakladnim problemem PHPka dle meho je, ze se v nem da slusne "prasit" - diky tomu vzniklo mnoho projektu na koleni, kde nekdo dostal napad a pri realizaci se PHP teprve ucil. Tyto projekty se nasledne rozrostli do firem s xxx zamestnanti a statisici klienty a rychlost tech aplikaci sla rapidne dolu, coz firmy v naproste vetsine resi tak, jak to popsal Joker. Tim si PHP dle mych 13letych zkusenosti vydobilo svou povest.

Pak v kodech potkavate takove bomby jako napr.
function foo(){
global $_SESSION;  // ano opravdu
$sess0 = $_SESSION;  // kde session ma cca 7MB
$sess1 = $_SESSION;
...
}


Objektivne si myslim, ze dnes se daji v PHP psat vykonne aplikace, pokud to pisou a navrhujou zkuseni programatori/analytici. Vzhledem k cene a poctu kvalitnich PHP programatoru je to u projektu do 500M pageviews/den jasna volba.

Ugo:
2500,- (superhruba) je za dobreho PHP programatora v Praze celkem malo, myslim ze takove castky dosahnout by nemel byt problem;)
me vakérav
Profil *
K:
$sess0 = $_SESSION; // kde session ma cca 7MB

Tohle nevadí, PHP dělá copy-on-write, takže tady zkopíruje jen referenci a i při zápisu kopíruje jen tu změněnou část, ne kompletní strukturu takovou. Tahle vlastnost je IMHO na PHP výborná, něco podobného mi dost chybí v ostatních jazycích. Z dalších unikátních vlastností „proč PHP ano“ bych vypíchnul asociativní pole (PHP vlastně jiné nemá), které si pamatuje pořadí přidávání prvků.
DoubleThink
Profil *
K:
Zakladnim problemem PHPka dle meho je, ze se v nem da slusne "prasit"
Souhlasím. Je to syndrom "to půjde", kdy je s PHP příliš lehké začít něco dělat. V Javě si člověk musí nastudovat minimálně základní práci s objekty, ne-li rovnou už nějaký MVC framework, aby udělal aspoň hello-world formulář.

Ugo:
i když bych chtěl bejt ten co stojí deně 2500
2500 je něco přes tři stovky za hodinu. Považoval bych to spíš za spodní hranici lepšího programátora (a ne jenom v Praze).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0