Co zpomaluje Javu? A co překlad do nativního kódu?

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #165 kdy: 14. 11. 2016, 22:24:13 »
no, to nejsou. kod sice mozou mit celkem kosaty, ale z pohledu jazyku a jejich dospelosti pro realny svet jsou to naprosto nenarocne veci. cpu by nemely zrat vubec...vzdyt co delaji?


 nejnarocnejsi operace je nejspis neco jako hledani v nejakem indexu, databazi. je rok 2016 a tohle fakt neni nic u ceho by se mel system zapotit.....
Nemohl byste vedle reálného světa vzít v úvahu také reálný letopočet? Rok 1970 už je poněkud passé a to, co vyřizuje požadavky uživatelů, opravdu nejsou jednovláknová CPU. Nejpočetnější skupina IT zařízení, se kterými uživatelé přímo pracují, dnes jsou nebo brzy budou mobilní zařízení (která se mimochodem neprogramují v C ani C++, ale v Javě nebo v ObjectiveC), další v pořadí je desktop (kde vedou Windows a tudíž C#).

Ukažte mi nějakou „spotřební“ aplikaci (kterou používají lidé jako používají ledničku, televizi nebo auto – kancelářský balík, internetový prohlížeč, hry, editory fotek, e-mailový klient, mapy), u které je pro uživatele podstatný výkon na CPU. Myslím, že nenajdete ani jednu. Pokud už to budou aplikace náročné na výkon, bude to buď výkon při paralelizaci, nebo výkon na GPU.

a co vlastne hledam....no zacnu ciste ze sveta v kterem se ja pohybuju tj. napriklad vizualizacni sw jako zbrush,maya,max...ruzne archviz, dynamics, finite elements, kapalinove simulace, treba nejaky vetsi cad....atd.
Tak hledejte, hledejte. Já už jsem vám sem odkazy dával.

proste veci ktere dokazi zamestnat multi cpu,gpu,pamet,io a ktere je treba psat v dospelem jazyku.
Zatím to vypadá, že je vám úplně jedno, zda je program užitečný pro uživatele, důležité pro vás je jenom to, zda vytěžuje CPU, GPU, paměť a IO. Naštěstí to tak nepojímají všichni, takže existují i užitečné programy napsané v C nebo C++.

klidne muzou byt ruzna data mining, expertni systemy, kompexnejsi databaze, deep learning, analyza reci, proste cokoli kde se hw zapoti tim,ze resi kompexni problemy, nejen ze resi samy sebe...
Příklady tu už opět padly. A v těchto oblastech se používá Java, Python, JavaScript případně další skriptovací a funkcionální jazyky. C je někde schované pro urychlení některých výpočetně náročných operací. To asi znamená to „dospělý programovací jazyk“ – že se mu každý vyhýbá a použije ho jedině tehdy, když není zbytí…

Mimochodem, pořád jste nenadefinoval, co je to ta „rychlost programovacího jazyka“, kterou se tady pořád tak oháníte. Někteří lidé píší šílený kód a obhajují to tím, že je to optimalizace – přitom nikdy nedokážou změřit to, v čem má být jejich kód údajně lepší, a dokonce ani nedokáží definovat, co by mělo být kritériem. Zdá se, že někteří to praktikují trošku jiným způsobem, a to tak, že píší v C.

Naštěstí máme spoustu různých jazyků a prostředí, a každý se hodí trochu na něco jiného. Vaše smůla je, že ke správnému výběru nestačí silná víra, že právě ten váš jazyk je ten „dospělý“, ale je potřeba umět nadefinovat kritéria, podle kterých budete hodnotit.


javaman ((

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #166 kdy: 14. 11. 2016, 22:28:42 »
Co to meleš? On ti píše, že nic náročnějšího není a ty začneš zase nějaké nesmysly :D Technickou stránkou právě všechny porazil.

Ale prosímtě, minecraft v Javě je z hlediska výkonu dost tragédie, C++ verze je násobně rychlejší:
https://www.youtube.com/watch?v=dKgQwaKQ87Y
http://www.zdnet.com/article/minecrafts-new-education-edition-written-in-c-will-outrun-the-java-version/
Nějak nám ty super hyper hotspot runtime optimalizace moc nefungují, že?

Ahaaa a on je to úplně stejný MC, co? Vůbec tam nejsou rozdíly :D

... proste veci ktere dokazi zamestnat multi cpu,gpu,pamet,io a ktere je treba psat v dospelem jazyku. ale to je jen priklad, nemusi to byt z me branze,...

Ten Minecraft vam nevoni? Na CPU a myslim i na GPU jsou voxelove svety zatracene narocne (proto se to zacina prosazovat az ted, protoze na to pc zacinaji mit vykon). Na io - disk spise narazove, na sit, pokud putujete po svete rychle, tak to take neni zanedbatelne. Ale chapu, ze to zase smetete ze stolu, ze to neni "poradna dekstop aplikace", protoze pridate dalsi podminku :).

Ne, asi se nema cenu se s vami bavit, pusobite jako trochu sofistikovanejsi trol. Nejdrive oznacite IDE za male projekty, ktere nic nedelaji. Kdyz vam predhodim fakta, ktera rikaji opak, tak si to zase okecate, ze najednou je potreba realtime. Kolikata podminka to uz je? Desktop aplikace, ktera je narocna na io, pamet, cpu, gpu, prikon, rozliseni, fps, spojeni se satelitem, zabudovanym ovladanim vodotrysku a spustite ji jen na desktopu s hw za dva miliony $?


Minecraft je jiste zajimava volba.....nicmene Minecraft prorazil nikoli technickou strankou ale napadem (ostatni vizualni kvalita je zcela zamerne retro oldskulova az indie :-)

Co to meleš? On ti píše, že nic náročnějšího není a ty začneš zase nějaké nesmysly :D Technickou stránkou právě všechny porazil.

no nevim, hry me zivily 8 let (AAA), voxelove enginy jsou soucasti demo sceny konce 20 stoleti, osobne jsem napsal hned nekolik voxelovych algoritmu , naposled jsem na distance field ray marchingu delal tak pred mesicem, ale kdyz rika ze je to narocne, tak to asi narocne je, nema cenu se prit ;-) ne fakt kouzlo minecraftu neni v technicke strance....

Tak jsi tam třeba jen uklízel. MC má věci, které jinde nejsou a asi to nebude náhoda.

Nemám čas na ta videa, ale první, které jsem měl, nemělo kolize, AI, pohybující se věci, interakci mezi tím, fyziku pro to atd.

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #167 kdy: 14. 11. 2016, 22:35:52 »
jen me ale u javy (nejen, podobnych je vic) zarazi nedostatek kvalitnich veci v ni
Problém je, že nějak nevíme, co považujete za „kvalitní“. Chtěl jste desktopové aplikace, dostalo se vám příkladu IDE, která v té nejvyšší kategorii existují čtyři, z toho tři jsou napsaná v Javě a čtvrté v C#. A že zrovna na IDE jsou jejich uživatelé myslím dost nároční. Nezaráží vás, že v té kategorii není žádné IDE napsané v C++, že jsou jen o kategorii níž v rámci takových těch odlehčených IDE? A vypovídá to snad o něčem jiném, než jenom o tom, že C++ není jazyk vhodný pro tak komplexní aplikace, jakými IDE jsou?

ferrenz

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #168 kdy: 14. 11. 2016, 22:49:45 »
jirsak:

ufff, takze telegraficky
1) ad mobile world....jako celek me nezajima, ale jen jako edukovany uzivatel mam dojem ze je snaha se brime javy v jeji ciste podobe zbavit....aspon z meho pohledu, tj pohledu grafickeho programatora (viz vsechny aktivity kolem daydream pro vr, tam se cesta closer to metal nabizi....
2)ty nektere odkazy vypadaji zajimave, prispevek jsem puvodne prehledl, vesmes to ale nejsou veci o kterych by google nabidl relevantni odkazy, neda se takto posoudit kvalita. zvlast u tech military projektu, muzou to byt uzasne veci a tako to muzou byt grantove sracky. ale jo, snad teda nejake funkcni veci mame...
3) ano je mi jedno jestli veci maji sve uzivatele, protoze tema nejsou user-aware aplikace :-)
4) viz bod 2. ze sve praxe mam dojem ze java, python atd se pouziji na rychly prototyp. kdyz se ozvedci tak se to pise znovu a poradne....zkusenosti tu ale muzou byt jine....nevnucuju ty me....
5)neohanim se  benchmarky ty resi jina skupina. ptam se na celkova reseni. robustni velka reseni ALE zamerena na vykon, kde proste efektivni kod po vsech strankach udela rozdil

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #169 kdy: 14. 11. 2016, 22:53:36 »
jen me ale u javy (nejen, podobnych je vic) zarazi nedostatek kvalitnich veci v ni
Problém je, že nějak nevíme, co považujete za „kvalitní“. Chtěl jste desktopové aplikace, dostalo se vám příkladu IDE, která v té nejvyšší kategorii existují čtyři, z toho tři jsou napsaná v Javě a čtvrté v C#. A že zrovna na IDE jsou jejich uživatelé myslím dost nároční. Nezaráží vás, že v té kategorii není žádné IDE napsané v C++, že jsou jen o kategorii níž v rámci takových těch odlehčených IDE? A vypovídá to snad o něčem jiném, než jenom o tom, že C++ není jazyk vhodný pro tak komplexní aplikace, jakými IDE jsou?
Tak třeba Xcode je napsané v ObjC, což je jen preprocesor C, byť nyní zabudovaný do clangu (viz ObjC runtime). A běží o dost svižněji než Visual Studio nebo javovské bazmeky.


