Proč je Java pořád tak populární?

Re:Proč je Java pořád tak populární?
« Odpověď #60 kdy: 24. 04. 2017, 17:53:13 »
Java komunita řeší "monády".

o'rly?


phi

Re:Proč je Java pořád tak populární?
« Odpověď #61 kdy: 24. 04. 2017, 17:59:39 »
Na druhou stranu nepujdete a neprepisete celou infrastrukturu banky ci telca jen proto, ze posledni dva roky je ve freekulinske komunite zrovna popularni neco jineho. Jen za mou necelou dekadu to byl Python, Ruby a ted frci funkcionalni jazyky.

Co je na Pythonu freekulinského? Ten jazyk je starší než Java a nikdy neujížděl na žádném módním paradigmatu. Největší změna v Pythonu 3 se týkala unicode. Módním funkcionálním featurám se Python brání. OOP nikdy nevnucoval. Java byla v době svého vzniku super freekulinský jazyk. Tehdy bylo módní třídní OOP. Dnes je módní FP, proto Java komunita řeší "monády". Python komunita má tyhle trendy v zadeki. Styl psaní v Pythonu se za posledních 15 let změnil podstatně méně než v Javě.
Nic, nejde o jazyk (trebas o Ruby mam fakt moc rad) ale o pristup lidi. Nevim co ma nebo nema Python komunita kde, ale mlicnaku s nazorem ze bez jazyku XYZ neni den dost cool a kdo dela v necem jinem je marnej dinosaur jsem uz par potkal.

balki

Re:Proč je Java pořád tak populární?
« Odpověď #62 kdy: 24. 04. 2017, 18:37:44 »
Java komunita řeší "monády".

o'rly?

Ja napriklad som javista a monady neriesim, ani neviem, co to je. A tom mam ako hobby lisp.  Je to nejaky zivocich, alebo co to zerie? Bude vdaka tomu chlieb lacnejsi? Vylieci to vsetky choroby na svete?

Re:Proč je Java pořád tak populární?
« Odpověď #63 kdy: 24. 04. 2017, 19:14:35 »
Java komunita řeší "monády".

o'rly?

Ja napriklad som javista a monady neriesim, ani neviem, co to je. A tom mam ako hobby lisp.  Je to nejaky zivocich, alebo co to zerie? Bude vdaka tomu chlieb lacnejsi? Vylieci to vsetky choroby na svete?

Stojí to za pohled, ale jen pro poučení. V kontextu Javy je to prakticky k ničemu.

kimec

Re:Proč je Java pořád tak populární?
« Odpověď #64 kdy: 24. 04. 2017, 19:56:30 »
Java komunita řeší "monády".

o'rly?

Ja napriklad som javista a monady neriesim, ani neviem, co to je. A tom mam ako hobby lisp.  Je to nejaky zivocich, alebo co to zerie? Bude vdaka tomu chlieb lacnejsi? Vylieci to vsetky choroby na svete?
Stream API v Java 8 je monada, taktiez Optional a CompletableFuture. Odpourcam video z prednasky Rona Presllera (ktore som linkoval vyssie v mojom nudnom prispevku), kde sa k tymto API vyjadruje z pohladu imperativneho programatora.
Problem, ktory vypichuje je, ze akonahle zacnes pouzivat monadicke API v imperativnom jazyku, musis ho pouzivat "az do konca" (Stream logicky nemozes v polovici chainovania prehodit na klasicku imperativnu for each slucku, t.j. push vs pull).
Prichadzas o vsetky "features" ako exception handling (defaultny sposob osefovania sideeffectov v Jave), ktory je fundamentalnou sucastou jazyka od jeho vzniku a vynimky musis preklapat na hodnoty (dalej miesto deklaracie monady a jej vykonanie je uplne ine, StackTraces prestanu byt tak jednoznacne atd.)

Samozrejme, ze monady v Jave nie su nove. Davno pred JDK 8 poskytovala monadicke API na pracu s kolekciami pre Javu Guava od Google. Avsak tieto API neboli sucastou core JDK. Ale po novom je monadicke Streamove API sucastou JDK a implementacia novej funkcionality v JDK8 na niektorych triedach je na nom priamo zavisla (t.j. infekcia prerasta). Kolekcie boli retrofittovane metodami stream a parallelStream takze jedny z najstarsich rozhrani prestali byt spatne kompatibilne so starymi JDK (co je v Java svete taky maly jadrovy vybuch).

Navyse forEach cez Streamove API nie je tak rychle ako klasicka imperativna slucka for each ako dokazali JMH benchmarky - takze aj ked to IntelliJ odporuca, netreba preklapat.


gll

Re:Proč je Java pořád tak populární?
« Odpověď #65 kdy: 24. 04. 2017, 20:00:28 »
Nic, nejde o jazyk (trebas o Ruby mam fakt moc rad) ale o pristup lidi. Nevim co ma nebo nema Python komunita kde, ale mlicnaku s nazorem ze bez jazyku XYZ neni den dost cool a kdo dela v necem jinem je marnej dinosaur jsem uz par potkal.

