Proč je Java pomalá a problémová?

omg

Re:Proč je Java pomalá a problémová?
« Odpověď #105 kdy: 18. 12. 2013, 12:11:51 »
Skoda, ze to vyvojarum Cassandry nikdo nerekl, nemuseli by se s tim ta leta patlat;).
Opravdu jsem neměl v úmyslu se bavit tímhle tónem. Ale dobře: není to dobrý argument, protože pro volbu javy si určitě umíme představit i jiné než čistě technologické argumenty, že jo. Např. že když to bude v javě, bude to víc lidí chtít používat, snadněji se najdou vývojáři, CIO k tomu budou vstřícnější, bude se to líp integrovat atd. atd.

uz si to nakousnul, tak presne to stejne je u toho elasticsearch. ma to dostatek buzzwords a lip se na tu vejicku nekdo ulovi. tak proste korporatni prostredi funguje.

elasticsearch mi prijde, ze je prave ukazkovy priklad jak polozit navnadu na kterou se chytne stado co jde s vlnami trendu, protoze pro to maji jine duvody (z jinych oboru) nez ktere se tu snazite rozebirat. a naopak bych vyzvedl elasticsearch za to (slovy mistnich) "jak prasit v jave na profesionalni urovni", co uz, ze tim pohrbi vsechny zakladni axiomy zastancu javy. dulezity je akorat, ze to dela co ma a prezilo to porod.


Re:Proč je Java pomalá a problémová?
« Odpověď #106 kdy: 18. 12. 2013, 13:34:23 »
Tahle teze se velmi lehce vyvrátí - stačí porovnat tyhle parametry u různých jazyků nad JVM.
Všechny jsou stejně rychlé nebo pomalejší, než Java, a všechny jsou paměťově stejně náročné nebo náročnější než Java. Ono opravdu těžko vykouzlíte něco rychlejšího než assembler pro danou instrukční sadu. Jediná instrukce JVM, která nemá obraz v Javě, je invokedynamic, která se objevila až ve verzi 7. Jinak veškerý kód z těch jiných jazyků nad JVM můžete přeložit zpět do Javy – a tím se těžko zpomalí.

Re:Proč je Java pomalá a problémová?
« Odpověď #107 kdy: 18. 12. 2013, 13:37:13 »
Všechny jsou stejně rychlé nebo pomalejší, než Java, a všechny jsou paměťově stejně náročné nebo náročnější než Java. Ono opravdu těžko vykouzlíte něco rychlejšího než assembler pro danou instrukční sadu. Jediná instrukce JVM, která nemá obraz v Javě, je invokedynamic, která se objevila až ve verzi 7. Jinak veškerý kód z těch jiných jazyků nad JVM můžete přeložit zpět do Javy – a tím se těžko zpomalí.
Výkon aplikací ale není jenom o hrubém výkonu, ale taky o tom, jak je to napsané. Např. proto, že se to dá líp nebo hůř paralelizovat. A to už s jazykem souvisí setsakramentsky...

Re:Proč je Java pomalá a problémová?
« Odpověď #108 kdy: 18. 12. 2013, 13:46:40 »
Výkon aplikací ale není jenom o hrubém výkonu, ale taky o tom, jak je to napsané. Např. proto, že se to dá líp nebo hůř paralelizovat. A to už s jazykem souvisí setsakramentsky...
Jenže tenhle typ výkonu je úplně něco jiného, než o čem se tu celou dobu diskutuje (i když je to – na rozdíl od toho diskutovaného – výkon, kterým se má smysl zabývat). Navíc tenhle výkon závisí hodně na architektuře aplikace, na tom, jak je naprogramovaná… Tenhle výkon se dnes často řeší cloudy, kde naopak vládnou jazyky používající virtuální stroje a C/C++ prohrává na celé čáře.

