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

YF

Re:Proč je Java pořád tak populární?
« Odpověď #45 kdy: 23. 04. 2017, 19:20:23 »
Gratulujem, spalil si najmenej 3 minuty svojho zivota, aby si v dvoch vetach mohol napisat, ze boli zbytocne. Potesenie je na mojej strane!
Myslim ze rozhodne nejsme na stejne strance ale nemas zac :)
Ja som na root-e a ty evidentne tiez... Mas rad metafory?
vsimni si toho meta ve slove metafora
Skoda, myslel som, ze z teba vypadne nieco hlbsie. Kludne som mohol napisat prirovnanie. Ale fajn, ze si sa chytil. Takze predsa len sme na tej istej stranke?
No nejsme - divej - tezko muzem byt na stejne strance kdyz necteme stejnou knihu ...


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Proč je Java pořád tak populární?
« Odpověď #46 kdy: 23. 04. 2017, 23:22:58 »
V tomto prispevku vysvetlim OP, preco Java este zije. Bude to dlhy prispevok, ale o to zaujimavejsi.

Na uvod male odlahcenie v podobe lacneho vtipu.
Co má [Java] proti třeba Pythonu a novějším jazykům?
Len pre tvoju informaciu, Java je novsia ako Python. Asi si nedaval pozor na hodine (haha-h). Ked najblizsie budete mat Python, mozes ohurit skolitela.

A teraz uvediem perlu (takzvany red pill), ktora nenecha Haskellistu, Lispistu a ineho funkcionalistu v klude:
Citace
Od jari 2014 v produkcnych systemoch (banky, vlady atd.) po celom svete a v masovej skale pribudli monady. Bez toho, aby o tom hlasali v televizii alebo pisali na root.cz bombasticke clanky, svet sa stal zo dna na den o trochu viac funkcionalnejsi...

A nestalo sa tak preto, ze od jari 2014 je Haskell najpopularnejsim jazykom. Stalo sa tak preto, ze vysla Java 8, do ktorej pribudli monadicke API, ktore su sucastou zakladneho JDK a teda su pritomne vsade tam, kde je Java 8 a vyssie. Tato myslienka nie je samozrejme moja, inak by som ju tak sebaisto neprezentoval. Povedal ju Ron Pressler na konferencii Curry on. Publikum sa sice zasmialo, ale bohuzial to nebol vtip. Okrem ineho do Javy pribudli aj lambdy...
Ako a kedy sme sa sem dostali? Su lambdy a monady listok pre Javu ako sa vratit medzi "nove" jazyky? Ale kdeze, v Jave su predsa aj lahke vlakna s kanalmi a kooperativnym multitaskingom podobne ako maju gorutiny v Go alebo procesy v Erlangu. Su tu aj namenej tri aktor frameworky (Akka, Orbit a Quasar) a samozrejme tzv. big data technologie, ci uz starucky YARN a MapReduce alebo mladsi Spark, near-realtime a adhoc analyticke nastroje ako Druid alebo Drill, zbierace a analyzatory prietokovych senzorickych dat Storm a NiFi, za tatru in-memory gridov (Genode, Hazelcast, Ignite) schopne spravovat PB v datalakeoch v RAMke, vyhladavace a indexery, ktore v inych jazykoch nemaju alternativne popularnu implementaciu. Alternativa k Spark ML? V neposlednom rade ma Java aj svoj polyglotny event driven "node.js"  s nazvom Vertx.io a dokonca aj port Rx kniznice, ak by mal niekto potrebu ukojit svoje FRP tuzby.

A teraz k povodnej otazke
Ahoj, roky slýchávám, jak je Java stará a už nemá co nabídnout. I proto ji nedělám, ale mrzí mě, že je pořád nejpopulárnější. Proč to tak je?

Bezpochyby ma Java stale momentum. No je jasne, ze o toto momentum pomaly prichadza v prospech jazykov ako Go. Avsak treba si uvedomit, ze Java robi aj velmi riskantne kroky vo velmi (relativne) kratkom case, ktore inym jazykom trvaju roky (tymto pozdravujem Perl 6). Osobne si myslim, ze je to prave kombinacia riskovania, momentu a tiez schopnost Javy rozsirit "nove" technologie a koncepty na masovej skale medzi beznych programatorov, ktore drzia Javu nad vodou. Preto su ludia, ktory sa na Jave vezu, jeden den na koni a druhy den rukojemnici.

V Jave sa deju velke-male revolucie, ktore ale bezneho cloveka z ulice obchadzaju alebo o nich nikdy nepocul, lebo to nepotreboval. Napr. v roku 2010 to bolo zavedenie novej bytecodovej instrukcie invokedynamic a v roku 2017 to bude v znameni IoT. V Java 9 sa bude balit do bundlov ako cez Webpack a pribudne AOT kompilcia do nativneho kodu - zatial iba na Linuxe. Pribude aj interaktivny shell. Stane sa Java potom dostatocne "mlada" ako Python?