Nové technologie se stávají seriozně použitelnými, až když přestanou být cool a mlíčňáci odejdou "vylepšovat" něco jiného. Dnes je cool Go a Node.js. Python a Ruby jsou stabilizované, ale v žádném případě ne mrtvé.

gll

Re:Proč je Java pořád tak populární?
« Odpověď #66 kdy: 24. 04. 2017, 20:06:37 »

Re:Proč je Java pořád tak populární?
« Odpověď #67 kdy: 24. 04. 2017, 21:53:33 »
Java komunita řeší "monády".

o'rly?

Stream API v Java 8 je monada

Kopec veci jsou monady (pricemz streamy v J8 to byt mohou a nemuseji), ale to neznamena, ze nekdo (pro v konverzaci beznou hodnotu "nekdo") resi monady. Proc by to v Jave mel nekdo delat?

Youda

Re:Proč je Java pořád tak populární?
« Odpověď #68 kdy: 24. 04. 2017, 22:54:15 »
Ctenim tohoto threadu jsem pochopil, ze hlavnim smyslem monad a FP obecne je v tom, aby meli ichtylove o cem krypticky mektat ve stylu mistra Yody.
Zrejme urcity druh sklenikove universitni onanie.

Clovek pohybujici se v realnem svete pak na FP oceni tech par vyhod ve specificke nice proudoveho zpracovani dat, UNIX pipes like processing ma svoje pouziti.
A protoze se nechce hrat s nevyhodami, stejne se na vsechny ty haskelly (momentalni use share 0,3%) vysere, stream narve do ActiveMQ, na nej povesi Apache Camel s par custom processory (tedy prida par zaznamu do pom.xml + par POJOs) a hotovo.
Mozna to bude zrat 10x vice CPU a RAM, to je dobre. Za nejaky stokilovy exac ti zakaznik 3 mega nezaplati.

A pak pude s deckama do ZOO.

Ivan Nový

Re:Proč je Java pořád tak populární?
« Odpověď #69 kdy: 24. 04. 2017, 23:16:25 »
@Youda

To taky, ale význam monád a FP stoupne s tvorbou programů pomocí AI, dají se na ně pohodlněji aplikovat evoluční algoritmy, snadněji na FP natrénujete neuronovou síť, protože snadněji vytvoříte trénovací data.

YF

Re:Proč je Java pořád tak populární?
« Odpověď #70 kdy: 24. 04. 2017, 23:17:31 »
Proc je nastroj oblibeny?

kimec

Re:Proč je Java pořád tak populární?
« Odpověď #71 kdy: 25. 04. 2017, 00:29:58 »
Ctenim tohoto threadu jsem pochopil, ze hlavnim smyslem monad a FP obecne je v tom, aby meli ichtylove o cem krypticky mektat ve stylu mistra Yody.
Zrejme urcity druh sklenikove universitni onanie.

Clovek pohybujici se v realnem svete pak na FP oceni tech par vyhod ve specificke nice proudoveho zpracovani dat, UNIX pipes like processing ma svoje pouziti.
A protoze se nechce hrat s nevyhodami, stejne se na vsechny ty haskelly (momentalni use share 0,3%) vysere, stream narve do ActiveMQ, na nej povesi Apache Camel s par custom processory (tedy prida par zaznamu do pom.xml + par POJOs) a hotovo.
Mozna to bude zrat 10x vice CPU a RAM, to je dobre. Za nejaky stokilovy exac ti zakaznik 3 mega nezaplati.

A pak pude s deckama do ZOO.
Osobne si myslim, ze jeden z motivov zavedenia Streamoveho API bolo aj to, ako rozumnym sposobom ludom spristupnit work stealing ForkJoinPool, ktory je sucastou JDK uz od verzie 7. Takymto sposobom dali ludom do ruk paralelny map-reduce (ktory sa dal robit samozrejme aj v JDK7), ale schovali ho za peknu fasadu noveho API tak, ze programator nemusi sam implementovat RecursiveTask rozhranie a rozmyslat nad velkostou splitov (v JDK 8 sa tato uloha deleguje spliteratorom).

Mne sa vsak viac paci ako ForkJoinPool vyuziva Quasar ako svoj user space scheduler lahkych vlakien. Pisete zdanlivo blokujuci kod a nemusite do toho miesat ziadne FP a vsetko hra a spieva ako imperativny kod (samozrejme je nutno trochu bytecode magie, ale cez agenta je to transparentne).

A ked uz Stream API bolo na svete, tak nan nasadol rovno aj Hibernate 5.2 a uplne novy ORM Speedment :).

Re:Proč je Java pořád tak populární?
« Odpověď #72 kdy: 25. 04. 2017, 08:23:45 »
Ctenim tohoto threadu jsem pochopil, ze hlavnim smyslem monad a FP obecne je v tom, aby meli ichtylove o cem krypticky mektat ve stylu mistra Yody.
Zrejme urcity druh sklenikove universitni onanie.

Tak to jsi pochopil blbě.

balki

