Java8 Streams vs JavaRx rubrika: Programování: Java

3 jan.flos
položil/-a 4.10.2014

S velkou slávou se v Javě8 objevilo Stream API. Na první pohled hezká věc, až na to, že JavaRX je v podstatě Stream-API, ale technologicky mnohem vyspělejší, protože už počátku nabízí to co Stream-API, ale ještě mnohem víc.

Myslí si to ještě někdo kromě mě ?

odkaz
9 Honza Břešťan
odpověděl/-a 4.10.2014

Primarne by pro iterables melo byt pouzite Stream API, ne Rx, prave proto, ze je to soucast standardni knihovny. Ne kazdy bude chtit pridavat zavislost na Rx a resit plumbing kolem prevodu mezi Rx a Stream API jen proto, aby treba mohl precist normalni pole, ktere mu vrati cizi knihovna.

Jinak je to trochu slozitejsi. Je to dualni model - Stream API je urcene pro pull-based streamy (iterable), Rx pro push-based (observable). Funkce nabizi dost podobne, ale lisi se smerem, ze ktereho prichazi potreba zpracovat nova data streamu. V Rx sice jde pracovat i s klasickymi iterables (a pak Rx dava spoustu novych operaci navic), ale nemel by to byt primarni zpusob prace s iterable (muze a nemusi to byt vyhoda, pokud se kombinuji streamy treba ze site, z disku a z pameti najednou. Pak je ale potreba mit na pameti vsechny skryte buffery, kde co (ne)blokuje apod.)

Bonusova uloha - kde na "big data cube" budou lazy iterables a kde strict (eager)? http://deliveryimages.acm.org/10.1145/2170000/2169076/meijer1.png
(zbytek clanku "Your Mouse is a Database", ze ktereho je obrazek - http://queue.acm.org/detail.cfm?id=2169076)

Pro zobrazení všech 2 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.