Re:Proč je Java pomalá a problémová?
« Odpověď #109 kdy: 18. 12. 2013, 13:55:57 »
Jenže tenhle typ výkonu je úplně něco jiného, než o čem se tu celou dobu diskutuje
Já jsem tu diskusi pochopil tak, že lidi zajímá celkový "dojem z aplikace" a ne srovnávání nějakých abstraktních algoritmů v ideálních podmínkách...


omg

Re:Proč je Java pomalá a problémová?
« Odpověď #110 kdy: 18. 12. 2013, 14:00:08 »
Tenhle výkon se dnes často řeší cloudy, kde naopak vládnou jazyky používající virtuální stroje a C/C++ prohrává na celé čáře.
you wish... https://news.ycombinator.com/item?id=5118070

Re:Proč je Java pomalá a problémová?
« Odpověď #111 kdy: 18. 12. 2013, 14:07:54 »
Tenhle výkon se dnes často řeší cloudy, kde naopak vládnou jazyky používající virtuální stroje a C/C++ prohrává na celé čáře.
you wish... https://news.ycombinator.com/item?id=5118070
Myslíte jako že vezmu C/C++ kód a nasadím ho do nějaké PaaS jako Google App Engine, Microsoft Azure Platform, Heroku? Byl by příklad takové platformy?

Re:Proč je Java pomalá a problémová?
« Odpověď #112 kdy: 18. 12. 2013, 14:08:41 »
you wish... https://news.ycombinator.com/item?id=5118070
To je dobrá připomínka - proč vlastně všchny "JVM-only" operační systémy zkrachovaly. Čistě pocitově mi to přijde podobné jako u toho Looking Glass - prostě se ukázalo, že java na tyhle věci vhodná není. Ale to je fakt jenom úplně laický neinformovaný odhad zvnějšku.

Re:Proč je Java pomalá a problémová?
« Odpověď #113 kdy: 18. 12. 2013, 14:14:25 »
Jenže tenhle typ výkonu je úplně něco jiného, než o čem se tu celou dobu diskutuje
Já jsem tu diskusi pochopil tak, že lidi zajímá celkový "dojem z aplikace" a ne srovnávání nějakých abstraktních algoritmů v ideálních podmínkách...
Úvodní dotaz takový určitě nebyl. A pokud by se o tom diskutovalo, tak se přece nediskutuje o programovacím jazyce, ale o platformách a architekturách. Celkový dojem z aplikace GMail přece vůbec nezávisí na tom, že backend je napsaný v Javě, ani na tom, v čem je napsaný GWS.

Re:Proč je Java pomalá a problémová?
« Odpověď #114 kdy: 18. 12. 2013, 14:21:12 »
To je dobrá připomínka - proč vlastně všchny "JVM-only" operační systémy zkrachovaly.
Záleží na tom, čemu říkáte operační systém. Pokud myslíte systém ovládající hardware jednoho počítače, pak máte pravdu. Pokud myslíte základní prostředí, ve kterém běží aplikace, nějakou platformu – tam je to přesně opačně. Existují platformy pro Javu, Python, .NET, PHP (to je vlastně průkopníkem tohoto směru), ale pro C nebo C++ byste hledal těžko. Jistě že ty PaaS jsou provozovány na nějakém skutečném operačním systému, který běží na fyzickém hardwaru. Ale o tom aplikace vůbec neví.

Re:Proč je Java pomalá a problémová?
« Odpověď #115 kdy: 18. 12. 2013, 14:23:12 »
Úvodní dotaz takový určitě nebyl.
Mně právě přesně takový přišel: "I cizí "velké" java aplikace mi dělají problémy více, než jiné (jdownloader, eclipse, android) pády, záseky, lagy... "  -- já jsem to pochopil jako "proč když vidím, že je něco napsané v javě, očekávám, že to bude obrovský moloch s velkými nároky na paměť, nevyrovnaným výkonem atd.?" Ne že bych s tím souhlsail nebo na to uměl odpovědět (žádnou javovou aplikace pravidelně nepoužívám ani na serveru nespravuju), ale pochopil jsem ten dotaz takhle. Navíc to slýchávám od adminů celkem často...