ferrenz

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #170 kdy: 14. 11. 2016, 23:05:13 »
javaman:
ano uklizel jsem tam, nicmene mana uklizela na opbh a ta si neni vedoma, ze by minecraft byl ocenovan za technickou realizaci. naopak, protoze je psan horkou jehlou a proto existuje spousta vice ci mene vaznych projektu jeho casti prepsat. ja ho ale uznavam, za chytre napady. jenze ty nemaji nic spolecneho s zadnym jazykem. btw minecraft ai? nepletes si to spis s ruznymi ai projekty, ktere svou funkcnost testuji v prostredi minecraftu? viz https://www.google.cz/search?q=minecraft+ai

geek

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #171 kdy: 14. 11. 2016, 23:06:59 »
http://stackoverflow.com/research/developer-survey-2016

co takto sa pozriet na 56k programatorov? :) v com codia, co je teraz trend, v ktorych odvetviach je java dominantna, v ktorych c++?

lopata

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #172 kdy: 15. 11. 2016, 02:43:55 »
Ahaaa a on je to úplně stejný MC, co? Vůbec tam nejsou rozdíly :D

Ano, rozdíly jsou tam pomětně velké, v C++ je Minecraft výrazně rychlejší ;). Jinak budoucnost Minecraftu je celkem jasná, Microsoft Java verzi zařízne a nebude dál vyvíjet. Nemá cenu zabývat se Javou, která je pomalá a má problémy s portabilitou (neběží na XBOXu, PS4, iPhonu...). C++ běží všude a rychleji než Java.

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #173 kdy: 15. 11. 2016, 07:30:50 »
ad mobile world....jako celek me nezajima
Jenže tady nediskutujeme o tom, co vás zajímá nebo nezajímá, ale o tom, jak je to v reálném světě.

