co mi na PHP vadi je nekoncepcnost vyvoje samotneho jazyka. funkcnost se meni verze od verze, hodne veci je reseno i vevnitr jazyka obezlickami. pouzivam jej rad na nektere projekty, probihajici vetsi zmeny (ve snaze dospet) mohou byt ale zaroven i na skodu.
...na opravu chyb, než na to, aby tam zanášeli nové! Situace kolem PHP mi přijde opravdu tragická. Jenom dneska jsem v nich opravoval 2 chyby způsobující nefunkčnost aplikací a to se jednalo o přechod z 4.4.0 na 4.4.1, nehldě, že jsem upgradeoval, protože 4.4.0 způsobovala také problémy.
Chyby se objevují v každém software, to je přirozené, ale PHP to opravdu vede do krajnosti. Lituji toho, že se dostalo PHP takové obliby a že to nebyl třeba Python, Ruby.
No Python ma 2D syntaxi, ktera asi spouste lidi nevyhovuje a Ruby ma taky takovou netradicni syntaxi (byt vcelku prehlednou) ... kdezto kdyz znam C nebo C++, na php prejdu pomerne snadno, zaklady jsou podobne.
Ale skoda ze se nerozsiril vic Perl :o)
Precejen, Perl je aspon vcelku stabilni co se vyvoje tyce ...
(I kdyz, nevzniklo PHP puvodne jako nadstavba nad perlem?)
Ne jako nadstavba, ale nahrada. Ma dost podobnou syntax. PHP je vyladene na vykon prave v typickem web nasazeni, ma podobnou syntax jak Perl a je (spis byl) navrzeny pro pouziti v sablonach. To co se z nej snazi udelat je uplne o necem jinem. Vznikl z toho hybrid, kterej se nehodi ani na to, na co byl navrzeny, ani na to, kam se ho snazi cpat. Jedine co jej drzi pro zivote je tradice a rozsirenost na hostingu.
jako profesionální phpkář se mi s tím jazykem loučí těžce, ale nedá se nic dělat. Kromě vážných problémů, které se znenadání objevují v nových verzích a jsou pak nahonem opravovány (a často jde o hrozné kraviny, například 2MB limit čtení dat - http://bugs.php.net/bug.php?id=32553) jsem narazil na mnohá omezení jazyka, která neřeší ani freneticky dobastlované vlastnosti.
Python i Ruby jsem přeskočil a vrhl se do náruče javy. Ze začátku se to zdá být trochu komplikovanější, ale nakonec člověk pocítí svobodu a jednoduchost, která nikdy s jazykem typu "spustíme skript zvlášť pro každý hit" nebyla možná.
Má to i další výhodu - v java komunitě většinou nezaclání lamy, jejichž otravné dotazy a neskutečné skripty za**rají celý interent. Lama totiž javu na server nezvládne ani nainstalovat :)
Python i Ruby jsem přeskočil a vrhl se do náruče javy. No, to jsi ho asi nepřeskočil, protože cesta je C > Java > Python. Možná mu ještě časem přijdeš na chuť, třeba ve formě Jythonu.
Java na WWW znamena J2EE, tedy JSP, JSTL, uzivatelske knihovny znacek, to vsechno bezici bud na jednoduchem Servlet Containeru (Apache Tomcat) nebo na necem lepsim s podporou EJB. (JBoss, WebSphere, Oracle Application Server).
Muzes se trochu rozepsat o Pythonich ekvivalentech napr. pro servlet containery s podporou distribuovaneho deploymentu a behu?
Alespon ekvivalent Tomcatu.
Hadam, ze Python se nepouziva v oblastech, kde jsou nasazeny EJB. Pricemz duvody se nemusi nalezat v jazyce samotnem. A ekvivalent Tomcatu pravdepodobne bude existovat, byt bude fungovat treba i ponekud jinak. Konkretni odpoved vsak poskytnout nemohu. Treba nekdo jiny.
Nic ve zlym, ale tohle muze napsat clovek ktery videl Javu naposledy pred 5 lety a bere ji jen jako pouhy jazyk, ne jako kompletni platformu pro psani aplikaci.
Ona jedna vec je umet syntaxi a zakladni knihovny a "nejak" v tom jazyce programovat a druha vec je vyuzit potencial ktery mi dane prostredi dava. Tam uz bych rekl ze Java je daaaaleko pred vetsinou ostatnich jazyku / platforem.
kdezto kdyz znam C nebo C++, na php prejdu pomerne snadno, zaklady jsou podobne.
Na Python přejdeš taky snadno, Python je snadný na naučení, zvlášť když umíš už programovat v něčem jiném. Udává se, že takovým lidem stačí pár hodin a už v něm mohou začít něco dělat, protože za tu chvíli ovládnou jazyk. Samozřejmě prozkoumíní knihovan chvíli času zabere, ale není tam nic překvapivého, zvláště pro ty co znají unix (posix), z pohledu woknaře nevím, ale myslím že taky nebudou mít problém.
No, videl jsem par skriptu v pythonu, vic mi to pripomina basic nez C :o)
A ta 2d syntaxe mi taky neprijde to prave orechove, sice je hezky ze je presne definovano odsazeni, ale u nekterych kusu kodu je pro prehlednost lepsi to odsazeni porusit a udelat jinak. Coz u pythonu nejde.
Pisete hlouposti.
To ze je PHP tak oblibene vypovida o faktu,
ze pomer cena/narocnost administrace/vykon
je mnohem lepsi nez u jinych jazyku podobneho razeni.
Kdyby s nim byly takove trable, jake tady vsichni popisuji, tak rozhodne neni jeho oblibenost tak vysoka.
Dle meho nazoru neobsahuje o nic vice chyb, nez kterykoliv jiny dynamicky se vyvijejici jazyk. Kazdy jazyk ma sve mimoradne vyladene a stable release, ke kterym php 5.1.x zatim rozhodne nepatri a stejne tak je tomu u 4.4.x.
Myslim si, ze tym vyvojaru stojici za PHP odvadi kvalitni praci a je to mozne videt i na pohotovych bugfixech. (http://snaps.php.net)
Je jasne, ze vlastni vyladovani pouzivane verze jazyka neni prilis user friendly, ale komu neni cizi configure, make, patch a podobne, tak si myslim ze si muze vyladit sve PHP presne na miru svych potreb a nemusi cekat az bude nejaka vylozene stable verze.
V pripade, ze vyzadujete u tohoto jazyka profesionalni support muzete si ho stejne jako u jinych aplikaci podobneho razeni zaplatit (http://www.zend.com).
Myslím že spor není o tom, že je PHP nestabilní, ale o tom, že se jazyk stále pod rukama mění a upravuje.
Nejřív se používalo mysql, pak mysqli, teď PDO. Objekty byly nejřív tak, potom onak. Najednou to už není ten pěkný skriptovací jazyk pro rychlou tvorbu pro web, ale není to ani profesionální a promyšlený jazyk pro enterprise řešení. PHP je teď tak nějak na půli cesty, ani jedno (už) ani druhé (zatím).
Jak můžou vývojáři takovému jazyku věřit, když nemá stabilitu (jazyka) ani koncepci (do budoucna). Jak v tom má někdo psát projekt, který má přetrvat léta, když se mezitím jazyk desetkrát změní a co fungovalo fungovat najednou nebude?
Spousta lidí utekla od MS jen proto, že jeden rok razí jednu technologii a další nějakou úplně jinou, která je právě teď "nejlepší". Jenže vývojář nemá čas stále přepisovat existující projekty, on potřebuje relativní stabilitu, která se mění jen pozvolna.
Osobne jsem zaznamenal zasadni zmeny pouze v objektovem modelu, ale samozrejme zalezi na stylu programovani. Pokud pouzivate nove funkce, vlastnosti a moduly oznacene jako EXPERIMENTAL, musite brat v uvahu i riziko s tim souvisejici,
ze mohou byt tyto casti zasadne zmeneny nebo v dalsi verzi odebrany, je to uvedeno v manualu u kazde takove funkce. V pripade zmen je tam navic uveden vzdy duvod, proc ke zmene doslo, tak je tomu i u Mysql extension. Co se tyka soucasneho stavu, mam tim na mysli verzi 5.x (Zend Engine II.),
naprosto souhlasim s nazorem, ze PHP je na pul cesty. Je zrejme, ze koncepce jazyka PHP inklinuje smerem k takove koncepci jakou ma Java, coz prinasi spoustu zasadnich zmen, rozporu a diskuzi, ale take zajimavych vlastnosti do budoucna (PHP 6 interni kodovani v UTF apod.).
Momentalne vsak existuji dve koncepce jazyka 4.x a 5.x a je na kazdem, aby zvazil co je pro nej vyhodnejsi.
Kazdopadne si nemyslim, jak to zde jiz nekolikrat zaznelo, ze je vyvojar nucen pouzivat nejnovejsi verze vcetne zasuvnych modulu. Pokud ma nekdo nejakou oblibenou extension, ktera se jiz defaultne nepridava ke zdrojakum, tak ji minimalne najde v pecl repository. Ja osobne pouzivam jiz nekolik let pro oracle oci8, mam na ni vyladene aplikace a nemam duvod v soucasne dobe prechazet na pdo, ktere by mi v mem pripade neprineslo zadny vetsi prinos.
V pripade navrhu nove aplikaci bych vsak tuto extension urcite zvazoval.
Tych co este pouzivaju PHP 3.x celkom lutujem. Verzia 4.x uz konci a necudoval by som sa ak by 4.4.1 bola tou poslednou. Vacsina vyvojarov PHP sa uz o 4.x nestara, ale zopar sa ich najde.
Verzia 5.1 (resp. 5.1.1) je prva skutocne pouzitelna verzia z rady 5.x, len skoda ze je to az taka onania mat ich paralerne (cgi setup neriesim, jedine pouzitelne je mat 2x apache + apache proxy).
No 3.x pouzivaj vetsinou lidi spis proto, ze maj aplikace psany pro 3.x, takze tem je to asi jedno :o)
Na vetsine hostingu je ted 4.x, 5.x je zatim spise vzacnost. Uz aby se protlacilo vsude i jsp :o)
Vázání proměnných.. chybí ti, Jakube, celkem zásadní fakt, že se jedná o _prepared statements_ a že krom toho, že není třeba escapovat řetězce, tak při větších objemech dat se také jedná o zrychlení, server nemusí pokaždé parsovat, optimalizovat a buhvícoještě dělat s SQL dotazem, ale všechno to provede najednou a pak už jen vkládá data. Což je asi větší výhoda, než automatické escapování dat.
Na bindParam() jsem nedávno také vyhořel, naštěstí mi manuál řekl, že "Unlike PDOStatement::bindValue(), the variable is bound as a reference...", takže jsem použil bindValue() a je to všechno fcajku.
S tím date je to trochu provar, mno, evidentně se někdo snažil, aby nebyl zaneřáděn globální namespace, mno a trochu bylo přestřeleno, škoda.
> ale kolikrat pouzijes jeden dotaz na jedne webovske strance ?
jasně, to se spíš týká nějakých importů, tam je to celkem k využití. I když jeden nikdy neví ;)
> persistent connection
v PDO je to nějak implementováno, ale.. je otázkou, jak to funguje, jestli stejně jako normální pconnecty (jakože asi jo), tak to není víceprocesovejch serverech moc k něčemu.
Nezopakovalo se měsíční čekání po vydání verze 5.0.0, která byla také jen ztěží použitelná, a dnes byla vydána verze 5.1.1, která obsahuje opravy nejviditelnějších chyb 5.1.0. Jejímu stažení a nasazení by snad již nic bránit nemělo.