Apropo, prave vdaka invokedynamic sa stal JVM plnohodnotny domov novych jazykov (Scala, Closure, Kotlin, Python, Ruby, Haskell). Vtip je v tom, ze ked Java 7 vysla, samotny Java jazyk tuto instrukciu nijako nepouzival a kompiler ju ani nedokazal emittovat pre ziaden zo syntaktickych konstruktov. Ludia ako Charles Oliver Nutter (tvorca JRuby) s ludmi zo Sun-u vtedy JVM riadne prefackali k zivotu aspon na dalsiu dekadu. Predsa ziaden zo staticky typovanych Javistov nepotreboval dynamicke prepajanie call site a target asistovane vlastnou bootstrap metodou pocas runtimu. Samotnemu jazyku Java trvalo dalsie 4 roky nez zacal invokedynamic vyuzivat.

Dnes tuto dynamickost v Jave pouzijes tak, ze v IntelliJ kliknes prehodit slucku for() na forEach(). Alebo si do klastra 200 Ignite nodov posles () -> { System.out.println("Hello World")} (Technicku diskusiu o tom, ze kompiler desugaruje lambdu na privatnu metodu na triede, kde je zadefinovana, vyemittuje invokedynamic call site v mieste volania a potom runtime musi za behu vytvorit ad hoc lambda factory triedu cez ASM kniznicu, nechame bokom).

Zaver z mojho prispevku je: Java sa vyvyja aj ked sa na nu nepozeras alebo inak dnesna Java nie je ta ista, v ktorej zacinal pisat tvoj otec <-- velmi good read

[flame bait] Apropo, asi sa zhodneme, ze dochadza k istemu "revivalu typovosti" aj v dynamickych jazykoch, inak by TypeScript nenaberal tolko na popularite a nebol by primarnym vyvojovym jazykom Angular 4. Jasne, ze je to iny typ typovosti ako ma Java, ale stale lepsie ako JavaScript... Ze by to soudruzili architekti Javy odhadli v '96 spravnejsie ako Guido 5 rokov pred nimi?
Jenže slovy klasika "[...] monads require writing code at a level of sophistication not available to the average programmer". A Java byla cíleně navržena pro průměrného programátora. Takže tudy cesta nevede.

m

Re:Proč je Java pořád tak populární?
« Odpověď #47 kdy: 24. 04. 2017, 08:57:28 »
nejjednodussi odpoved je .. Protoze Android

Re:Proč je Java pořád tak populární?
« Odpověď #48 kdy: 24. 04. 2017, 10:24:23 »
nejjednodussi odpoved je .. Protoze Android

Android muze prispivat k popularite Javy, ale tezko je to hlavni vysvetleni.

dustin

Re:Proč je Java pořád tak populární?
« Odpověď #49 kdy: 24. 04. 2017, 11:29:10 »
Používání lambd není v javě 8 žádná věda. Vyřeší se jimi spoustu workaroundů/kódu navíc, když je potřeba předávat postup a ne jen data. Navíc vedou k lepší dekompozici, protože člověka neštve ty funkcionality rozpadat na samostatné části, když nepotřebuje tolik omáčky kolem a spoustu dalších pomocných tříd.

Stejně tak streamy ušetří spoustu času, především při velice časté konverzi kolekcí na jiný vnitřní objekt. Naučí se to každý, opět žádná věda to není. Optional a spol. je už něco trochu jiného, na to se musí myslet víc. Ale taky užitečné a žádná rocket science.


Kit

Re:Proč je Java pořád tak populární?
« Odpověď #50 kdy: 24. 04. 2017, 13:04:19 »
Používání lambd není v javě 8 žádná věda. Vyřeší se jimi spoustu workaroundů/kódu navíc, když je potřeba předávat postup a ne jen data. Navíc vedou k lepší dekompozici, protože člověka neštve ty funkcionality rozpadat na samostatné části, když nepotřebuje tolik omáčky kolem a spoustu dalších pomocných tříd.

Lambdy jsou výhodné i v dalších jazycích, včetně PHP. Dají se sice nahradit anonymním objektem, ale mohlo by to znamenat znepřehlednění kódu.

JS

Re:Proč je Java pořád tak populární?
« Odpověď #51 kdy: 24. 04. 2017, 14:28:59 »
Jenže slovy klasika "[...] monads require writing code at a level of sophistication not available to the average programmer". A Java byla cíleně navržena pro průměrného programátora. Takže tudy cesta nevede.

Kecy.. http://haskellbook.com/

Re:Proč je Java pořád tak populární?
« Odpověď #52 kdy: 24. 04. 2017, 14:38:25 »
Jenže slovy klasika "[...] monads require writing code at a level of sophistication not available to the average programmer". A Java byla cíleně navržena pro průměrného programátora. Takže tudy cesta nevede.

Kecy.. http://haskellbook.com/

No priznejme si, ze tohle uplne neni pro prumerneho programatora pri dnesni urovni jejich vzdelavani. (Ne ze by monady byly zas takova magie, ta povest je horsi nez realna obtiznost. A musim ti tohle doporuceni podepsat minimalne v tom, ze doporucujes skvely zdroj, prestoze mam pocit, ze zdaleka ne pro tolik lidi, jak by sis predstavoval :-/)

