2015. március 1., vasárnap

java 1.8 hash

A java 1.8-ra egy egész halom érdekességet hoz, talán a legnagyobb változások a java 1.5 óta. Az emberek mégis igen lassan mozdulnak rá, a cégek meg még lassabban. Ez a szokásos dolog. Az Oracle, hogy kellemes pozitív motivációval noszogasson minket, fejbelövi a java 1.7-et, pár hónap múlva nem több lesz frissítés. A Fedora project fejlesztői kicsit erőszakosabban modernizálnak és a fedora 21 új feature-i közé betették azt, hogy nincs java 1.7 rajta. Micsoda spártai (és balfasz) feature. Akárhogy is, lassan mozdulni kell és az élő projecteket át kell rángatni java 1.8-ra.

Ez egy igazán naiv idealista szemében rohadtul egyszerű lehet: Csere, restart, jónapot.

A probléma, amibe többszörösen beleakadtam, tulajdonképpen egy nem különösebben nagy dobra vert újdonság: új hash algoritmus, amely egész szépen muzsikál. Király, jobb teljesítmény ingyen. Mi baj lehetne?
A probléma ott van, hogy bár nagyon nem jó ötlet arra fogadást kötni, hogy a HashMap-ba tuszkolt adatok milyen sorrendben fognak kijönni amikor iterálsz rajtuk, nos ennek ellenére explicit módon egy csomóan mégiscsak fogadást kötöttek rá, általában tudtukon kívül. Egész idáig mindig nyertek, mert mindig ugyanúgy jöttek ki az adatok. Most szépen kipukkan a lufi, de még nem igazán látom, hogy mekkora a lufi.

A probléma ott van, hogy:
  1. Nagyon sok helyen használunk HashMap-et vagy HashSet-et
  2. A hibás feltételezéseket nehéz megtalálni, nem holmi grep-pelés, hanem el kell a nyomorult kódot olvasni, tesztelni kell
  3. Nagyon sok kódot
  4. Nagyon kevés időnk van rá

Szóval jó kis meló lesz ez, hajrá :)

"Hash, alkoss, gyarapíts"