A pokud by se o tom diskutovalo, tak se přece nediskutuje o programovacím jazyce, ale o platformách a architekturách.
Aniž bych do javy viděl, předpokládám, že JVM je taková obdoba cpu instrukční sady a java je prostě jazyk nad tou sadou. Takže jazyk je určitě limitovaný sadou, ale ne naopak - tj. pokud by byla pravda, že aplikace v javě jsou naprd, neplyne z toho, že je naprd JVM, protože můžou (aspoň teoreticky) existovat jazyky, které nad JVM budou v celkovém dojmu pracovat líp.

Samoztnýho by mě tohle zajímalo - jestli existují nějaká solidní data ohledně _průměrné_ efektivity, stability, bezpečnosti atd. atd. javových aplikací versus průměrných aplikací postavených na něčem jiném.

Re:Proč je Java pomalá a problémová?
« Odpověď #116 kdy: 18. 12. 2013, 14:24:14 »
Záleží na tom, čemu říkáte operační systém.
Java OS, JNode, JX, ...

Kolemjdoucí

Re:Proč je Java pomalá a problémová?
« Odpověď #117 kdy: 18. 12. 2013, 14:33:40 »
To je dobrá připomínka - proč vlastně všchny "JVM-only" operační systémy zkrachovaly.

Jelikož je Java navržena hloupě tak se nepodařilo vyrobit 100 % HW JVM a když není HW logicky není ani OS.
Dělat OS v softwarovém JVM je nesmysl z podstaty.

Java OS, JNode, JX, ...

OS z principu musí být hromada nativního kódu spouštěného vzápětí po Resetu, ovládající hardware a mimo jiné umožňující zavádět do paměti nativní aplikace a spouštět je. Jelikož pro Javu není a nebude HW, OS v Javě nikdy nebude moci vzniknout.

Re:Proč je Java pomalá a problémová?
« Odpověď #118 kdy: 18. 12. 2013, 14:38:02 »
OS z principu musí být hromada nativního kódu spouštěného vzápětí po Resetu, ovládající hardware a mimo jiné umožňující zavádět do paměti nativní aplikace a spouštět je. Jelikož pro Javu není a nebude HW, OS v Javě nikdy nebude moci vzniknout.
Proč by musela? Poměr mezi množstvím kódu pod JVM a nad JVM může být celkem libovolný, ne? Umím si představit, že platforma s jenom tenoučkou nativní vrstvou pod JVM, napsanou namíru určitému virtuálizovanému hw, by mohla být celkem terno. Akorát se to prostě ještě přes mnohé pokusy neobjevilo. A docela by mě zajímalo, proč (pokud je pravda, že java je výkonostně plně srovnatelná třeba s C).

Mít možnost plné kontroly a inspekce spouštěného kódu na vysoké úrovni by přece byla pecka. Nejenom z bezpečnostních důvodů...

Kolemjdoucí

Re:Proč je Java pomalá a problémová?
« Odpověď #119 kdy: 18. 12. 2013, 14:43:52 »

A JVM vyrobíte a spustíte v čem ? Odpovím si sám v nativním kódu. Taktéž tam bude muset být něco co toho bumbrlíčka JVM dokáže dostat a spustit, bude tam muset být podpora na přepínání vláken a a procesů a další věci a ovladače budou nutně muset být v nativním kódu.

Plná kontrola nad běžícím kódem je dávno hotová, je to režim virtuální paměti v x86,. Povšimněte si že od W2K a na Linuxu asi odjakživa se aplikace nemohou bořit navzájem, taktéž nemohou bořit jádro.

Platforma s tenkou vrstvou pro JVM se neujala proto, že vždycky se našel nějak blb co uměl aplikaci napsat nativně s lepšími výsledky než v Javě.