mam dojem ze je snaha se brime javy v jeji ciste podobe zbavit
To je opravdu jen ničím nepodložený dojem.

ptam se na celkova reseni. robustni velka reseni ALE zamerena na vykon, kde proste efektivni kod po vsech strankach udela rozdil
Pak to hledání máte docela snadné, protože robustní velká řešení se dnes dělají prakticky jen v cloudu. Takže nemusíte hledat aplikace (které často nenajdete, protože jsou privátní), ale stačí hledat poskytovatele. Podívejte se na Google, Amazon, Microsoft Azure, podívejte se na ekosystém, který kolem toho existuje. Efektivita se v těchto případech řeší tak, aby to dobře běželo v cloudu a v druhém kole aby se používaly efektivní algoritmy. Pokud by se něco přepisovalo do jiného jazyka, bude častějším důvodem udržovatelnost kódu než výkonnost kódu na CPU. Výkon na CPU se řeší jen velmi okrajově, protože získaný výkon je velmi malý a obvykle jej mnohem levněji získáte prostě nákupem většího výkonu v cloudu. Navíc se tím podstatně zhorší udržovatelnost kódu (najednou tam máte další jazyk, musíte třeba řešit překlad pro různé platformy) a hlavně tím přicházíte o spoustu možností cloudu (třeba na Google Engine nativní kód nenasadíte).

Programování blízko hardwaru má samozřejmě pořád význam, třeba ta cloudová řešení ho potřebují pro jádro OS a pro virtualizační prostředí. Ale nejsou to ta velká řešení, je to jenom jedna komponenta, kterou ta velká řešení používají.

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #174 kdy: 15. 11. 2016, 11:34:54 »
Ale prosímtě, minecraft v Javě je z hlediska výkonu dost tragédie, C++ verze je násobně rychlejší:

Nějak nám ty super hyper hotspot runtime optimalizace moc nefungují, že?

Aniž bych se chtěl vlamovat do dobře rozjetého flamu, tak tohle nelze srovnávat, protože:

MC v roce 2010 byl úplně jiný než MC dnes. Vyvíjel se. Dnes už se ví, co je potřeba a co není a jak by to mělo být a jak by to nemělo být. Pokud někdo přijde k hotovému a jen to přepíše (do libovolného jazyka), tak to bude výkonnější, protože ví, do čeho jde a může si to navrhnout lépe. První dema MC (se ještě ani nejmenoval MC) měla s dnešním MC společného tak akorát voxelovost. Toť vše.