v

Re:Proč je Java pořád tak populární?
« Odpověď #53 kdy: 24. 04. 2017, 15:06:47 »
http://haskellbook.com/
by mě zajímalo jak vypadá cílová skupina

phi

Re:Proč je Java pořád tak populární?
« Odpověď #54 kdy: 24. 04. 2017, 15:45:56 »
Ahoj, roky slýchávám, jak je Java stará a už nemá co nabídnout. I proto ji nedělám, ale mrzí mě, že je pořád nejpopulárnější. Proč to tak je? Co má proti třeba Pythonu a novějším jazykům? Nebo je to jen setrvačnost, že lidé se nechtějí učit novější věci? Na škole jsme ji měli, ale moc mě nezaujala. Startupy ji často vůbec nemají, protože potřebují mít rychle výsledky. Tak jen jestli se tu najdou odborníci z praxe, kteří to chápou.
Ano, nejlepsi je dat na nazory lidi, idealne tech kteri kazdych 5 let evangelizuji IT komunitu nejakym novym jazykem :)
Java ma co nabidnout a pokud fakticky delate byznys v horizontu delsim nez dva roky, tak vas zajima jestli budete mit za tri pet let jeste lidske zdroje schopne na tom projektu pracovat.
Ze startupy nepouzivaji Javu neni ani tak jejimi nevyhodami ale spis lidmi. Pokud je plan spalit co v nejkratsim horizntu co nejvice investorskych penez a pak to strelit, tak vas udrzivatelnost projektu asi moc nezajima.
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. Ono z toho asi casem vyplyne novy industry standard, ale to jeste minimalne dekadu potrva. 70., 80.  a 90. letech vladlo C a Jave zase patri prvni tri dekady 21.stoleti. Tecka. 
  Aneb slovy klasika - "Java is not lanaguage, Java is industry"

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Proč je Java pořád tak populární?
« Odpověď #55 kdy: 24. 04. 2017, 16:00:13 »
Ahoj, roky slýchávám, jak je Java stará a už nemá co nabídnout. I proto ji nedělám, ale mrzí mě, že je pořád nejpopulárnější. Proč to tak je? Co má proti třeba Pythonu a novějším jazykům? Nebo je to jen setrvačnost, že lidé se nechtějí učit novější věci? Na škole jsme ji měli, ale moc mě nezaujala. Startupy ji často vůbec nemají, protože potřebují mít rychle výsledky. Tak jen jestli se tu najdou odborníci z praxe, kteří to chápou.
Ano, nejlepsi je dat na nazory lidi, idealne tech kteri kazdych 5 let evangelizuji IT komunitu nejakym novym jazykem :)
Java ma co nabidnout a pokud fakticky delate byznys v horizontu delsim nez dva roky, tak vas zajima jestli budete mit za tri pet let jeste lidske zdroje schopne na tom projektu pracovat.
Ze startupy nepouzivaji Javu neni ani tak jejimi nevyhodami ale spis lidmi. Pokud je plan spalit co v nejkratsim horizntu co nejvice investorskych penez a pak to strelit, tak vas udrzivatelnost projektu asi moc nezajima.
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. Ono z toho asi casem vyplyne novy industry standard, ale to jeste minimalne dekadu potrva. 70., 80.  a 90. letech vladlo C a Jave zase patri prvni tri dekady 21.stoleti. Tecka. 
  Aneb slovy klasika - "Java is not lanaguage, Java is industry"
Ten klasik je Tatar, že píše lámanou angličtinou?

phi

Re:Proč je Java pořád tak populární?
« Odpověď #56 kdy: 24. 04. 2017, 16:15:28 »
Ten klasik je Tatar, že píše lámanou angličtinou?
Tatar jsem ja. Ale resit tu moje preklepy, neni to pod vasi uroven ?

JS

Re:Proč je Java pořád tak populární?
« Odpověď #57 kdy: 24. 04. 2017, 16:26:36 »
http://haskellbook.com/
by mě zajímalo jak vypadá cílová skupina

Cilova skupina je treba spoluautorka te knizky. ;)

Citace
No priznejme si, ze tohle uplne neni pro prumerneho programatora pri dnesni urovni jejich vzdelavani.

To skutecne neni, prumerny programator to tak polopaticky vysvetlit nepotrebuje. :) Potiz je, ze si mysli, ze o programovani vsechno vedi, a nechteji k tomu pristoupit s otevrenou hlavou, narozdil od zacatecnika.

v

Re:Proč je Java pořád tak populární?
« Odpověď #58 kdy: 24. 04. 2017, 16:48:18 »
Cilova skupina je treba spoluautorka te knizky. ;)
tj. pro lidi co nemají zájem o programování? nebo pro lidi co se chystají napsat učebnici haskellu? milovníky koček?

gll

Re:Proč je Java pořád tak populární?
« Odpověď #59 kdy: 24. 04. 2017, 17:20:43 »
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ě.