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.
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.
Blog
Moderálási sor
Csak címszavakban futottam át
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.
async
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.