[Java lista] PHP versus Java

Cserep Janos cserepj at szeretgom.hu
2010. Feb. 27., Szo, 12:39:20 CET


> Szerinted. ;) Az MQ-ra azt írta hogy nem lehet.

Azt írtam: "mutass pl. egy korrekt PHP MQ klienst". Nem MQ API-t
kértem PHP-hoz, abból van több is. Korrekt MQ klienst mutass, például
arra a scenarióra, hogy van egy queue-d amibe érkeznek a korábban a
UI-ról a háttérrendszernek feladott kérésekre érkező válaszok (több
kliensből is ugyanabba a queue-ba érkeznek a válaszok). Ilyenkor
Javaban nyilván csinál az ember a webalkalmazásban egy háttérben futó
thread-et ami figyeli a queue-t és attól függően, hogy az alkalmazás 1
hoston vagy elosztva fut, a bejövő és feldolgozott üzeneteket
valamilyen temporális tárolóban (elosztott esetben pl Hazelcast,
Terracotta) helyezi el arra az esetre, ha a UI rétegből mondjuk egy
AJAX callback érdeklődik, hogy na jött-e már válasz, vagy esetleg akár
a bejövő válasz indíthat egy Comet push kérést is vissza. Mindez
Javaban tök egyszerű, minden a platform keretein belül van, némi
szinkronizációs overhead van, de kezelhető, gyönyörűen unit teszteket
lehet rá írni még akár úgy is, hogy a unit test felhúz egy teszt mq
konfigurációt. PHP-ban meg gondolom írjak démont, adjam át a bejövő
üzeneteket a memcached-nek, a UI meg olvassa ki abból. 3 különböző
komponens, külön életciklussal, extra hálózati kommunikációval, a
külön életciklus miatt sokkal bonyolultabb a tesztelés, stb. Lehet
egyet nem érteni azzal, hogy ez felesleges patkolás ami a platform
limitációja miatt van, és egy körültekintőbb, a projekt igényeit
jobban felmérő architekt az első napon lehúzta volna a PHP-t a
lehetséges platformok listájáról, de attól még nagyjából ez a helyzet.

> nyelven belül, viszont PHP esetén nincs is értelme annak, hogy nyelven
> belül. Amúgy process controllal még lehetne nyelven belül is, csak
> tényleg nem sok értelme van. (Kenyérpirítót sem lehet PHP-ból vezérelni.)

Most írtátok, hogy lehet, csak kell egy kenyérpirítóvezérlődémon
memcached-vel...

> Nem ugyanarról beszélünk, legalábbis nem feltétlenül. A Memcache egy
> elosztott cache, más szerepe van/lehet. Facebook viszonylatában 1000
> nagyságrendű memcache szerver van, mindegyik dugig memóriával, ezt nem
> fogod VM-ben tárolni.

Dehogynem fogod. Láttál már például Hazelcast-ot?

http://www.hazelcast.com/product.jsp


> Az egésznek az lett volna az értelme (ha nem kötözködni akarsz persze),
> hogy Java-hoz magasabb szintű eszközök rendelkeznek, amiket szvsz
> gyakran nem is ismer igazán mélységben aki használja (csak itt párszor
> láttam, hogy számomra alap nyelvi sajátosságokról milyen viták mentek),
> és ezek gyakran elfednek alatt fekvő rétegeket, míg mondjuk PHP
> környezetben ennél egyszerűbb kockákból kell építkezni.

Szóval végül csak egyetértesz velem abban, hogy Javaban könnyebb és
gyorsabb bonyolultabb feladatokat megoldani az ecosystem és a platform
miatt?


További információk a(z) Javalist levelezőlistáról