Ovšem hlavním hybatelem v popularitě MC byla odpočátku možnost téměř neomezené modovatelnosti. Dodnes nemá mod API a je to dobře. I bez mod api už od alpha verzí MC vznikaly skvělé mody jen díky tomu, že je možné v jaru nahradit jednu třídu jinou, na libovolné místo dát hooky a zpětná volání apod. Tedy tím mod api byl samotný jar.

Tohle nelze v C++ dosáhnout. Zdrojové kódy nejsou dostupné, dodává se pouze hotový zkompilovaný program. A zatímco mod v javě napíše každý druhý hráč, tak injektovat nějaký vlastní kód do paměťového prostoru hry nebude dělat skoro nikdo. Oficiální mod api (až ho MS vydá) příliš nepomůže, protože bude dovolovat pouze to, co povolí tvůrci.

Takže díky za MC v Javě, nebýt tohoto, tak po něm dneska ani pes neštěkne a MS nekoupí Mojang.

dustin

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #175 kdy: 15. 11. 2016, 12:31:46 »
Souhlas, děti zajímají jen různé mody, čisté MC je po nějaké době omrzí. Kvalita modů je věc jiná, ale existují a je jich mraky.

balki

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #176 kdy: 15. 11. 2016, 14:28:34 »
Souhlas, děti zajímají jen různé mody, čisté MC je po nějaké době omrzí. Kvalita modů je věc jiná, ale existují a je jich mraky.

Mody hlavne fragmentuju hracsku komunitu.

ferrenz

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #177 kdy: 15. 11. 2016, 14:30:26 »
ad mobile world....jako celek me nezajima
Jenže tady nediskutujeme o tom, co vás zajímá nebo nezajímá, ale o tom, jak je to v reálném světě.

mam dojem ze je snaha se brime javy v jeji ciste podobe zbavit
To je opravdu jen ničím nepodložený dojem.

ptam se na celkova reseni. robustni velka reseni ALE zamerena na vykon, kde proste efektivni kod po vsech strankach udela rozdil
Pak to hledání máte docela snadné, protože robustní velká řešení se dnes dělají prakticky jen v cloudu. Takže nemusíte hledat aplikace (které často nenajdete, protože jsou privátní), ale stačí hledat poskytovatele. Podívejte se na Google, Amazon, Microsoft Azure, podívejte se na ekosystém, který kolem toho existuje. Efektivita se v těchto případech řeší tak, aby to dobře běželo v cloudu a v druhém kole aby se používaly efektivní algoritmy. Pokud by se něco přepisovalo do jiného jazyka, bude častějším důvodem udržovatelnost kódu než výkonnost kódu na CPU. Výkon na CPU se řeší jen velmi okrajově, protože získaný výkon je velmi malý a obvykle jej mnohem levněji získáte prostě nákupem většího výkonu v cloudu. Navíc se tím podstatně zhorší udržovatelnost kódu (najednou tam máte další jazyk, musíte třeba řešit překlad pro různé platformy) a hlavně tím přicházíte o spoustu možností cloudu (třeba na Google Engine nativní kód nenasadíte).

Programování blízko hardwaru má samozřejmě pořád význam, třeba ta cloudová řešení ho potřebují pro jádro OS a pro virtualizační prostředí. Ale nejsou to ta velká řešení, je to jenom jedna komponenta, kterou ta velká řešení používají.

1) ze me nezajima,to znamena ze tam nehodlam argumentovat. podle me mobile app hype uz mame za sebou, sousta firem zjistila ze tam jen par vyvolenych dokaze prodavat za velke penize, zbytek zivori na reklamach. ale budiz
2) daydream
3) it is not cloud, it is only somebody else's computer. ale jo,z javy se da vzdy zdtrhnout k webu a cloudu, je to pohodlene utociste ;-)



Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #178 kdy: 15. 11. 2016, 14:36:50 »
Souhlas, děti zajímají jen různé mody, čisté MC je po nějaké době omrzí. Kvalita modů je věc jiná, ale existují a je jich mraky.

Mody hlavne fragmentuju hracsku komunitu.
To s tím rozšířením souvisí. Čistý MC mi přijde ztráta času, když už hraji, tak blbnu s ComputerCraftem a redstonem (= rozuměj stavění autonomních vlakových tratí).

JS

Re:Co zpomaluje Javu? A co překlad do nativního kódu?
« Odpověď #179 kdy: 15. 11. 2016, 14:57:24 »
Tohle nelze v C++ dosáhnout. Zdrojové kódy nejsou dostupné, dodává se pouze hotový zkompilovaný program.

No ja ti nevim, Factorio je v C++ a modding scena je celkem aktivni. Ditto pro Skyrim. Ano, pocitali s tim (maji oficialni API), ale rozhodne to neni tak, ze kdyby Mojang nechtel, tak to nejde.