ugrás a tartalomhoz

An Opinion On The Future Of PHP

tlof · 2014. Már. 29. (Szo), 11.53
Hangos gondolkodás a PHP jövőjéről, a lehetőségekről, mit kellene csinálni
 
1

Blog

Hidvégi Gábor · 2014. Már. 30. (V), 07.20
Nagyon jó a blogja a szerzőnek, köszönöm, hogy beküldted ezt az írást!
2

Moderálási sor

tlof · 2014. Ápr. 1. (K), 12.19
Igen, tényleg remek. Kár, hogy ezt a bejegyzést bő két hete küldtem be, és eddig csak várt, hogy megjelenhessen.
3

Csak címszavakban futottam át

saxus · 2014. Ápr. 2. (Sze), 00.30
Csak címszavakban futottam át a linkelt postot és igazából a Hack miatt szólok hozzá. Mikor megláttam, felcsillant a szemem. Mikor végigfutottam a dokumentáción, már folyt a nyálam. Aztán megláttam, hogy async... Igen, nagyon kellene, mert csupa olyan dolgot hoz be a PHP-be, amit már ezerszer hiányoltam. Úgy, hogy egy 6 éves PHP projektet viszek (bár már csak felügyeleti szinten), azt kell, hogy mondjam, hogy ezek a featurek nélkülözhetetlenek ahhoz, hogy tényleg hatékonyan kódoljon valaki. Igen, a static typing önmagában lassít valamennyit. Viszont ezernyi szívástól kíméli meg az embert, arról nem is beszélve, hogy toolokkal mennyivel jobban megtámogatható a dolog.

Kérdés az, hogy milyen tooltámogatottság lesz mellette és hosszú távon mi lesz a sorsa (de részben ezt fejtegeti a linkelt blogpost is.)

Viszont nem tudok elmenni az mellett, hogy reálisan végiggondolva nincs értelme Hack-ban elkezdeni egy projektet. Gyakorlatilag azzal toldották meg a PHP-t, amit már a C# 2.0 is nyújtott, viszont sokkal jobb tool támogatással és egy sokkal-sokkal bővebb libraryval a háta mögött. Aztán még nem beszéltünk a LinQ-ról és tucatni egyéb nyelvi elemről, ami miatt gyakorlatilag nem lennék hajlandó új projektet PHP-ben kezdeni.

Mondhatnám még a Java-t is példának, de sajnos Java8 ide, Java8 oda, még mindig 10 évvel kullog a .NET mögött.
4

async

Hidvégi Gábor · 2014. Ápr. 2. (Sze), 09.35
Ennek az aszinkronitásnak akkor van értelme, ha több különböző adatforrással dolgozol, és azok nem épülnek egymásra. A Hack megvalósítása azért jobb, mint a node.js-é, mert nincs callback pokol, cserébe viszont aszinkron módon nem lehet közvetlenül meghívni semmit, hanem egy aszinkron függvénybe kell ágyazni (hogy annak a futását akaszthassa meg).

Ezzel meg az a baj, hogy látszik, utólag építették be az aszinkronitást, szerintem érdemes utánaolvasni a Go-nak, mert azt a nyelvet eleve úgy tervezték, hogy támogassa a konkurens feldolgozást: a C#-pal és Hack-kel ellentétben például egy aszinkron függvénynek nem csak egy visszatérési értéke lehet, hanem egy csatornán folyamatosan küldheti az adatokat, így könnyen megvalósítható egy állapotjelző, hogy hol tart a folyamat.

Go by example: Goroutines, az oldal alján van egy Next example link, 17 oldalon keresztül mutatja be a témát.