Re:Proč je Java pořád tak populární?
« Odpověď #73 kdy: 25. 04. 2017, 08:55:50 »
Ja napriklad som javista a monady neriesim, ani neviem, co to je. A tom mam ako hobby lisp.  Je to nejaky zivocich, alebo co to zerie? Bude vdaka tomu chlieb lacnejsi? Vylieci to vsetky choroby na svete?

Stream API v Java 8 je monada, taktiez Optional a CompletableFuture. Odpourcam video z prednasky Rona Presllera (ktore som linkoval vyssie v mojom nudnom prispevku), kde sa k tymto API vyjadruje z pohladu imperativneho programatora.
Problem, ktory vypichuje je, ze akonahle zacnes pouzivat monadicke API v imperativnom jazyku, musis ho pouzivat "az do konca" (Stream logicky nemozes v polovici chainovania prehodit na klasicku imperativnu for each slucku, t.j. push vs pull).
Prichadzas o vsetky "features" ako exception handling (defaultny sposob osefovania sideeffectov v Jave), ktory je fundamentalnou sucastou jazyka od jeho vzniku a vynimky musis preklapat na hodnoty (dalej miesto deklaracie monady a jej vykonanie je uplne ine, StackTraces prestanu byt tak jednoznacne atd.)

Samozrejme, ze monady v Jave nie su nove. Davno pred JDK 8 poskytovala monadicke API na pracu s kolekciami pre Javu Guava od Google. Avsak tieto API neboli sucastou core JDK. Ale po novom je monadicke Streamove API sucastou JDK a implementacia novej funkcionality v JDK8 na niektorych triedach je na nom priamo zavisla (t.j. infekcia prerasta). Kolekcie boli retrofittovane metodami stream a parallelStream takze jedny z najstarsich rozhrani prestali byt spatne kompatibilne so starymi JDK (co je v Java svete taky maly jadrovy vybuch).

Navyse forEach cez Streamove API nie je tak rychle ako klasicka imperativna slucka for each ako dokazali JMH benchmarky - takze aj ked to IntelliJ odporuca, netreba preklapat.

Ok, uz som pochopil, su to tie mrdky, co som musel vyhadzovat po jednom externistovi, lebo sa to spravalo nepredvidatelne a zle sa to debugovalo. (Klasika, prijde naprasi, odide a internisti to potom fixuju) Osobne som streamom  v jave este stale neprisiel na chut. Dufam ze to inzinieri z oracle dotiahnu do pouzitelnej podoby, teraz je do do javy nacpane strasne nasilu.

Monadwhiz

Re:Proč je Java pořád tak populární?
« Odpověď #74 kdy: 25. 04. 2017, 10:22:30 »
Ja napriklad som javista a monady neriesim, ani neviem, co to je. A tom mam ako hobby lisp.  Je to nejaky zivocich, alebo co to zerie? Bude vdaka tomu chlieb lacnejsi? Vylieci to vsetky choroby na svete?

Stream API v Java 8 je monada, taktiez Optional a CompletableFuture. Odpourcam video z prednasky Rona Presllera (ktore som linkoval vyssie v mojom nudnom prispevku), kde sa k tymto API vyjadruje z pohladu imperativneho programatora.
Problem, ktory vypichuje je, ze akonahle zacnes pouzivat monadicke API v imperativnom jazyku, musis ho pouzivat "az do konca" (Stream logicky nemozes v polovici chainovania prehodit na klasicku imperativnu for each slucku, t.j. push vs pull).
Prichadzas o vsetky "features" ako exception handling (defaultny sposob osefovania sideeffectov v Jave), ktory je fundamentalnou sucastou jazyka od jeho vzniku a vynimky musis preklapat na hodnoty (dalej miesto deklaracie monady a jej vykonanie je uplne ine, StackTraces prestanu byt tak jednoznacne atd.)

Samozrejme, ze monady v Jave nie su nove. Davno pred JDK 8 poskytovala monadicke API na pracu s kolekciami pre Javu Guava od Google. Avsak tieto API neboli sucastou core JDK. Ale po novom je monadicke Streamove API sucastou JDK a implementacia novej funkcionality v JDK8 na niektorych triedach je na nom priamo zavisla (t.j. infekcia prerasta). Kolekcie boli retrofittovane metodami stream a parallelStream takze jedny z najstarsich rozhrani prestali byt spatne kompatibilne so starymi JDK (co je v Java svete taky maly jadrovy vybuch).

Navyse forEach cez Streamove API nie je tak rychle ako klasicka imperativna slucka for each ako dokazali JMH benchmarky - takze aj ked to IntelliJ odporuca, netreba preklapat.

Ok, uz som pochopil, su to tie mrdky, co som musel vyhadzovat po jednom externistovi, lebo sa to spravalo nepredvidatelne a zle sa to debugovalo. (Klasika, prijde naprasi, odide a internisti to potom fixuju) Osobne som streamom  v jave este stale neprisiel na chut. Dufam ze to inzinieri z oracle dotiahnu do pouzitelnej podoby, teraz je do do javy nacpane strasne nasilu.
Prostě to jen nechápeš a dodrbals práci toho externisty.