Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Niki 28. 03. 2014, 15:06:53

Název: Začátky v Javě
Přispěvatel: Niki 28. 03. 2014, 15:06:53
Ahoj :-),
začala jsem se učit Javu, ale slyšela jsem(místní blog), že se již nepoužívá. Je to pravda????

Děkuji  ;)
Název: Re:Začátky v Javě
Přispěvatel: RAII 28. 03. 2014, 15:12:54
Oh, bože ... -> http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. Samozřejmě že se používá, je to nejpoužívanější jazyk kterej umí každej manták.
Název: Re:Začátky v Javě
Přispěvatel: Kolemjdoucí 28. 03. 2014, 15:15:15
Není to pravda, naopak se s dobrou znalostí Javy dnes dá v praxi velmi slušně živit, přesto že různí teoretici vykřikují jak je Java hrozná.
Název: Re:Začátky v Javě
Přispěvatel: Niki 28. 03. 2014, 15:16:27
Já právě četla tohle http://babel.blog.root.cz/2014/03/19/proc-je-java-za-zenitem/ a tak se raději ptám. Nechci se učit zbytečně! :-)
Název: Re:Začátky v Javě
Přispěvatel: RAII 28. 03. 2014, 15:21:52
Heh, teoretici...nejen teoretici vykřikují že je špatná. Nízký výkon a filozofie: Při použití tohoto nástroje by mohl "mlátič do klávesnice" udělat chybu, tak ho tam radši nedáme, stahují Javu dolů. Na druhou stranu, pro mnoho programátorů je Java jediná možnost...
Název: Re:Začátky v Javě
Přispěvatel: DK 28. 03. 2014, 15:22:34
Precti si komentare pod tim clankem... jak je zboj chytry, tak tohle je vylozene blbost

RAII: doloz to nejakym faktem a ne tim ze "java je pomala"... uz jsi jako Lael
Název: Re:Začátky v Javě
Přispěvatel: txt 28. 03. 2014, 15:24:57
Nabídek je dost (viz např. jobs.cz). Pokud má být programování zdrojem obživy, tak to je dobrá volba. Pokud je účel jiný, může být vhodný jiný jazyk.
Název: Re:Začátky v Javě
Přispěvatel: RAII 28. 03. 2014, 15:28:36
Hej, to si beru osobně, jako Lael opravdu nejsem ... já, narozdíl od něj, mám pravdu. Java sama je důkaz mého tvrzení.
Název: Re:Začátky v Javě
Přispěvatel: Lol Phirae 28. 03. 2014, 15:38:05
(http://www.developermemes.com/wp-content/uploads/2013/03/java-problem-factory.jpg)
Název: Re:Začátky v Javě
Přispěvatel: ferren 28. 03. 2014, 15:42:20
onehda jsem se tady ve foru ptal na nejakou vlajkovou lod javy,ukazkovou aplikaci ze to v jave jde a dostal jsem jsem velmi rozpacite odpovedi:-)
v podstate nejvetsi projekt s rozumnou repotaci byl nejaky download manager (coz je vec kterou bych ja vubec neradil mezi aplikace,ale mezi utilitky)
toz tak nejak na tom asi java s pouzitelnosti bude. ale...rozsirena a chtena je,to zase bych ji nekrivdil. je to byznys malych veci....
Název: Re:Začátky v Javě
Přispěvatel: Pupi1 28. 03. 2014, 15:45:02
Oh, bože ... -> http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. Samozřejmě že se používá, je to nejpoužívanější jazyk kterej umí každej manták.

ja javu neovladam, venujem sa c#/.net a za mantaka sa nepovazujem :)
Název: Re:Začátky v Javě
Přispěvatel: DK 28. 03. 2014, 15:49:54
ferren: ano, pokud se jedna o desktopove aplikace, tech moc "inovativnich" nebude... pokud chces neco, co ti bude reflektovat schopnosti javy, muzes se podivat na aplikacni servery, nebo treba Solr... spis mej konkretnejsi dotaz
Název: Re:Začátky v Javě
Přispěvatel: podlesh 28. 03. 2014, 15:53:34
Pokud to má být flamebait, tak je dobře mířený.

Pokud ne, tak by doporučoval nezabývat se výběrem nějaké ho programovacího jazyka, ale nejprve se pořádně zamyslet nad tím co vlastně chceš a proč, a jak má vypadat otázka. Skutečně užitečný (a alespoň průměrný) programátor totiž především být schopen pokládat správné otázky aby odpovídaly problému a také rozpoznat co jsou na ně smysluplné odpovědi. Tedy především co se ve filosofii nazývá logika.

Typickým případem jsou výroky "Java je pomalá" nebo obecněji "Java není dobrá" jako odpověď na otázku "mám se učit Javu" nebo obecněji "používá se Java". Co je na tom špatně doufám není potřeba rozebírat...

No a k samotné otázce: pokud se chceš učit nějaký programovací jazyk, je důležité říct proč a k čemu. Z obou výroků je evidentní, že důvodem není získání rozhledu a znalostí v oblasti CS nebo IT (neboť člověk který má zájem o znalosti nemá koncept "učit se zbytečně"). Takže cíl je nějaký jiný. Můžeme tipovat zda získání zaměstnání nebo potřeba něco si naprogramovat doma... kdo ví?
Název: Re:Začátky v Javě
Přispěvatel: Natix 28. 03. 2014, 16:22:14
Hej, to si beru osobně, jako Lael opravdu nejsem ... já, narozdíl od něj, mám pravdu. Java sama je důkaz mého tvrzení.

"Mám pravdu, protože to tak je." Dobrý argumenty, kámo...
Název: Re:Začátky v Javě
Přispěvatel: zboj 28. 03. 2014, 16:41:06
Ahoj :-),
začala jsem se učit Javu, ale slyšela jsem(místní blog), že se již nepoužívá. Je to pravda????

Děkuji  ;)

Fráze "být za zenitem" znamená, že má nejlepší za sebou, ne, že se nepoužívá ani že je nějak zvlášť špatná :) Pořád patří k populárním jazykům a podle mého skromného názoru je dobré znát jazyků co nejvíc. Java, C#, C++, ObjC (mimo mainstream ještě Lisp, Prolog, Smalltalk) je rozhodně dobré znát aspoň zběžně kvůli nadhledu.
Název: Re:Začátky v Javě
Přispěvatel: Lol Phirae 28. 03. 2014, 16:44:37
Fráze "být za zenitem" znamená, že má nejlepší za sebou

No, některé věci jsou za zenitem už v době svého vzniku.  ;D
Název: Re:Začátky v Javě
Přispěvatel: FrostyX 28. 03. 2014, 18:18:27
Citace
onehda jsem se tady ve foru ptal na nejakou vlajkovou lod javy,ukazkovou aplikaci ze to v jave jde a dostal jsem jsem velmi rozpacite odpovedi:-)

Napadá mě například netbeans.

Název: Re:Začátky v Javě
Přispěvatel: phejl 28. 03. 2014, 19:23:43
Tak odpoved na puvodni otazku je: Java se stale pouziva a docela hodne. Ale udelejte si vlastni nazor - TIOBE, Google Trends, jobs.cz apod. Rozhodne bych se neorientoval podle jednoho blogisku na root s titulkem jak podle sablony "Technologie XY je za zenitem", resp. "Proc opravdovi programatori nepouzivaji XY" :)
Název: Re:Začátky v Javě
Přispěvatel: perceptron 28. 03. 2014, 19:46:55
Ahoj :-),
začala jsem se učit Javu, ale slyšela jsem(místní blog), že se již nepoužívá. Je to pravda????

Děkuji  ;)
java sa samozrejme pouziva, je to dlhodobo v top 3 najpouzivanejsich, jazykov. na desktope mozno nie (tam mozno vidiet akurat vyvojove prostredia v nej napisane), ale na serveri urcite, a to nehovorim o androide, kde je primarny jazyk.

minuly tyzden dokonca vysla vyznamna verzia Java 8, takze pouzivat sa rozhodne bude.
Název: Re:Začátky v Javě
Přispěvatel: eMko 28. 03. 2014, 22:33:29
Ahoj :-),
začala jsem se učit Javu, ale slyšela jsem(místní blog), že se již nepoužívá. Je to pravda????

Děkuji  ;)

OMFG!

Internet je otevřené médium. Každý si tam může napsat, co chce - klidně nějakou takovouto kravinu. U blogů je třeba dát pozor na to, co čteš.

Jediné co, tak že Java není "módní" jazyk - diskuse a blogy se mu nevěnují tolik, co módním jazykům. Jinak je to jeden z nejpoužívanějších jazyků a prostředí. Blogy a diskuse na netu velmi zkreslují.

Sice tady zaznělo, že se nepoužívá na desktopu ... což je také mírně zkreslené (např. jeden z nejpoužívanějších programů na stahování torrentů je Azureus/Vuze, který je napsaný v Javě). Na desktopu Javě velmi konkuruje C# (Windows) a Objective-C na Macu (kde je obrovský tlak na vzhled aplikace a začleněnní do desktopu, takže multiplatformní aplikace se hůře prosazují), na linuxu pak C a C++. Nicméně stačí vlézt na stránky NetBeans Platform (https://netbeans.org/features/platform/showcase.html) kde je seznam desktopových aplikací postavených na této platformě. Je jich samozřejmě mnohem více, jenom o těhto prostě tvůrci NetBeans vědí. Pak existuje množství jiných postavených na jiných technologiích, také napsaných v Javě. Ale většinou se nejedná o aplikace pro "spotřební" trh, z toho zase množství internetových diskutérů a bloggerů usoudí, že se nepoužívá.
Název: Re:Začátky v Javě
Přispěvatel: Pupi1 28. 03. 2014, 22:47:14
Citace
onehda jsem se tady ve foru ptal na nejakou vlajkovou lod javy,ukazkovou aplikaci ze to v jave jde a dostal jsem jsem velmi rozpacite odpovedi:-)

Napadá mě například netbeans.

no netbeans sice je desktop aplikacia, ale dost hrozna. Robil som v nom projekt v c++ a dost to bolo zasekane a zabugovane.
Název: Re:Začátky v Javě
Přispěvatel: ptaah 28. 03. 2014, 22:54:46
Pred 10 rokmi?
Název: Re:Začátky v Javě
Přispěvatel: andy 28. 03. 2014, 23:09:29
Java sa pouziva, ale na backendoch. Za zenitom urcite nie je, lebo .net bezi iba na windows a node.js je pre enterprise prilis velke riziko, aj ked si na tom fici paypal. Uz len portovat vsetky tie db ovladace, adaptery a ja neviem co stoji zbytocne velke prachy. Taky twitter presiel na javu kvoli vykonu. Dnes je moderne asynchronne programovanie a tam ma java napr. oproti .netu medzery, ale inak zvlada vsetko co treba. Pravdupovediac keby bezal .net pod linuxom (mono nema vykon), tak asi prejdem nan.
Název: Re:Začátky v Javě
Přispěvatel: Sten 29. 03. 2014, 00:31:07
Java sa pouziva, ale na backendoch. Za zenitom urcite nie je, lebo .net bezi iba na windows a node.js je pre enterprise prilis velke riziko, aj ked si na tom fici paypal. Uz len portovat vsetky tie db ovladace, adaptery a ja neviem co stoji zbytocne velke prachy. Taky twitter presiel na javu kvoli vykonu. Dnes je moderne asynchronne programovanie a tam ma java napr. oproti .netu medzery, ale inak zvlada vsetko co treba. Pravdupovediac keby bezal .net pod linuxom (mono nema vykon), tak asi prejdem nan.

Hmm, Python? Ruby? Java je ale fajn, bez problémů stihnete uvařit i vypít kafe, než se spustí Tomcat :-)
Název: Re:Začátky v Javě
Přispěvatel: jljk 29. 03. 2014, 01:01:42
Myslíš ty skriptovací bastly, kde se mění jazyk podle nálady komunity? To i kdybych stihnul uvařit jídlo, tak je nebudu používat.
Název: Re:Začátky v Javě
Přispěvatel: zboj 29. 03. 2014, 07:09:43
Java sa pouziva, ale na backendoch. Za zenitom urcite nie je, lebo .net bezi iba na windows a node.js je pre enterprise prilis velke riziko, aj ked si na tom fici paypal. Uz len portovat vsetky tie db ovladace, adaptery a ja neviem co stoji zbytocne velke prachy. Taky twitter presiel na javu kvoli vykonu. Dnes je moderne asynchronne programovanie a tam ma java napr. oproti .netu medzery, ale inak zvlada vsetko co treba. Pravdupovediac keby bezal .net pod linuxom (mono nema vykon), tak asi prejdem nan.

Má praktická zkušenost je, že Mono je serveru s ARM 4x rychlejší než Java a v podstatě se rychlostí blíží nativní aplikaci.
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 29. 03. 2014, 09:07:26
Hmm, Python? Ruby? Java je ale fajn, bez problémů stihnete uvařit i vypít kafe, než se spustí Tomcat :-)
Tomcat ale není Java. Také existují i jiné servlet kontejnery. Jak dlouho startuje třeba takový IIS?

Má praktická zkušenost je, že Mono je serveru s ARM 4x rychlejší než Java a v podstatě se rychlostí blíží nativní aplikaci.
Z kolika srovnatelných aplikací tato zkušenost vychází?
Název: Re:Začátky v Javě
Přispěvatel: Pupi1 29. 03. 2014, 09:19:55
Pred 10 rokmi?

3 roky dozadu. Myslim, ze vtedy to bol NetBeans 7, co teda take stare nie je ;) . Pracoval som s nim pod linuxom a vazne to sekalo a bolo zabugovane. Ten intellisense tam fungoval ako sa mu zachcelo.
Název: Re:Začátky v Javě
Přispěvatel: DK 29. 03. 2014, 09:37:24
Sten: na virtualce startuje tomcat par sekund... kdyz do toho vezmu deploy velke webove aplikace, tak max 30 sekund... tak chcu videt, jak za 30 sekund stihnes uvarit a vypit kafe
Název: Re:Začátky v Javě
Přispěvatel: perceptron 29. 03. 2014, 10:37:48
za tri roky vyslo pat novych verzii netbeansu + popracovalo sa aj na c/c++ integracii

samotny tomcat startne expresne rychlo, dlho trva redeployment celej aplikacie (30 sekund typicka doba pre velku aplikaciu). rozumni ludia pouzivaju class reloading zabudovany v jvm. ak vas limituju jeho obmedzenia, kupte si jrebel, tam mate deploymenty lusknutim prstu.

nehovoriac o tom, ze na mensie projekty pre lokalny vyvoj staci jetty a samozrejme posledne tomcaty (7,8) sa urychlili tiez
Název: Re:Začátky v Javě
Přispěvatel: YF 29. 03. 2014, 12:37:03
... prosimte hlavne se vykasli na tudle bandu dementu na rootu vcetne zamindrakovanych zneuznalych pseudogeniu a nech se vest svoji hlavou - v cemkoliv se da udelat neco zajimavyho a prijd si na to co ti vyhovuje. A pokud ti to nevyhovuje tak si napis vlastni jazyk nebo platformu - tady v ty zasrany zemi mame ve zvyku furt akorat vykrikovat nesmysly a ucit se opakovat a papouskovat co sme si kde precetli aniz bychom dosahovali ke kontrnikum tem co to skutecne delaj a sami potom delat jak sme chytri az to skoro vypada ze sme to sami vymysleli - ale proste vymyslet od premyslet popripade o tom honosne mluvit je proste kurevskej rozdil.

bud dobra
YF
Název: Re:Začátky v Javě
Přispěvatel: perceptron 29. 03. 2014, 13:02:59
Citace
A pokud ti to nevyhovuje tak si napis vlastni jazyk
skvely napad, nieco podobne robili aj ostatni:

http://ceylon-lang.org/

http://kotlin.jetbrains.org/
Název: Re:Začátky v Javě
Přispěvatel: RAII 29. 03. 2014, 13:57:29
Citace
Ahoj :-),
začala jsem se učit Javu, ale slyšela jsem(místní blog), že se již nepoužívá. Je to pravda?

Děkuji 
Takto položená otázka vylučuje touhu nechat se vést vlastní hlavou ...

Začít s Javou je podle mne chyba, pokud bude někdy chtít přejít na jiný (-> efektivnější) jazyk (ať už z důvodu zájmu a nebo práce), bude to mít zbytečně těžké. Průměrný Javista je zlenivělí (takto to stačí říci abych nikoho neurazil) a má tendenci nezvládnout management paměti bez GC ...
Název: Re:Začátky v Javě
Přispěvatel: flv 29. 03. 2014, 14:23:52
Management pameti, really ? Jste padli na hlavu ?
Proc bych to mel delat ? Ja mam kodovat bussines a aplikacni logiku, ne managovat pamet.

Tyhle kecy lidi kteri dokazou onanovat nad tim ze jedine C++ nebo C, protoze "management pameti" me vazne bavi.

Pokud se nejedna o hry, desktop, nebo ultra high-frequency aplikace tak je java dobra volba.
Kecy o tom ze to svadi lidi k tomu ze neumi "managament pameti" ... vy jste snad ze skolky ne ?

Java bezi na backendech, enterprise aplikace, btw. vysla ted java 8, zatim to na rootu moc velkou pozornost nemelo (melo by mit).

Jinak co se poptavky na trhu a platu tyce, to si snad udela kazdy obrazek sam.
Název: Re:Začátky v Javě
Přispěvatel: znojm 29. 03. 2014, 14:29:12
a má tendenci nezvládnout management paměti bez GC ...

To je divný, co? :D Třeba ho totiž něco takového vůbec nezajímá. Mělo by?
Název: Re:Začátky v Javě
Přispěvatel: txt 29. 03. 2014, 14:29:49
Citace
Ahoj :-),
začala jsem se učit Javu, ale slyšela jsem(místní blog), že se již nepoužívá. Je to pravda?

Děkuji 
Takto položená otázka vylučuje touhu nechat se vést vlastní hlavou ...

Začít s Javou je podle mne chyba, pokud bude někdy chtít přejít na jiný (-> efektivnější) jazyk (ať už z důvodu zájmu a nebo práce), bude to mít zbytečně těžké. Průměrný Javista je zlenivělí (takto to stačí říci abych nikoho neurazil) a má tendenci nezvládnout management paměti bez GC ...
Přesně, ti kdož si alokují/dealokují paměť ručně jsou 1.25x větší drsňáci a otrocké psaní řádků kódu navíc vydávají za ctnost.

Prostě každý jazyk je vhodný k něčemu, nejde jednoznačně zgeneralizovat, který je nejlepší. Podle účelu použití můžeme seřadit jazyky od lepších po horší (průměrný plat programátora, rychlost vývoje v daném jazyku, rychlost na určité platformě, syntaxe, množství knihoven, IDE,rozsah projektů, ...) a i to bude závislé, na tom, jestli danou technologii používáte správně. Kapitolou pro sebe je obecné OOP a znalost základních algoritmů a datových struktur.
Název: Re:Začátky v Javě
Přispěvatel: Lol Phirae 29. 03. 2014, 14:34:08
btw. vysla ted java 8, zatim to na rootu moc velkou pozornost nemelo (melo by mit).

Z toho jsem úplně zvlhnul. Nic s tím nefunguje. Huráááá!
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 29. 03. 2014, 15:25:50
Začít s Javou je podle mne chyba, pokud bude někdy chtít přejít na jiný (-> efektivnější) jazyk (ať už z důvodu zájmu a nebo práce), bude to mít zbytečně těžké. Průměrný Javista je zlenivělí (takto to stačí říci abych nikoho neurazil) a má tendenci nezvládnout management paměti bez GC ...
Kdyby jenom management paměti bez GC. Dokonce ani neumí používat pro ukládání dat páskovou mechaniku, a dokonce ani neumí pracovat s děrovačkou štítků!

Efektivnost jazyka jako jednorozměrná univerzální veličina je nesmysl. Věděl by to i pan RAII, který o tom diskutoval ve vedlejším vlákně (http://forum.root.cz/index.php?topic=8589.msg88863#msg88863), jenže se mu nějakým nedopatřením nedaří z té diskuse přečíst stránky 5 až 6.

Jinak pro úplné začátky je to jedno, to se člověk naučí, jak vypadá program v nějakém imperativním jazyce, jak se používají proměnné, podprogramy, jak se používá větvení a cykly. To se může každý naučit v Javě, C, C++, Pascalu, Pythonu, PHP, JavaScriptu, Perlu, Ruby nebo v čemkoli jiném, a rozhodně si žádnou z těch voleb neuzavírá budoucí možnosti s jiným jazykem. Akorát se pak naučí, jak se v tom kterém jazyce zrovna píše daný příkaz. Pak je také dobré naučit se, jak se pracuje s objekty, tam bych akorát pro začátek vynechal JavaScript, protože se od těch ostatních vyjmenovaných jazyků dost liší. No a teprve pak nastává ta fáze, kde začne záležet na výběru jazyka, ale to by si měl člověk vybrat podle toho, že těch jazyků pár aspoň trochu zná a má představu, jaké jsou jejich silné a slabé stránky. A pak si vybrat podle toho, co chce dělat. Pokud chci programovat mikrokontroléry, nebudu volit PHP nebo JavaScript. Pokud chci programovat webové aplikace, zvolím Javu, PHP, Python, Ruby nebo JavaScript. Pokud enterprise aplikace, vyhraje asi Java. Pokud chci přispívat do linuxového jádra, nemám jinou volbu, než C. Pokud chci programovat systémové skripty, je dobré se podívat na Python a Perl. A ve všech případech je pak programovací jazyk jenom střípek mozaiky, důležitá je celá infrastruktura kolem, knihovny, nástroje, standardy. Pokud někdo programuje bankovní systém a někdo jiný hru pro Android, sice oba píší v Javě, ale ta syntaxe jazyka je skoro to jediné, co mají oba dva společné, jinak jsou to dva hodně odlišné světy.
No a pak vedle imperativního programování existují také funkcionální jazyky nebo deklarativní programování, v různých jazycích se to různě mísí... Takže na začátku si rozhodně člověk nevybírá jeden programovací jazyk na celý život.
Název: Re:Začátky v Javě
Přispěvatel: fail 29. 03. 2014, 16:01:05
Ahoj :-),
začala jsem se učit Javu, ale slyšela jsem(místní blog), že se již nepoužívá. Je to pravda????

Děkuji  ;)
java sa samozrejme pouziva, je to dlhodobo v top 3 najpouzivanejsich, jazykov. na desktope mozno nie (tam mozno vidiet akurat vyvojove prostredia v nej napisane), ale na serveri urcite, a to nehovorim o androide, kde je primarny jazyk.

minuly tyzden dokonca vysla vyznamna verzia Java 8, takze pouzivat sa rozhodne bude.

na servrovem frontendu je pozuivana. kdo ji nasadi na serverovy backend riskuje, ze ho jednoho dne zabije vlastni systemovy spravce.
Název: Re:Začátky v Javě
Přispěvatel: georgy 29. 03. 2014, 17:29:17
za tri roky vyslo pat novych verzii netbeansu + popracovalo sa aj na c/c++ integracii

samotny tomcat startne expresne rychlo, dlho trva redeployment celej aplikacie (30 sekund typicka doba pre velku aplikaciu). rozumni ludia pouzivaju class reloading zabudovany v jvm. ak vas limituju jeho obmedzenia, kupte si jrebel, tam mate deploymenty lusknutim prstu.

nehovoriac o tom, ze na mensie projekty pre lokalny vyvoj staci jetty a samozrejme posledne tomcaty (7,8) sa urychlili tiez

v C++ uz nerobim, ale dakujem. Keby chcem robit v C++, tak zvolim radsej Visual Studio 2013, ktore je urcite na prepracovanejsej urovni a myslim, ze nema ani konkurenciu :) Je to mozno "parna mlaticka", ale je NAJ.
Název: Re:Začátky v Javě
Přispěvatel: RAII 29. 03. 2014, 17:36:29
Je to fakt sranda, stačí říct že Java není úžasná, že má i chyby a na člověka se vrhne hejno zažraných Javistů jež chrání svou modlu, protože kdyby jí nebylo, neměli by práci.

a má tendenci nezvládnout management paměti bez GC ...
To je divný, co? :D Třeba ho totiž něco takového vůbec nezajímá. Mělo by?

Mělo by, programy bez GC jsou zhruba o 100% rychlejší než ty s GC. To, že bez GC není programátor schopen pracovat ukazuje na jeho neschopnost, nikoli to že je moderní a de s dobou.
Název: Re:Začátky v Javě
Přispěvatel: DK 29. 03. 2014, 18:11:07
Je to fakt sranda, stačí říct že Java není úžasná, že má i chyby a na člověka se vrhne hejno zažraných Javistů jež chrání svou modlu, protože kdyby jí nebylo, neměli by práci.

a má tendenci nezvládnout management paměti bez GC ...
To je divný, co? :D Třeba ho totiž něco takového vůbec nezajímá. Mělo by?

Mělo by, programy bez GC jsou zhruba o 100% rychlejší než ty s GC. To, že bez GC není programátor schopen pracovat ukazuje na jeho neschopnost, nikoli to že je moderní a de s dobou.

"Java neni uzasna, ma i chyby" == "Java je pomala"?  ;D
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 29. 03. 2014, 18:22:37
Mělo by, programy bez GC jsou zhruba o 100% rychlejší než ty s GC. To, že bez GC není programátor schopen pracovat ukazuje na jeho neschopnost, nikoli to že je moderní a de s dobou.
A taky jsou programy bez GC zhruba o 200 % oranžovější. Když jste takový odborník a vyjadřujete to rovnou v procentech, jak jsou na tomdalší způsoby správy paměti - o kolik procent jsou programy bez nich rychlejší?

Je to fakt sranda, stačí říct že Java není úžasná, že má i chyby a na člověka se vrhne hejno zažraných Javistů jež chrání svou modlu, protože kdyby jí nebylo, neměli by práci.
To špatně chápete. Problém není v tom, že byste říkal, že Java není úžasná. Problém je v tom, že plácáte nesmysly a ani se nepokoušíte předstírat, že byste je chtěl něčím doložit.
Název: Re:Začátky v Javě
Přispěvatel: javaforever 29. 03. 2014, 18:40:11
Je to fakt sranda, stačí říct že Java není úžasná, že má i chyby a na člověka se vrhne hejno zažraných Javistů jež chrání svou modlu, protože kdyby jí nebylo, neměli by práci.

Je docela smutný, jestli programuješ, protože logika tvých programů bude asi jako ta psaná tady. Programátor nepotřebuje nic chránit, protože programuje a není podstatné v čem. Když nebude Java, bude něco jiného. Proč ale nepoužívat to nejlepší, když můžeš.
Název: Re:Začátky v Javě
Přispěvatel: RAII 29. 03. 2014, 20:07:11
Miluju když se mé tvrzení splní, už sou tady 3.
Název: Re:Začátky v Javě
Přispěvatel: andy 29. 03. 2014, 20:47:50
100%? Pochybujem. Ano ja robim v jave a preto viem, ze ma aj svoje muchy. Ale kym sa mi nieco vykompiluje v c++, tak v jave mam uz aj druhykrat deploynute (nehovorim o hello world projektoch..). Povodne sa hovorilo o tom, ze ci je java za zenitom. No podla mna urcite menej ako c++. Keby som chcel urobit nejaku novu desktopovu aplikaciu, tak pouvazujem nad .netom, monom a az potom o c++.
Název: Re:Začátky v Javě
Přispěvatel: Quake 29. 03. 2014, 21:03:51
Já jsem za posledních 25 let prošel od 8-bitů až po současnost všemi assemblery pro všechny možné procesory, FigForthem, pak C, pak Pascalem, pak C++, pak Delphi s ObjectPascalem, PHP, JavaScriptem, HTML/CSS. Jediné, co jsem se učil a nebavilo mě to a řekl jsem si, že to prostě nemá cenu, protože se mi to nelíbí, byla Java. Byla zadarmo, ale radši jsem si koupil C++ nebo Delphi za peníze. Všechno je třída, pořád píšu, jak sekretářka strašně dlouhé názvy proměnných oddělených tečkou. Nějaký opravdu high vizuální návrh taky nikde. Hlavně, že máme v Javě GC, pro blbce, co neumí odalokovat paměť. Za břicho se popadám, když mi na seminářích líčí, jak novou verzi kompilují v noci, pak ji testují a pak posílají zákazníkům. Projekt v Delphi o 1.000.000 řádků kompiluji řádově v sekundách. Skončila podpora C#, v budoucnosti skončí i Java a všechny interprety kromě HTML5, protože budou žrát u zařízení baterku víc než čistý strojový kód. Mě se třeba líbí NetBeans, ale pokud píšete a ta písmena se vám tak nějak na obrazovce objevují se zpožděním, je to takové trochu líné a pak si vyberete libovolné IDE napsané v C++, tak vidíte ten rozdíl v interakci, prostě člověk, který dělá v IDE napsané v Javě a v prostředí napsaném v kompilátoru, vidí ten rozdíl. Pokud je někdo student a nemá peníze, tak ať programuje v Javě. Pokud někdo peníze má a živí ho to, tak ať si koupí profesionální prostředí RAD za cca 100.000 Kč. Rozdíl je velký, nicméně je dobře, aby se každý snažil s tím co má, každý podle svých možností.
Název: Re:Začátky v Javě
Přispěvatel: jjjjjjjj 29. 03. 2014, 21:24:08
Asi už jsi toho zažil tolik, že ani nedokážeš ocenit pravé kvality jazyka. Proč ne, příští rok můžeš zkusit pět dalších supercool jazyků. Důležité je, aby se to rychle kompilovalo, o to přece jde!
Název: Re:Začátky v Javě
Přispěvatel: RAII 29. 03. 2014, 21:30:18
Nejdůležitější je rychlost běhu programu, a ta je u Javy prostě mizerná no ... smiřte se s tím
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 29. 03. 2014, 21:34:31
Mě se třeba líbí NetBeans, ale pokud píšete a ta písmena se vám tak nějak na obrazovce objevují se zpožděním, je to takové trochu líné a pak si vyberete libovolné IDE napsané v C++, tak vidíte ten rozdíl v interakci
Která jsou ta IDE napsaná v C++, která umí aspoň to samé, co NetBeans?

Nejdůležitější je rychlost běhu programu, a ta je u Javy prostě mizerná no ... smiřte se s tím
To první je nesmysl. To že neumíte programovat a vaše programy jsou pomalé už víme, nemusíte to opakovat pořád dokola a snažit se z toho dělat všeobecné závěry.
Název: Re:Začátky v Javě
Přispěvatel: RAII 29. 03. 2014, 21:51:14
Citace
To první je nesmysl. To že neumíte programovat a vaše programy jsou pomalé už víme, nemusíte to opakovat pořád dokola a snažit se z toho dělat všeobecné závěry.
Dokaž to.
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 29. 03. 2014, 21:57:42
Dokaž to.
No vida, takže jste zaznamenal, že bývá zvykem tvrzení dokazovat. Tak až po vás, těch nedokázaných tvrzení se vám nakupila pěkná spousta.
Název: Re:Začátky v Javě
Přispěvatel: RAII 29. 03. 2014, 22:26:26
Java je poražena v jakémkoli rychlostním testu. Zde http://developers-beta.slashdot.org/story/11/06/15/0242237/c-the-clear-winner-in-googles-language-performance-tests je důkaz. Teď ty.
Název: Re:Začátky v Javě
Přispěvatel: jjjjjjjj 29. 03. 2014, 22:40:42
Nejdůležitější je rychlost běhu programu, a ta je u Javy prostě mizerná no ... smiřte se s tím

Co? Odkdy? To jsi trochu zaspal dobu.
Název: Re:Začátky v Javě
Přispěvatel: YF 29. 03. 2014, 22:42:32
Já jsem za posledních 25 let prošel od 8-bitů až po současnost všemi assemblery pro všechny možné procesory, FigForthem, pak C, pak Pascalem, pak C++, pak Delphi s ObjectPascalem, PHP, JavaScriptem, HTML/CSS. Jediné, co jsem se učil a nebavilo mě to a řekl jsem si, že to prostě nemá cenu, protože se mi to nelíbí, byla Java. Byla zadarmo, ale radši jsem si koupil C++ nebo Delphi za peníze. Všechno je třída, pořád píšu, jak sekretářka strašně dlouhé názvy proměnných oddělených tečkou. Nějaký opravdu high vizuální návrh taky nikde. Hlavně, že máme v Javě GC, pro blbce, co neumí odalokovat paměť. Za břicho se popadám, když mi na seminářích líčí, jak novou verzi kompilují v noci, pak ji testují a pak posílají zákazníkům. Projekt v Delphi o 1.000.000 řádků kompiluji řádově v sekundách. Skončila podpora C#, v budoucnosti skončí i Java a všechny interprety kromě HTML5, protože budou žrát u zařízení baterku víc než čistý strojový kód. Mě se třeba líbí NetBeans, ale pokud píšete a ta písmena se vám tak nějak na obrazovce objevují se zpožděním, je to takové trochu líné a pak si vyberete libovolné IDE napsané v C++, tak vidíte ten rozdíl v interakci, prostě člověk, který dělá v IDE napsané v Javě a v prostředí napsaném v kompilátoru, vidí ten rozdíl. Pokud je někdo student a nemá peníze, tak ať programuje v Javě. Pokud někdo peníze má a živí ho to, tak ať si koupí profesionální prostředí RAD za cca 100.000 Kč. Rozdíl je velký, nicméně je dobře, aby se každý snažil s tím co má, každý podle svých možností.

zde je proste nutne konstatovat ze si toho evidentne zazil AZ moc a bylo by dobre - skutecne dobre - si na delsi dobu radne odpocnout ... :)
Název: Re:Začátky v Javě
Přispěvatel: Jirsákova babička 29. 03. 2014, 22:52:15
H o v n o
      p r d e l
             s r a č k a
                     t o  j e  J a v y  z n a č k a ! ! !
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 29. 03. 2014, 22:59:31
Java je poražena v jakémkoli rychlostním testu. Zde http://developers-beta.slashdot.org/story/11/06/15/0242237/c-the-clear-winner-in-googles-language-performance-tests je důkaz. Teď ty.
Na té odkazované stránce není nic o tom, že je Java poražena v jakémkoli rychlostním testu. Jinak kdybyste si v té sousední diskusi přečetl ty dvě stránky, kterým se pořád nějak vyhýbáte, dozvěděl byste se příklad toho, na čem rychlost programu opravdu záleží.
Název: Re:Začátky v Javě
Přispěvatel: andy 29. 03. 2014, 23:43:51
Problem je, ze z celeho programu mozno 1% musi byt skutocne vykonne a kto by sa s tym j*bal? A ked ide o komercny projekt, to proste nikto nezaplati, lebo konkurencia si povie ze treba iba o 1G ram viac, a 8G stoji 60eur? a urobia to za kratsiu dobu a nizsiu cenu. A vyber platformy je hotovy.

Quake ja som nechcel nejako urazit, ale uchadza ti vlak..
Název: Re:Začátky v Javě
Přispěvatel: Ziktofel 29. 03. 2014, 23:45:28
IMHO hlavni vyhoda javy je v tom, ze se snadno ladi a hromadu chujovin uz nepusti prekladac. Je nejakej jinej jazyk, kde 90% chyb uz najde prekladac?
Název: Re:Začátky v Javě
Přispěvatel: andy 30. 03. 2014, 00:54:46
Ono ne ze prekladac, ale IDE ti odhaluje mnohe chyby uz pocas pisania a ako je na tom refactoring v c++? Da sa robit v c++ nieco ako anotacie? (to by muselo mat c++ reflection, ze... ako ja si na nich nejako neujizdim, ale vela veci to zjednodusilo)
Název: Re:Začátky v Javě
Přispěvatel: Ivorne 30. 03. 2014, 01:38:38
Nechápu k čemu je zkušenému programátorovi garbage collector. V každé serióznější aplikaci se stejně musí uvolňovat paměť (tedy odstraňovat reference). Přitom s GC nemůžete používat RAII, což mi přijde jako podstatná součást objektově orientovaného programování.

Měl bych další dotaz: neměl by být robustní, kvalitní a moderní jazyk kompilovaný do strojového kódu?  Nějak nevidím výhody toho, aby byl jazyk podobného typu jako Java interpretovaný. Dnes už to má jen samé nevýhody.
Název: Re:Začátky v Javě
Přispěvatel: zboj 30. 03. 2014, 04:14:40
Nechápu k čemu je zkušenému programátorovi garbage collector. V každé serióznější aplikaci se stejně musí uvolňovat paměť (tedy odstraňovat reference). Přitom s GC nemůžete používat RAII, což mi přijde jako podstatná součást objektově orientovaného programování.

Měl bych další dotaz: neměl by být robustní, kvalitní a moderní jazyk kompilovaný do strojového kódu?  Nějak nevidím výhody toho, aby byl jazyk podobného typu jako Java interpretovaný. Dnes už to má jen samé nevýhody.

JIT překládá do nativního kódu, akorát že až za běhu (což má výhody i nevýhody).
Název: Re:Začátky v Javě
Přispěvatel: borekz 30. 03. 2014, 08:00:49
Nechápu k čemu je zkušenému programátorovi garbage collector. V každé serióznější aplikaci se stejně musí uvolňovat paměť (tedy odstraňovat reference).
GC nebo aspoň počitadla referencí jsou výhodné pro zkopírování pointeru na více míst, odkdu se budou odstraňovat v náhodném pořadí. GC prý je rychlejší než počitadla, i když mě to tak na našich serverech nepřijde. Po vypotřebování paměti Java na dlouho ztuhne.
Přitom s GC nemůžete používat RAII, což mi přijde jako podstatná součást objektově orientovaného programování.
S tím 100% souhlasím. Největší opruz v Javě je "desktruktor" síťových a databázových connectionů v try..finally, které se někdy musí i opakovaně vnořovat. Je to podobná hrůza jako volání Release v COMu, pokud se nepoužijí smartpointery.
Měl bych další dotaz: neměl by být robustní, kvalitní a moderní jazyk kompilovaný do strojového kódu?  Nějak nevidím výhody toho, aby byl jazyk podobného typu jako Java interpretovaný. Dnes už to má jen samé nevýhody.
U Androidu jsem konečně pochopil k čemu to je. Těch procesorů v telefonech a tabletech je tolik, že asi není reálné pro každý to zkompilovat a otestovat u vývojáře. Na Linuxu je zase specifikum, že každá distribuce má jiné verze knihoven, takže nejuniverzálnější je kompilovat přímo na cílové distribuci. Tak to aspoň dělám na našich produkčních serverech.
Název: Re:Začátky v Javě
Přispěvatel: JSH 30. 03. 2014, 10:07:34
IMHO hlavni vyhoda javy je v tom, ze se snadno ladi a hromadu chujovin uz nepusti prekladac. Je nejakej jinej jazyk, kde 90% chyb uz najde prekladac?
Tak v odchytávání chyb při překladu IMO vede Haskell. Jeho typovému systému se vyrovná máloco. A taky jsem na tomhle jazyce zjistil, že GC spolu s referenční transparencí tvoří dost ultimátní kombinaci. Jen je to jazyk dost netradiční z pohledu běžných programátorů, takže naučit se ho je trochu těžší.
Název: Re:Začátky v Javě
Přispěvatel: UX 30. 03. 2014, 10:20:24
HASKELL, to je jako by Te nekdo zebral kosou za nohu :). Luxusni jazyk.

IMHO hlavni vyhoda javy je v tom, ze se snadno ladi a hromadu chujovin uz nepusti prekladac. Je nejakej jinej jazyk, kde 90% chyb uz najde prekladac?
Tak v odchytávání chyb při překladu IMO vede Haskell. Jeho typovému systému se vyrovná máloco. A taky jsem na tomhle jazyce zjistil, že GC spolu s referenční transparencí tvoří dost ultimátní kombinaci. Jen je to jazyk dost netradiční z pohledu běžných programátorů, takže naučit se ho je trochu těžší.
Název: Re:Začátky v Javě
Přispěvatel: Quake 30. 03. 2014, 11:46:10
Pokud se jedná o alternativu k NetBeans, tak si zkuste třeba C++Builder nebo Delphi, to jsou RAD prostředí s vizuálním návrhem, jinak další je třeba CodeBlocks. Pracuji v také v SQLDeveloperu, který je dobrý, ale je na tom vidět, že je to v Jave. Když to srovnám s Toadem nebo IBExpertem, které jsou napsané v Delphi, tak mají úplně jinou odezvu při práci. Pokud se podívát například na TotalCommander, tak je napsaný buď v C++Builderu nebo v Delphi, proč to asi tak nepsali v Jave?
Název: Re:Začátky v Javě
Přispěvatel: perceptron 30. 03. 2014, 11:52:23
GUI aplikacie, co nemusia bezat na viacerych platformach, je zbytocne pisat v Jave.

Total Commander je napisany v starom Delphi 2.0, 64bitove verzie su robene v Lazaruse a v Jave nebol pisany napr. preto, ze v 1993 este Java nebola.

Keby som isiel pisat pure windows GUI aplikaciu, tak vezmem .NET, ten super zastupil tu rolu, ktoru mali Delphi.
Název: Re:Začátky v Javě
Přispěvatel: Quake 30. 03. 2014, 12:05:59
Lazaurus je klon Delphi založený na ObjectPascalu. Delphi v současné době kompilují aplikace pro Windows, iOS, OSX, Android, pro instrukční sadu Intel a ARM.
Název: Re:Začátky v Javě
Přispěvatel: Quake 30. 03. 2014, 12:13:26
Jinak nevím, jak to bude s .NET, když má Microsoft nové vedení, nicméně poslední rok přicházely zprávy, že Microsoft bude preferovat C++ a HTML5. Windows Vista byly vyvíjeny v C# a poté byly práce zastaveny z důvodu nízkého výkonu a začalo se znovu od začátku v C++. Windows Vista měly mít nový souborový systém a další věci. Díky zdržení, pak neobsahovaly slibované věci.
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 30. 03. 2014, 12:43:41
Pokud se jedná o alternativu k NetBeans, tak si zkuste třeba C++Builder nebo Delphi, to jsou RAD prostředí s vizuálním návrhem, jinak další je třeba CodeBlocks.
Mne zajímalo, s čím NetBeans srovnáváte ze stejné kategorie. C++ Builder nebo Delphi jsou sice také RAD nástroje, ale je to jiná liga. Je to jako srovnávat KOffice a OpenOffice. Obojí má své využití, ale je logické, že když jedno je spíš jednoúčelový nástroj a druhé komplexní systém, to druhé bude mít větší nároky.

Pokud se podívát například na TotalCommander, tak je napsaný buď v C++Builderu nebo v Delphi, proč to asi tak nepsali v Jave?
Protože jeho autor dobře zná Delphi, tak to naprogramoval v Delphi. Na rozdíl od některých místních totiž asi věděl, že na volbě jazyka moc nezáleží, že mnohem podstatnější je, jak s tím jazykem a souvisejícími nástroji umí zacházet.

GUI aplikacie, co nemusia bezat na viacerych platformach, je zbytocne pisat v Jave.
Pokud někdo umí Javu, je naopak velmi vhodné, aby to napsal v Javě, než aby to bastlil v něčem jiném.

To, že je zbytečné psát v něčem jiném, než ve vašem oblíbeném jazyce, můžete napsat o kterémkoli jiném jazyce. Akorát že ostatní lidé mají jiné preference, a zvolí si zrovna jazyk, který vy považujete za zbytečný. Někoho napadne psát serverové aplikace v JavaScriptu, někoho psát multiplatformní GUI aplikace v C -a je jim docela jedno, že vy to považujete za zbytečné.

Windows Vista měly mít nový souborový systém a další věci. Díky zdržení, pak neobsahovaly slibované věci.
Chybějící WinFS nebyl důsledek zpoždění, naopak jeho špatný výkon byl jednou z příčin zpoždění.
Název: Re:Začátky v Javě
Přispěvatel: Jirsákova babička 30. 03. 2014, 12:45:40
GUI aplikacie, co nemusia bezat na viacerych platformach, je zbytocne pisat v Jave.
Pokud někdo umí Javu, je naopak velmi vhodné, aby to napsal v Javě, než aby to bastlil v něčem jiném.

To bude nádhera, jak krásně to zapadne do prostředí...  ::) ;D
Název: Re:Začátky v Javě
Přispěvatel: RAII 30. 03. 2014, 12:49:08
Nejdůležitější je rychlost běhu programu, a ta je u Javy prostě mizerná no ... smiřte se s tím

Co? Odkdy? To jsi trochu zaspal dobu.
Prosím, neprogramuj.

Jinak Jirsáku, důkaz už si dostal, (P.S. otevři si to PDF ... kdyby ti to nedošlo).
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 30. 03. 2014, 13:04:45
To bude nádhera, jak krásně to zapadne do prostředí...
Škoda, že to vůbec nesouvisí s programovacím jazykem. MS Word, Google Chrome, Mozilla Firefox, WinAmp - nic z toho není napsané v Javě, a přitom to používá jiné než nativní prostředí. Qt aplikace pod Gnome, GTK+ aplikace pod KDE také nezapadají do prostředí. vadí to někomu?

Jinak Jirsáku, důkaz už si dostal,
Dostal, a ne jeden. Ale já jsem nechtěl další důkaz toho, že vůbec netušíte, o čem píšete. Já jsem chtěl důkaz některého z vašich tvrzení.
Název: Re:Začátky v Javě
Přispěvatel: Jirsákova babička 30. 03. 2014, 13:12:22
MS Word, Google Chrome, Mozilla Firefox, WinAmp - nic z toho není napsané v Javě, a přitom to používá jiné než nativní prostředí. Qt aplikace pod Gnome, GTK+ aplikace pod KDE také nezapadají do prostředí. vadí to někomu?

Akorát že nic z toho nevypadá jako posraná hajzlmísa na japonské skalce, narozdíl od "GUI" produktů napsaných v Javě. Naposled Javě v tomto ohledu konkuroval Motif  ::)
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 30. 03. 2014, 13:19:04
Nejdůležitější je rychlost běhu programu, a ta je u Javy prostě mizerná no ... smiřte se s tím

Co? Odkdy? To jsi trochu zaspal dobu.
Prosím, neprogramuj.
První Pentia (procesory od Intelu uvedené na trh začátkem devadesátých let) měla chybu v operacích s plovoucí řádovou čárkou. Tenkrát se vyprávěl tenhle vtip:

Potká se Pentium a čtyřiosmšestka (předchozí generace procesorů), a 486 povídá:
486: Slyšela jsem, že jsi mnohem rychlejší než já. Tak schválně, jak rychle spočítáš, kolik je 4195835,0 děleno 314­5727,0?
Pentium vypálí: 1,3337390689
486 chvíli počítá, a pak řekne: To je ale přece špatně!
Pentium: Ale rychle!

Akorát že nic z toho nevypadá jako posraná hajzlmísa na japonské skalce, narozdíl od "GUI" produktů napsaných v Javě. Naposled Javě v tomto ohledu konkuroval Motif  ::)
Aha, takže vy jste nikdy žádnou GUI aplikaci v Javě neviděl.
Název: Re:Začátky v Javě
Přispěvatel: Pupi1 30. 03. 2014, 13:32:04
Já jsem za posledních 25 let prošel od 8-bitů až po současnost všemi assemblery pro všechny možné procesory, FigForthem, pak C, pak Pascalem, pak C++, pak Delphi s ObjectPascalem, PHP, JavaScriptem, HTML/CSS. Jediné, co jsem se učil a nebavilo mě to a řekl jsem si, že to prostě nemá cenu, protože se mi to nelíbí, byla Java. Byla zadarmo, ale radši jsem si koupil C++ nebo Delphi za peníze. Všechno je třída, pořád píšu, jak sekretářka strašně dlouhé názvy proměnných oddělených tečkou. Nějaký opravdu high vizuální návrh taky nikde. Hlavně, že máme v Javě GC, pro blbce, co neumí odalokovat paměť. Za břicho se popadám, když mi na seminářích líčí, jak novou verzi kompilují v noci, pak ji testují a pak posílají zákazníkům. Projekt v Delphi o 1.000.000 řádků kompiluji řádově v sekundách. Skončila podpora C#, v budoucnosti skončí i Java a všechny interprety kromě HTML5, protože budou žrát u zařízení baterku víc než čistý strojový kód. Mě se třeba líbí NetBeans, ale pokud píšete a ta písmena se vám tak nějak na obrazovce objevují se zpožděním, je to takové trochu líné a pak si vyberete libovolné IDE napsané v C++, tak vidíte ten rozdíl v interakci, prostě člověk, který dělá v IDE napsané v Javě a v prostředí napsaném v kompilátoru, vidí ten rozdíl. Pokud je někdo student a nemá peníze, tak ať programuje v Javě. Pokud někdo peníze má a živí ho to, tak ať si koupí profesionální prostředí RAD za cca 100.000 Kč. Rozdíl je velký, nicméně je dobře, aby se každý snažil s tím co má, každý podle svých možností.

C# skoncila podpora?:D:D:D:D To je na smiech. Ved vysiel nedavno framework 4.5 a C# 5.0, tak tym asi skoncila podpora. Lol :D
Název: Re:Začátky v Javě
Přispěvatel: trololo 30. 03. 2014, 13:49:37
Skusim nacat debatu trochu inym smerom ....

Ja uz Javu ako tak ovladam a zacinam pozerat na ine jazyky nad JVM. Co si o nich myslite? Najma o stvorici Scala, Ceylon, Groovy a Clojure.

Moje osobne postrehy:

Scala je "v tom" asi najdalej, oop sa stretlo s funkcionalnym. Dost sa vycita Scale ze to je zbytocne komplikovane (nemam linky po ruke, lahko sa to da dogooglit). Na druhej strane to ma celkom dobru podporu v IDE ale zasa ... najvacsi problem ktoreho sa ja obavam je pamatova narocnost a nenazranost. Ruku na srdce, Scala je defakto este postavena na Jave a ten typovy system je brutalne premakany takze cely ten vykon sa musi pridanim vsetych ficur zakonite niekde prejavit. Vyhoda Scaly je bezproblemova interoperabilita s Javou.

Ceylon - pokus Red Hatu o "lepsiu Javu", zbavili sa zabugovaneho SDK v Jave a napisali SDK pre Ceylon defakto od nuly. Zaviedli sa vsetky nove ficury ktore teraz letia a ten jazyk celkom dobre zrefaktorovali a dali mu vacsiu regularnost a robustnost. Celkom sa mi Ceylon paci ale ma to par velmi zasadnych ale:

1) Zda sa mi, ze Ceylon je spraveny na truc. Ak by vsetci ludia co robia na Ceylone isli do Scaly tak by Scala bola zasa uplne niekde inde - bol by to neporazitelny Jazyk a viac menej nastupca Javy a mozno aj C#. To by bola sila.

2) Je tu Java 8 a viac menej rozbehnuta Scala. Ceylon bude podla mna za 5 rokov (ak vobec) niekde tam kde Scala bola pred par rokmi. Vyda sa par verzii, nakodi sa SDK, integracia do Eclipse / Netbeans / IDEA a tym to viac menej konci. Neviem kto by to zacal teraz hromadne pouzivat ked Scala uz bude zasa niekde uplne inde. Fakt nevidim pre Ceylon ziadny validny usecase ktory by ho "vystrelil" hore. Ten trh na poly JVM jazykov je uz celkom prehusteny.

Groovy - ako povedal jeho zakladatel, ak by vedel o Scale tak by Groovy vobec nevzniklo. Nemam k tomu co dodat. Navyse sa mi v Groovy pise strasne zle, ta netypovanost je strasna. Nema to poriadnu podporu v IDE ... neviem, mna Groovy vobec neoslovilo.

No a Clojure - to je asi najviac "iny" jazyk zo vsetkych hore spominanych. Istym sposobom patri  takymto jazykom buducnost ale ta paradigma ako sa v tom programuje je mi na mile vzdialena.

Co si myslite vy najma o Scale a Ceylone v horizonte par (3-4-5) rokov? Co sa oplati "ucit"? Ja by som skusil Ceylon pretoze to len zacina a mozem mat za par rokov dost vyrazny naskok. Na druhej strane mam obavy z toho, ze to je mrtvy jazyk a radsej ist do Scaly.
Název: Re:Začátky v Javě
Přispěvatel: RAII 30. 03. 2014, 14:00:51
Jirsáku, Jirsáku ... je hezké jak nesmyslně kopeš, ale pokud si neakceptoval můj důkaz (dokonce vytvořen lidma z googlu, pokud se nemýlím) tak ti není pomoci a řadím tě do skupiny standardních Javistů ... jejichž názor můj názor nemá šanci ovlivnit protože pochází od amatérů. Jinak, vtip pěknej, ale ... netuším jak sem zapadá xD
Název: Re:Začátky v Javě
Přispěvatel: trololo 30. 03. 2014, 14:02:43
A este postreh, ja vidim na poli JVM jazykov trocha "balkanizaciu", kazdy na svojom piesocku a kazdy robi to iste trochu inym sposobom. Zoberme si co teraz najviac leti

1) uzavery (ma to Scala, uz aj Java, Groovy, Clojure to ma uz v nazve ... Ceylon to zvlada tiez)
2) Masivny paralelizmus / distributivita - Scala to ma cez Actors alebo urcite poznate Akka, Groovy, Clojure ... neviem sa presne vyjadrit, Ceylon pojde tym smerom urcite tiez

Vsetky jazyky to maju a vsetci to implementuju po svojom ale ked na to pride tak to je vsade take iste len v Scale to je v ruzovom a v Clojure v modrom a v Groovy v zelenom ale v podstate tam nie je ziadny rozdiel.

Takze JVM platforma bude za taku dekadu ako Linux - milion distier ktore robia viac menej to iste - milion "cool" jazykov ktore robia viac menej uplne to iste. Ja by som Scalu Groovy a Clojure hodil do jedneho vreca a nic by sa nestalo. Tie jazyky su si podobne jak vajce vajcu. Zbytocna robota.
Název: Re:Začátky v Javě
Přispěvatel: trololo 30. 03. 2014, 14:05:28
Ja by som Scalu Groovy a Clojure hodil do jedneho vreca a nic by sa nestalo.

*Ja by som Scalu Groovy a _Ceylon_ hodil do jedneho vreca a nic by sa nestalo.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 30. 03. 2014, 15:04:14
Citace
Jinak, vtip pěknej, ale ... netuším jak sem zapadá xD
RAII, vy ste fakt epic level troll.

ocividne neviete o com rozpravate - mate len jeden rezim operacie while(true) puts("java je pomala"), co je softver pre umelu inteligenciu, ktory naprogramuje noob v 20. minute vyucby c.


ad jirsakova babicka:

pozrite si, ako vyzera eclipse a pozrite, ako vyzera netbeans, lebo ocividne ste videli motif look and feel spred sto rokov, alebo hello world vo swingu

---------------------

ad jazyky: jazyk je taky silny, ako je jeho komunita a podpora. mozete mat syntakticky megacool jazyk, ale ked nepoviete ludom, preco ho maju pouzivat a neurobite knowledge base, budete sa potacat na pokraji popularity.

na priklade scaly: scala zacina vo svojej dokonalosti o. i. trpiet tym, ze nema casto best practices, a milion sposobov, ktorymi sa da dosiahnut jedna vec je sice super flexibilne, ale zaroven povedie k zmateniu, a navyse readibility v scale casto dostava na frak.

na inom priklade haskellu: vsimnite si, co urobit lyah s jeho popularitou: ergo staci jedna dobre napisana prirucka a uz je to cool

ono stale je to o tom, ze na spravny job spravny tool, ak chcete udrzovatelnu aplikaciu, vezmete javu, ak chcete nabuchat unit testy, vezmete groovy, ked chcete reaktivne programovat, vezmete scalu, a ked suslete, vezmete si clojure


Název: Re:Začátky v Javě
Přispěvatel: RAII 30. 03. 2014, 15:15:03
Já nejsem troll, troll se snaží ostatní vyprovokovat ale není osobně zainteresovaný v tom, za co bojuje. Já jsem a mým cílem není provokace, tím pádem nejsem troll.
Název: Re:Začátky v Javě
Přispěvatel: DK 30. 03. 2014, 15:19:40
Já nejsem troll, troll se snaží ostatní vyprovokovat ale není osobně zainteresovaný v tom, za co bojuje. Já jsem a mým cílem není provokace, tím pádem nejsem troll.

takze Lael?
Název: Re:Začátky v Javě
Přispěvatel: perceptron 30. 03. 2014, 15:24:55
lael ma vela argumentov, raii ma len jeden, ktory toci dokola

Citace
Nejdůležitější je rychlost běhu programu, a ta je u Javy prostě mizerná no ... smiřte se s tím
aj pri php webshope s nakupnym kosikom?
aj pri skripte "najdi mi velkosti adresarov v /home"?
aj pri skalovatelnom fulltext searchi?

vy vsetko robite v c/c++, lebo tam to pobezi najrychlejsie?
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 30. 03. 2014, 15:27:37
pokud si neakceptoval můj důkaz (dokonce vytvořen lidma z googlu, pokud se nemýlím)
Jako důkaz, že netušíte, o čem píšete, jsem to akceptoval. Ale že by byla Java poražená v jakémkoli rychlostním testu, to ten dokument nijak nedokazuje.

Když nechápete, proč je nesmyslné tvrzení, že je nějaký jazyk rychlý nebo pomalý, v dříve odkazované diskusi jste měl konkrétní příklad s čísly. Nechápu, proč se neustále snažíte dokazovat obecné tvrzení, na které už jste dostal protipříklad.

Skusim nacat debatu trochu inym smerom ....

Ja uz Javu ako tak ovladam a zacinam pozerat na ine jazyky nad JVM. Co si o nich myslite? Najma o stvorici Scala, Ceylon, Groovy a Clojure.
Z těch čtyřech jazyků bych dnes doporučil především pátý - Javu 8. Je to zatím největší změna ve vývoji Javy, a bude nějakou dobu trvat, než se jí naučíte používat efektivně.

Určitě se vyplatí umět pracovat s Groovy. Pokud narazíte na něco, co běhá nad JVM a není to Java, s největší pravděpodobností to bude používat Groovy. Vyplatí se to znát už třeba jenom kvůli Gradlu. Mně se Groovy taky nelíbí, ale je populární a s tím nic nenadělám.

Jinak bych neřekl, že některý z těch jazyků vyroste tak, že by to bylo něco jiného než zajímavost. Spíš se věci, které se v nich ukážou zajímavé, budou integrovat zpět do Javy.
Název: Re:Začátky v Javě
Přispěvatel: flv 30. 03. 2014, 15:46:05
RAII.

Poslys ty hrdino. Kdyz uz tu suverene polemizuje s "Jirsakem", nechces rict treba svoje jmeno ?
Co ses zac, nejakej uhrovitej debil co sedi vecne doma za klavesnici ?

Jesus, tyhle kreteny fakt miluju :/.

Název: Re:Začátky v Javě
Přispěvatel: aaaaaaaaaaa 30. 03. 2014, 16:58:34
vy vsetko robite v c/c++, lebo tam to pobezi najrychlejsie?
"Niekto mi hovoril, nech sa pozriem na stranku http://example.com. Za 5 rokov som si v C naprogramoval http clienta a zobrazovaci toolkit; uz pracujem na jednoduchsom browseri. Bohuzial zda sa, ze ta stranka uz neexistuje. Ale zato mi to bezi naozaj rychlo :P."
Název: Re:Začátky v Javě
Přispěvatel: noef 30. 03. 2014, 17:22:45
Vyhoda Scaly je bezproblemova interoperabilita s Javou.

No nevim. Chvili jsem delal na projektu, kde byla pouzivana Java a Scala zaraz a teda nektery casti kodu vypadaly fakt hnusne (napr. pristup k objektu scaly z javy [ne instanci tridy] - object A { val a = 4 } je z Javy dostupny jako A$.MODULE$.a(), bordel s michanim stylu setteru a getteru, nutne prevody mezi kolekcemi [java list vs. scala list]). Co za workaroundy se muselo delat, aby to prekladac pochopil - napr. problemy u dedeni java trida->scala trida s traity, generikou a self typem->java; problemy s "raw type" - musel se napsat wrapper v jave aby s tim scala mohla pracovat; problematicke pouziti frameworku pro modifikaci bytekodu za behu...

Scala se mi hodne libi, doufam ze se prosadi. Ale ta interoperabilita s Javou neni rozhodne "bezproblemova".

To bude nádhera, jak krásně to zapadne do prostředí...  ::) ;D

To je opravdu hrozne, jak ta Java vypada na win7 vic nativne nez neco v C# :D(http://i.imgur.com/wTeSivc.png)
PS: Spodni je ve Swingu.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 30. 03. 2014, 17:27:34
Citace
. Ale ta interoperabilita s Javou neni rozhodne "bezproblemova".
to je pravda, akka ma nie nadarmo scala verziu a java verziu

neviem ako teraz, ale stm over .java jednoducho nefungovalo, lebo niektore syntakticke konstrukcie proste v .java nefungovali.

Citace
ať furt nezapomínám na mlíko a na rohliky, tak než to naběhlo, tak mi zavřeli Čongové ve večerce a počítač to zpomalilo tak, že už mi nenaběhla ani kalkulačka!
malware na windows xp je svina
Název: Re:Začátky v Javě
Přispěvatel: Lol Phirae 30. 03. 2014, 17:43:12
To je opravdu hrozne, jak ta Java vypada na win7 vic nativne nez neco v C#

Aha, už tomu začínám rozumět. Vývojáři v Javě viděli Windows naposled v roce 95.  ::)
Název: Re:Začátky v Javě
Přispěvatel: noef 30. 03. 2014, 18:33:48
Aha, už tomu začínám rozumět. Vývojáři v Javě viděli Windows naposled v roce 95.  ::)

Nezivim se vyvojem v Jave (ani ve Scale). Windows na screenshotu jsou verze 7 (sedmicky), takze to neni nic zastaraleho (jestli se nepletu, jsou stale mnohem vice pouzivane nez osmicky). Na klasickem vzhledu nevidim nic spatneho ???.
Název: Re:Začátky v Javě
Přispěvatel: RAII 30. 03. 2014, 19:08:42
RAII.

Poslys ty hrdino. Kdyz uz tu suverene polemizuje s "Jirsakem", nechces rict treba svoje jmeno ?
Co ses zac, nejakej uhrovitej debil co sedi vecne doma za klavesnici ?

Jesus, tyhle kreteny fakt miluju :/.
Řekl FLV xDD hej frajere, ty si dobrej debil. Jinak, nepochybuji že Jirsák je pouze jeho nick, nikoli skutečné jméno. A k tomu uhrovitému debilovy ... beďary mám no, za klávesnicí furt sedím, to je taky důvod proč mám znalosti oproti ... třeba tobě nebo Jirsákovy -> takže ten debil nesedí. A taky se mne tady někdo ptal jestli vše dělám v C++, no vzhledem ke svému zaměření ano ... třeba takový eshop bych dělal v PHP (možná python) ... ale já nedělám eshopy   
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 30. 03. 2014, 19:58:19
třeba takový eshop bych dělal v PHP (možná python)

A to by ti nevadilo, že jsou pomalejší než C++ a snad i pomalejší než Java?
Název: Re:Začátky v Javě
Přispěvatel: Jirsákova tchýně 30. 03. 2014, 20:12:27
Počkej, až dorazíš domů, Jirsáku! Já ti dám Javu, že ti budou trenky malý!!!

(http://i60.tinypic.com/6rtveb.jpg)

Název: Re:Začátky v Javě
Přispěvatel: RAII 30. 03. 2014, 20:51:43
třeba takový eshop bych dělal v PHP (možná python)

A to by ti nevadilo, že jsou pomalejší než C++ a snad i pomalejší než Java?
Vadilo. Naštěstí to nemusím dělat takže si ušetřím nervy.
Název: Re:Začátky v Javě
Přispěvatel: Ziktofel 30. 03. 2014, 21:07:18
třeba takový eshop bych dělal v PHP (možná python)

A to by ti nevadilo, že jsou pomalejší než C++ a snad i pomalejší než Java?
jak je na tom HHVM?
Název: Re:Začátky v Javě
Přispěvatel: perceptron 30. 03. 2014, 21:48:08
Citace
A taky se mne tady někdo ptal jestli vše dělám v C++, no vzhledem ke svému zaměření ano ... třeba takový eshop bych dělal v PHP (možná python) ... ale já nedělám eshopy   
ja som sa pytal nielen na eshopy, ale aj ine programatorske prace: napriklad shellskriptujete tiez v c++?

lebo zatial to vyzera, ze ste ako ten radostny krtko, co ma vo svojej nore utesenu pracu, ktora mu dava spokojnost a peniaze a pleskate sa po bruchu, ze nemusite vyjst von do toho skaredeho sveta, kde by vas nutili pouzivat nieco *pomalsie* nez c++.

alebo? :-)

Citace
Vývojáři v Javě viděli Windows naposled v roce 95.
ehm, co je vasa referencna aplikacia moderneho windowsu, s ktorou to porovnavate? office?
Název: Re:Začátky v Javě
Přispěvatel: perceptron 30. 03. 2014, 21:52:29
prepacia za doublepost

Citace
. beďary mám no, za klávesnicí furt sedím, to je taky důvod proč mám znalosti oproti ... t... t
ake konkretne napriklad? na akych typoch aplikacii pracujete?

alternativne:

ake su vase konkretne skusenosti s java technologiami okrem citania PDFiek, kde sa pise, ze java je pomala?
Název: Re:Začátky v Javě
Přispěvatel: RAII 31. 03. 2014, 22:01:21
A proč bych vám to měl říkat, známe se snad?
Čtení PDFek? A co je na tom špatného? Napřed všichni chtěj důkaz, prej že vlastní zkušenosti nejsou důkaz. A když ho dostanou, tvářej se kysele a odmítaj ho akceptovat. Já vás Javisty fakt nepochopím, modlím se abych se setkával s minimem Javistů v budoucích letech, zkracujete mi život svou demencí.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 31. 03. 2014, 22:21:45
A to by ti nevadilo, že jsou pomalejší než C++ a snad i pomalejší než Java?
Vadilo.

A proč by sis na tohle nezvolil třeba tu Javu?
Název: Re:Začátky v Javě
Přispěvatel: Natix 31. 03. 2014, 22:33:58
Vyhoda Scaly je bezproblemova interoperabilita s Javou.

No nevim. Chvili jsem delal na projektu, kde byla pouzivana Java a Scala zaraz a teda nektery casti kodu vypadaly fakt hnusne (napr. pristup k objektu scaly z javy [ne instanci tridy] - object A { val a = 4 } je z Javy dostupny jako A$.MODULE$.a(), bordel s michanim stylu setteru a getteru, nutne prevody mezi kolekcemi [java list vs. scala list]). Co za workaroundy se muselo delat, aby to prekladac pochopil - napr. problemy u dedeni java trida->scala trida s traity, generikou a self typem->java; problemy s "raw type" - musel se napsat wrapper v jave aby s tim scala mohla pracovat; problematicke pouziti frameworku pro modifikaci bytekodu za behu...

Scala se mi hodne libi, doufam ze se prosadi. Ale ta interoperabilita s Javou neni rozhodne "bezproblemova".

Ona bezproblémová je, ale pouze jedním směrem: Java -> Scala. Obráceně to podle mě ani nikdy nebylo zamýšlené, takže se nemůžeš divit, že s tím byly takové problémy. Když nad tím přemýšlím, tak mě ani nenapadá, který JVM jazyk by interoperabilitu proti srsti (směrem do Javy) podporoval.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 31. 03. 2014, 23:18:28
Citace
Já vás Javisty fakt nepochopím, modlím se abych se setkával s minimem Javistů v budoucích letech, zkracujete mi život svou demencí.
ak sa nechcete stretavat, najlepsie je, ked nebudete chodit do tejto temy.

ale k veci:
1. ja ako primarny javista viem, ze su oblasti a problem, kde je java pomalsia nez riesenia v C
2. na druhej strane viem, ze oblasti, v ktorych robim, je to fakt, ktory je v zozname prirorit niekde nizsie. nemusim si deployovat restovske api v c++, aj ked by to v nom bolo urcite rychlejsie. nemusim shellskriptovat v c++, aj keby to bolo urcite rychlejsie. nemusim programovat qt v asm, aj ked by to bolo urcite rychlejsie

vy mate jediny argument, rychlost.

keby ste neboli troll, tak poskytnete aspon generalne informacie, lebo takto to vyzera, ze ste fakt zalezeny a hejtujete vsetko, co nie je c++, pricom nic ine ste nevideli (alebo je to hypertajna informacia, comu ja neverim)







Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 31. 03. 2014, 23:27:58
A proč bych vám to měl říkat, známe se snad?
Čtení PDFek? A co je na tom špatného? Napřed všichni chtěj důkaz, prej že vlastní zkušenosti nejsou důkaz. A když ho dostanou, tvářej se kysele a odmítaj ho akceptovat.
Mohl byste nám to říci proto, abychom mohli pochopit, co se pokoušíte sdělit. Na jednu stranu se totiž tváříte jako zkušený programátor. Na druhou stranu nechápete jeden z elementárních základů výrokové logiky, totiž že tvrzení s velkým kvantifikátorem (všeobecné tvrzení, "pro všechna x platí y"), nelze dokázat příkladem jedné věci x, pro kterou platí y. Přitom už jste na tuhle vaši chybu byl upozorněn různými lidmi asi desetkrát. A vy přijdete po jedenácté, a zase přijdete s příkladem jedné věci, pro kterou vaše tvrzení platí. A strašně se divíte, že jej nikdo nechce akceptovat jako důkaz toho vašeho všeobecného tvrzení.

Pokusím se vám to vysvětlit ještě jednou, naposledy. Zkusím to na něčem úplně jiném, než IT - třeba v jiné oblasti nebudete mít tolik předsudků. Představte si tedy, že tvrdíte "všechny ovce jsou černé". Abyste tohle tvrzení dokázal, nestačí ukázat obrázek jedné černé ovce. Nestačí ukázat ani obrázek jiné černé ovce. Nestačí dokonce ani odkázat na PDF, ve kterém lidé asi z Googlu popisují, že viděli jednu černou ovci. Pořád je totiž možné, že vedle těch vašich tří černých ovcí někde na světě existuje i bílá ovce, nebo dokonce celá stáda bílých ovcí. I jediná bílá ovce přitom stačí, aby vaše tvrzení, že všechny ovce jsou černé, bylo nepravdivé.

Mohu vás ubezpečit, že ovládání elementárních základů výrokové logiky není výsadou javistů, umí to i spousta jiných lidí, dokonce by to měly umět děti na základní škole. Pokud vám zkracuje život to, že po vás ostatní chtějí, abyste svá tvrzení nějak doložil, mám pro vás jednoduché řešení: tvrďte pouze takové věci, které jste schopen i při svých znalostech výrokové logiky doložit.

hejtujete vsetko, co nie je c++, pricom nic ine ste nevideli
Já mám dost silné pochybnosti i o znalostech toho C++. Když se ve vedlejší diskusi objevil velmi neefektivní kód na násobení matic, měl být RAII - podle toho, jak se tady snaží sám sebe prezentovat - kdo proti tomu kódu vystartuje, protože procesorová cache, a kód přepíše. RAII si toho kódu ale vůbec nevšímal, a místo něj to opravovali javisti.
Název: Re:Začátky v Javě
Přispěvatel: RAII 31. 03. 2014, 23:47:54
Není to hypertajná informace, ale na druhou stranu, nevidím důvod vám to říkat. Sice sem nepochopil co myslíte tím programovat QT v ASM (v assembly, really? QT má C++ API  you know ... xD).
Už sem to řekl několikrát, Java má i své výhody, je multiplatformní, je dělaná pro blbce takže má zakázané všechny featury o které by se blbec říznul (to je zároveň i nevýhoda, záleží na úhlu pohledu), má olbřímí stdlib.
Jaké jiné generální informace chcete proboha ... hádat se s Javistou o to, že je Java pomalá je fakt extrém, kdybych sem dal svou adresu, nepochybuji že by mne ňákej Javista navštívil a začal mi ručně vysvětlovat jak moc je Java rychlá ...

No a pro Jirsáka, áno, moje chyba, generalizoval jsem. Abys byl spokojen, určitě existuje test ve kterém zvítězí Java. A kód sem neopravoval protože jsem diskuzi už moc nesledoval, přišla mi taková, no jaky když se hází perli sviním. Co takhle dát repete? Úloha bude třeba..., třeba, máme 5000 měst, každé město je spojeno s každým jedním městem. Vzdálenosti mezi městy budou náhodné. Najděte nejkratší cestu z města 0 do města 4999. Kód sem šoupnu zejtra večer, dneska už pudu spát ...
Název: Re:Začátky v Javě
Přispěvatel: andy 01. 04. 2014, 00:10:41
Povodny dotaz ale bol, ci je java za zenitom a nie ako je rychla voci c++. Ked to uvidi Niki, tak to ani nebude citat, takze aj tak je to tu cele strata casu.

Ja si myslim, ze android dostal javu opät do hry.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 01. 04. 2014, 00:15:30
Citace
Jaké jiné generální informace chcete proboha
uplne si postacim, ked mi poviete, ci ste robili v jave alebo ste nerobili a co si myslite o programovani v shellskripte. nechcem od vas kompletne cv, ani telefonne cislo.

k tomu asm a qt:

vo vasom vesmire je java pomala oproti c++
vo vesmire perceptrona-na-minus-prvu vesmire c++ pomale oproti asm

java sux oproti c++, c++ sux oproti asm

potom, co toto skonstatujeme, mozeme ist pokojne programovat :-)

Citace
Co takhle dát repete?
vyborne a teraz ja:

deploynite mi REST server pre fiktivny obchod, nad HTTP, payloady nech idu JSONom. nech mam operaciu pre zoznam tovarov (id, nazov, pocet kusov na sklade). a nech mam operaciu pre nakup, ktora ma na vstupe id tovaru, a vysledkom je znizenie poctu kusov daneho tovaru na sklade o jedna

kod sem supnem zajtra, dnes uz pojdem spat
Název: Re:Začátky v Javě
Přispěvatel: RAII 01. 04. 2014, 00:37:34
Perceptrone, ty si frajer ... vybral sem úlohu na aplikování teorie grafů z toho důvodu že se jedná o výpočetně složitou operaci která porovná dobře výkon jazyků. Ňáké programování obchodu mne nezajímá, není to má parketa a jako test rychlosti to stojí za starou bačkoru. Pokud si však (do)dělal VŠ, aplikovat teorii grafů musíš umět.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 01. 04. 2014, 00:50:39
vybral sem úlohu na aplikování teorie grafů z toho důvodu že se jedná o výpočetně složitou operaci která porovná dobře výkon jazyků.

No, až sem dáš C++ kód, já se klidně na tu Javovskou vezi kouknu.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 01. 04. 2014, 00:53:08
raii,
takze robili ste v jave alebo ste nerobili? a co si myslite o programovani v shellskripte?

Citace
Ňáké programování obchodu mne nezajímá, není to má parketa a jako test rychlosti to stojí za starou bačkoru.
pokial ste dorobili VS, nejake sockety a vlakna v c++ musite vediet.

ci vyliezli sme s krteckovej nory a narazili sme na inu cast realneho sveta, kde rychlost nie je jedine kriterium a nesedi vam to do kramu?

[tym neprotestujem voci vasej ulohe k teorii grafov]


Název: Re:Začátky v Javě
Přispěvatel: perceptron 01. 04. 2014, 00:54:10
vybral sem úlohu na aplikování teorie grafů z toho důvodu že se jedná o výpočetně složitou operaci která porovná dobře výkon jazyků.

No, až sem dáš C++ kód, já se klidně na tu Javovskou vezi kouknu.
za mna +1

raii, show me your code
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 01. 04. 2014, 07:02:22
vybral sem úlohu na aplikování teorie grafů z toho důvodu že se jedná o výpočetně složitou operaci která porovná dobře výkon jazyků.
Celou dobu vám tu x lidí tvrdí, že výkon jazyků nezáleží jen na rychlosti výsledné aplikace. A že i rychlost výsledné aplikace je zvoleným jazykem ovlivněna jen málo, daleko větší dopad má třeba zvolený algoritmus.
Název: Re:Začátky v Javě
Přispěvatel: zboj 01. 04. 2014, 09:53:36
deploynite mi REST server pre fiktivny obchod, nad HTTP, payloady nech idu JSONom. nech mam operaciu pre zoznam tovarov (id, nazov, pocet kusov na sklade). a nech mam operaciu pre nakup, ktora ma na vstupe id tovaru, a vysledkom je znizenie poctu kusov daneho tovaru na sklade o jedna

To je hezké zadání. Použijeme třeba Casablancu (pro http a json) a kód vlastní business logiky bude zhruba stejný jako v Javě nebo C#. Rychlost bude dána sítí. Jen memory footprint bude nižší. Ještě nějaký pokus?
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 01. 04. 2014, 10:40:02
To je hezké zadání. Použijeme třeba Casablancu (pro http a json) a kód vlastní business logiky bude zhruba stejný jako v Javě nebo C#. Rychlost bude dána sítí. Jen memory footprint bude nižší. Ještě nějaký pokus?

Jak by se řešil přístup do databáze? V Javě existuje například hibernate, v podstatě stačí pár anotací a o zbytek se postará sám.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 01. 04. 2014, 11:12:24
Citace
Použijeme třeba Casablancu (pro http a json) a kód vlastní business logiky bude zhruba stejný jako v Javě nebo C#. Rychlost bude dána sítí.
zdrojaky? :-)

Název: Re:Začátky v Javě
Přispěvatel: perceptron 01. 04. 2014, 11:27:34
ale ta casablanca vyzera na prvy pohlad dobre :-)
Název: Re:Začátky v Javě
Přispěvatel: gamer 01. 04. 2014, 11:29:19
deploynite mi REST server pre fiktivny obchod, nad HTTP, payloady nech idu JSONom. nech mam operaciu pre zoznam tovarov (id, nazov, pocet kusov na sklade). a nech mam operaciu pre nakup, ktora ma na vstupe id tovaru, a vysledkom je znizenie poctu kusov daneho tovaru na sklade o jedna
Tohle mi připomíná jeden hezký citát z knihy Programátorské poklesky o komunikaci programátorů:

„Ten sort s apdejtovanejma opšnama mi vypliv mraky vórningů, tak jsem džob po čekpointu típnul, Svičnul jsem se pod sysmana a zkolektoval júzrhuky, ale hodilo to systém eror.“

„Zkus dylítnout vérkfajly a vyendovat se. Pak to exekni z meku do malýho beče s trasováním na olejblovanou pásku a autput esajnuj na flopáč. Jestli to krešne, vylistuj žurnál s dampem, kilni spůlfajly a před odlogováním vytancuj modulovou. Oukej?“


Snažím se tím jen říct, že pro většinu lidí, kteří se tomu denně nevěnují, to bude španělská vesnice, ale nic to nedokazuje o vhodnosti použit Javy/C++/čehokoliv jiného.
Název: Re:Začátky v Javě
Přispěvatel: zboj 01. 04. 2014, 11:53:31
To je hezké zadání. Použijeme třeba Casablancu (pro http a json) a kód vlastní business logiky bude zhruba stejný jako v Javě nebo C#. Rychlost bude dána sítí. Jen memory footprint bude nižší. Ještě nějaký pokus?

Jak by se řešil přístup do databáze? V Javě existuje například hibernate, v podstatě stačí pár anotací a o zbytek se postará sám.

Není tady Hibernate trochu overkill? Osobně bych použil normální relační databází s SQL, nicméně existují i objektové databáze pro C++, a bez (explicitních) anotací. I v Javě bych použil spíše db4o.
Název: Re:Začátky v Javě
Přispěvatel: zboj 01. 04. 2014, 12:04:31
deploynite mi REST server pre fiktivny obchod, nad HTTP, payloady nech idu JSONom. nech mam operaciu pre zoznam tovarov (id, nazov, pocet kusov na sklade). a nech mam operaciu pre nakup, ktora ma na vstupe id tovaru, a vysledkom je znizenie poctu kusov daneho tovaru na sklade o jedna
Tohle mi připomíná jeden hezký citát z knihy Programátorské poklesky o komunikaci programátorů:

„Ten sort s apdejtovanejma opšnama mi vypliv mraky vórningů, tak jsem džob po čekpointu típnul, Svičnul jsem se pod sysmana a zkolektoval júzrhuky, ale hodilo to systém eror.“

„Zkus dylítnout vérkfajly a vyendovat se. Pak to exekni z meku do malýho beče s trasováním na olejblovanou pásku a autput esajnuj na flopáč. Jestli to krešne, vylistuj žurnál s dampem, kilni spůlfajly a před odlogováním vytancuj modulovou. Oukej?“


Snažím se tím jen říct, že pro většinu lidí, kteří se tomu denně nevěnují, to bude španělská vesnice, ale nic to nedokazuje o vhodnosti použit Javy/C++/čehokoliv jiného.

Ta "vhodnost" je dána tím, co dotyčný diskutující zná. "Svou" technologii hájí do krve a zbytek haní (asi nějaký podvědomý obranný reflex, jako když dítěti chcete vzít hračku, nevím, nejsem psycholog). Já dělal roky v Javě, C++ a ObjC (snad jen v .NET méně) a ze zkušenosti vím, že rozdíly mezi platformami (=jazyk+knihovna) se projeví při použití na omezeném hardwaru (pomalý procesor a/nebo málo paměti), například první iPhony nebo v poslední době Raspberry Pi apod. Na serveru s osmijádrem a 32GB paměti se případná nevýhoda projeví jen u velké aplikace a dost nedeterministicky. Ovšem zvolením lepší technologie by třeba pro stejnou aplikaci stačil méně výkonný server a hravě by ji zvládl, do toho už ovšem málokdo vidí. Až budeme mít použitelné chytré hodinky s SDK, opět se ukáže rozdíl mezi různými platformami.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 01. 04. 2014, 12:14:26
Citace
Snažím se tím jen říct, že pro většinu lidí, kteří se tomu denně nevěnují, to bude španělská vesnice, ale nic to nedokazuje o vhodnosti použit Javy/C++/čehokoliv jiného.
na to by sa dalo reagovat analogicky, ze kolko ludi denne programuje dijkstrove algoritmy

toto nie je buzzword speech (sic!), ale realna architektura napr. android vs server alebo javascript vs server. tiez nepredpokladam, ze rozpravate pri tvorbe softveru karel-hynek-machovskou cestinou :-)

argument mal byt o tom, ze nie vzdy raii-ovo "je to pomale, it sux" je to dominantne, ale spravny nastroj na spravny job -- je uplne v pohode do nabuchat v com len chcete (napr. v zmienenej casablance)

Citace
Ovšem zvolením lepší technologie by třeba pro stejnou aplikaci stačil méně výkonný server a hravě by ji zvládl, do toho už ovšem málokdo vidí. Až budeme mít použitelné chytré hodinky s SDK, opět se ukáže rozdíl mezi různými platformami.
urcite, akurat mnohokrat sa to neoplati financne, alebo na to neexistuju v teame ludia, vdaka ktorym by sa oplatilo pouzit rychlejsie beziacu technologiu.

ved nakoniec, najblizsie chytre hodinky budu, ako obvykle, v androide a objective c.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 01. 04. 2014, 12:15:42
Já dělal roky v Javě, C++ a ObjC (snad jen v .NET méně) a ze zkušenosti vím, že rozdíly mezi platformami (=jazyk+knihovna) se projeví při použití na omezeném hardwaru (pomalý procesor a/nebo málo paměti), například první iPhony nebo v poslední době Raspberry Pi apod. Na serveru s osmijádrem a 32GB paměti se případná nevýhoda projeví jen u velké aplikace a dost nedeterministicky. Ovšem zvolením lepší technologie by třeba pro stejnou aplikaci stačil méně výkonný server a hravě by ji zvládl, do toho už ovšem málokdo vidí. Až budeme mít použitelné chytré hodinky s SDK, opět se ukáže rozdíl mezi různými platformami.

On je ale i rozdíl v rychlosti vývoje. Takový server s osmijádrem a 32GB paměti vyjde asi levněji než programátor navíc.
Název: Re:Začátky v Javě
Přispěvatel: zboj 01. 04. 2014, 12:22:41
Já dělal roky v Javě, C++ a ObjC (snad jen v .NET méně) a ze zkušenosti vím, že rozdíly mezi platformami (=jazyk+knihovna) se projeví při použití na omezeném hardwaru (pomalý procesor a/nebo málo paměti), například první iPhony nebo v poslední době Raspberry Pi apod. Na serveru s osmijádrem a 32GB paměti se případná nevýhoda projeví jen u velké aplikace a dost nedeterministicky. Ovšem zvolením lepší technologie by třeba pro stejnou aplikaci stačil méně výkonný server a hravě by ji zvládl, do toho už ovšem málokdo vidí. Až budeme mít použitelné chytré hodinky s SDK, opět se ukáže rozdíl mezi různými platformami.

On je ale i rozdíl v rychlosti vývoje. Takový server s osmijádrem a 32GB paměti vyjde asi levněji než programátor navíc.

A v čem přesně se ta rychlost vývoje liší (za předpokladu, že vždy použijeme dostupné knihovny pro rutinní záležitosti)?
Název: Re:Začátky v Javě
Přispěvatel: zboj 01. 04. 2014, 12:24:18
Já dělal roky v Javě, C++ a ObjC (snad jen v .NET méně) a ze zkušenosti vím, že rozdíly mezi platformami (=jazyk+knihovna) se projeví při použití na omezeném hardwaru (pomalý procesor a/nebo málo paměti), například první iPhony nebo v poslední době Raspberry Pi apod. Na serveru s osmijádrem a 32GB paměti se případná nevýhoda projeví jen u velké aplikace a dost nedeterministicky. Ovšem zvolením lepší technologie by třeba pro stejnou aplikaci stačil méně výkonný server a hravě by ji zvládl, do toho už ovšem málokdo vidí. Až budeme mít použitelné chytré hodinky s SDK, opět se ukáže rozdíl mezi různými platformami.

On je ale i rozdíl v rychlosti vývoje. Takový server s osmijádrem a 32GB paměti vyjde asi levněji než programátor navíc.

Dodatek: Jaký programátor navíc? Předpokládám, že nám jde o shodnou funkčnost.
Název: Re:Začátky v Javě
Přispěvatel: gamer 01. 04. 2014, 12:32:55
na to by sa dalo reagovat analogicky, ze kolko ludi denne programuje dijkstrove algoritmy
Programuje asi málo, ale používá docela dost (já ano :) ). Když potřebuju dijkstru, použiju třeba tohle:
http://programmingexamples.net/wiki/CPP/Boost/BGL/DijkstraComputePath
Programovat to by bylo znovuvynálézání kola. Mimochodem právě jsem dodal ten kód, který od včerejška slibuje RAII :).
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 01. 04. 2014, 12:35:59
A v čem přesně se ta rychlost vývoje liší (za předpokladu, že vždy použijeme dostupné knihovny pro rutinní záležitosti)?

Dobře napsat a odladit program v C++ prostě dá více práce. Proč je například v Javě možná napsat foo(bar[j], bar[++j]), zatímco v C++ je to cesta do pekel (které si většina programátorů ani nevšimne)?

Pak tu může být ještě otázka snadnoti použití těch knihoven. Je třeba v C++ něco (a tu otázku myslím vážně, ne jako chyták), co lze použít tak snadno jako RMI?
Název: Re:Začátky v Javě
Přispěvatel: zboj 01. 04. 2014, 13:07:00
Pak tu může být ještě otázka snadnoti použití těch knihoven. Je třeba v C++ něco (a tu otázku myslím vážně, ne jako chyták), co lze použít tak snadno jako RMI?

S RPC mám zkušenosti spíše v ObjC (kde to je jednodušší než v Javě), ale co si tak matně vzpomínám, v C++ jde jednoduše napsat proxy pomocí variadic templates.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 01. 04. 2014, 13:11:59
Citace
Dodatek: Jaký programátor navíc? Předpokládám, že nám jde o shodnou funkčnost.
on myslel to, ze server stoji 2000 eur, a to je cena, za ktoru si zaplatite mesiac programatora

onu moju rest ulohu si v pythone nasadite asi na 10 riadkov

lebo nejde len o rychlost do dodania, ale aj udrzovatelnost, a hlavne to, ake schopnosti a znalosti ma vas team, a co sa stane, ked team nebude.

Citace
rmi kde to je jednodušší než v Javě
v jave je to uz tiez easy (jeden interface, jedna implementacia, tusim styri riadky bootstrapu pre server), aj ked zhodou okolnosti soap server deploynete este rychlejsie :-)
Název: Re:Začátky v Javě
Přispěvatel: zboj 01. 04. 2014, 13:17:12
Citace
Dodatek: Jaký programátor navíc? Předpokládám, že nám jde o shodnou funkčnost.
on myslel to, ze server stoji 2000 eur, a to je cena, za ktoru si zaplatite mesiac programatora

onu moju rest ulohu si v pythone nasadite asi na 10 riadkov

lebo nejde len o rychlost do dodania, ale aj udrzovatelnost, a hlavne to, ake schopnosti a znalosti ma vas team, a co sa stane, ked team nebude.

Můžu těch 10 řádků vidět? Python sice není moje parketa, ale předpokládám, že rozdíly budou jen v syntaxi.
Název: Re:Začátky v Javě
Přispěvatel: RAII 01. 04. 2014, 16:47:34
Tak tady je ten program: http://uloz.to/xbxoSz7K/shortestpath-zip.
Rychlost běhu programu je od 1000 ms až do 1200 ms.
IDE: Code::Blocks
Compiler: GCC 4.8.2

Při kompilaci nastavit release mód a -O3 optimalizace.
Název: Re:Začátky v Javě
Přispěvatel: RAII 01. 04. 2014, 16:49:32
Zapoměl sem, výpis z /proc/cpuinfo

Kód: [Vybrat]
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Pentium(R) CPU G860 @ 3.00GHz
stepping : 7
microcode : 0x29
cpu MHz : 1830.000
cache size : 3072 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips : 5986.36
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Pentium(R) CPU G860 @ 3.00GHz
stepping : 7
microcode : 0x29
cpu MHz : 1830.000
cache size : 3072 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips : 5986.36
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 01. 04. 2014, 17:14:04
Tak tady je ten program: http://uloz.to/xbxoSz7K/shortestpath-zip.

Hmm, koukám, že jsi použil specializovanou knihovnu. Kouknu se, co nabízí Java. Ale nemohu slíbit, jak brzo se k tomu dostanu.
Název: Re:Začátky v Javě
Přispěvatel: mrw 02. 04. 2014, 00:29:57
Mohl bys RAII dodat ten projekt v zkompilovatelné podobě? Nainstaloval jsem si kvůli tomu CodeBlocks a nic. Zaprvé tam chybí volba -std=c++11, ale budiž, možná mám starší g++, ale pak když dám rebuild, tak to vyhodí tohle:
Kód: [Vybrat]
/home/mrw/programovani/shortestPath/lemon/list_graph.h|26|fatal error: lemon/core.h: No such file or directory|
Předpokládám, že to je tím, že list_graph.h v lemon includuje core pomocí #include <lemon/core.h> a kompilátor to nemá v cestě. Ale jak jsi to zbildil ty? Já když někam dám projekt v NetBeans tak to nemá problém  :)

Jinak pro úplnost, mám CodeBlocks 12.11, g++ 4.8.1, na Linux Mint 16.
Název: Re:Začátky v Javě
Přispěvatel: ... 02. 04. 2014, 09:11:38
kdyz uz se tu nakousla cena, tak zalezi taky na tom kdo ji plati, kolikrat se plati a z jakeho zakladu. treba u carrier grade v nejnizsi kapacite to je kolem 100tis za kus levnejsi pouzit nemuzes, protoze to nesplnuje certifikace a mas pak na triku minimalne obecny ohrozeni. za maximalne osazeny modularni uzel pak 4mil a takovych uzlu podle velikosti uzemi a osidlenosti / poctu zakazniku pak od kusu az po tisice kusu. to je ukazkovy priklad, kde se nava nechyta ani financne ani technologicky, protoze komu by se libilo polozit hovor a mit zauctovanu i stop-world garbage kolekci nad 36GB heapem. pripadne naopak volat tisnovou linku a pockat si nez dobehne GC a hovor spoji az po ni.
i kdyz ani bych se nedivil, kdyby prvni pausalni flat-tarif vznikl prave tak, ze obchodak prodal neco co neexistuje od vic dodavatelu a nakonec to vyvoj slepil uzel u jednoho z nich pres rozhranni napsane v jave, ktere bylo urceno k interaktivnim offline ukonum a nesplnovalo pozadavky na garantovane maximalni doby zpracovani. vubec by me neprekvapilo, kdyby  se handrkovali dodavatel se zakaznikem o penale vs. zadani a nakonec to vyresili salamounsky pres flat tarify.
ale jinak budme radi za javu... aspon to vsude okolo neni php vs. asp/.net.
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 02. 04. 2014, 09:42:56
Pokud potřebujete systém s garantovanou maximální latencí, nemůžete vzít běžný OS, ale musíte použít realtime OS. Úplně stejně nemůžete použít běžnou desktopovou Javu od Oracle, ale musíte použít realtime JVM. Stop-the-world na potenciálně neomezenou dobu totiž není principiální vlastnost GC, je to vlastnost pouze některých implementací.

Java na tom vlastně není vůbec špatně, když většina její kritiky pramení z neznalosti.
Název: Re:Začátky v Javě
Přispěvatel: zboj 02. 04. 2014, 09:59:35
ale jinak budme radi za javu... aspon to vsude okolo neni php vs. asp/.net.

Svatá pravda :)
Název: Re:Začátky v Javě
Přispěvatel: zboj 02. 04. 2014, 10:01:30
Pokud potřebujete systém s garantovanou maximální latencí, nemůžete vzít běžný OS, ale musíte použít realtime OS. Úplně stejně nemůžete použít běžnou desktopovou Javu od Oracle, ale musíte použít realtime JVM. Stop-the-world na potenciálně neomezenou dobu totiž není principiální vlastnost GC, je to vlastnost pouze některých implementací.

Java na tom vlastně není vůbec špatně, když většina její kritiky pramení z neznalosti.

Kritika všeho pramení obvykle z neznalosti. Pak je problém, když je založená na znalostech a zkušenostech a naváží se do ní trotli...
Název: Re:Začátky v Javě
Přispěvatel: r 02. 04. 2014, 10:10:16
http://www.azulsystems.com/technology/c4-garbage-collector

The C4 (Continuously Concurrent Compacting Collector) is an updated generational form of the Azul Pauseless GC Algorithm and is the default collector of Zing®. C4 differentiates itself from other generational garbage collectors by supporting simultaneous - generational concurrency: the different generations are collected using concurrent (non stop-the-world) mechanisms that can be simultaneously and independently active. Unlike other algorithms, it is not ‘mostly’ concurrent, but fully concurrent, so it never falls back to a stop-the-world compaction.
Název: Re:Začátky v Javě
Přispěvatel: Kolemjdoucí 02. 04. 2014, 10:38:45
http://www.azulsystems.com/technology/c4-garbage-collector

Máte s tím nějakou zkušenost? To že si to výrobce sám chválí aby získal platící zákazníky je očekávatelné a nemá to vlastně žádnou vypovídací hodnotu...
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 11:07:12
Tak tady je ten program: http://uloz.to/xbxoSz7K/shortestpath-zip.
Rychlost běhu programu je od 1000 ms až do 1200 ms.

Tak jsem také něco zkusil:

time ./shortestPath (g++ 4.7.3)
real    0m0.784s
user    0m0.683s
sys     0m0.103s

time ./shortestPath (icc)
real    0m0.912s
user    0m0.800s
sys     0m0.110s

time java test/Dijkstra
real    0m0.408s
user    0m0.413s
sys     0m0.017s
Název: Re:Začátky v Javě
Přispěvatel: ... 02. 04. 2014, 11:29:48
Java na tom vlastně není vůbec špatně, když většina její kritiky pramení z neznalosti.
Kritika všeho pramení obvykle z neznalosti. Pak je problém, když je založená na znalostech a zkušenostech a naváží se do ní trotli...

oba vas mam na blacklistu, jako troly, ale tentokrat udelam vyjimku.
1. historie projektu
2. porizovaci a provozni naklady realtime jvm
3. kapacita realtime jvm
4. cena integrace a zmeny licence nekompatibilni zmeny kernelu od dodavatele realtime jvm, kdyz uz i tak kernelari cast jadra vyhazuji formou vypnutych voleb a odpatchovanim zdrzovaciho bloatware v nekterych funkcich a to promile jaderneho rozhranni co je kriticke forknou a napisou zbrusu jinak.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 11:44:23
Kód: [Vybrat]
import java.util.Random;


public class Dijkstra
{
    public static int compute(final int count, int start, int stop, final int weight[])
    {
        boolean[] invalid = new boolean[count];
        int distance[] = new int[count];
       
        for(int i = 0; i < count; i++)
            distance[i] = Integer.MAX_VALUE;
       
        int u = start;
        distance[u] = 0;
       
        while(u != stop)
        {
            invalid[u] = true;
           
            int minDistance = distance[u];
            int min = Integer.MAX_VALUE;
           
            for(int v = 0; v < count; v++)
            {
                if(invalid[v])
                    continue;
               
                int distanceThroughU = minDistance + weight[u * count + v];
               
                if(distanceThroughU < distance[v])
                    distance[v] = distanceThroughU;
               
                if(distance[v] < min)
                {
                    u = v;
                    min = distance[v];
                }
            }
        }
       
        return distance[u];
    }
   
   
    public static void main(String[] args)
    {
        long time = System.currentTimeMillis();
       
        final int count = 5000;
        final Random rand = new Random();
       
       
        int weight[] = new int[count * count];
       
        for(int i = 0; i < count * count; i++)
            weight[i] = rand.nextInt(100) + 1;
       
        int res = compute(count, 0, count - 1, weight);
       
        time = System.currentTimeMillis() - time;
        System.out.println("result: " + res);
        System.out.println("time  : " + time);
    }
}
Název: Re:Začátky v Javě
Přispěvatel: DK 02. 04. 2014, 11:46:15
Pokud potřebujete systém s garantovanou maximální latencí, nemůžete vzít běžný OS, ale musíte použít realtime OS. Úplně stejně nemůžete použít běžnou desktopovou Javu od Oracle, ale musíte použít realtime JVM. Stop-the-world na potenciálně neomezenou dobu totiž není principiální vlastnost GC, je to vlastnost pouze některých implementací.

Java na tom vlastně není vůbec špatně, když většina její kritiky pramení z neznalosti.

Jenom bych dodal, ze je treba taky pouzit "odlisne" struktury, nez standartni, ktere maji vysokou rezii (obzvlaste kolekce a mapy, coz resi treba Javolution)
Název: Re:Začátky v Javě
Přispěvatel: gamer 02. 04. 2014, 12:29:57
Jakub Galgonek: RAII si těžce naběhl tím, že vygeneroval graf, který má velký počet hrah (V^2). Tím způsobil, že standardní dijkstra algoritmy využívající priorotní frontu jsou pomalejší, protože mají režii navíc v prioritní frontě. Kdyby RAII nebyl hloupý a přečetl si tohle:
http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Running_time
Dozvěděl by se že:
For sparse graphs, that is, graphs with far fewer than O(|V|^2) edges, Dijkstra's algorithm can be implemented more efficiently by storing the graph in the form of adjacency lists and using a self-balancing binary search tree, binary heap, pairing heap, or Fibonacci heap as a priority queue to implement extracting minimum efficiently.
Takže "naivní" implementace dijkstry bez prioritní fronty bude pro RAIIův graf rychlejší.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 12:48:30
Jakub Galgonek: RAII si těžce naběhl tím, že vygeneroval graf, který má velký počet hrah (V^2).

Já vím, proto jsem se také Fibonacciho haldě vyhnul. Když je spojené každé město s každým, je to naprosto zbytečná režie.

RAII tím ale (asi nechtěně) ukázal jednu pěknou věc. Spoustu lidí upřednostní Javu před C++, protože vývoj v ní je rychlejší a pohodlnější. Je zde méně věcí, na které je třeba si dát pozor, méně možností, jak se střelit do nohy. Ale zaplatí se za to nějakou tou ztrátou rychlosti. No a RAII, který tu tak volá po rychlosti, nyní udělal něco podobného. Zvolil obecnou knihovnu, asi aby si ušetřil práci a měl to rychle hotovo, a zaplatil za to horší rychlostí.

Mimochodem, Filip ho varoval:

daleko větší dopad má třeba zvolený algoritmus.
Název: Re:Začátky v Javě
Přispěvatel: JSH 02. 04. 2014, 13:54:42
RAII tím ale (asi nechtěně) ukázal jednu pěknou věc.
RAII tady opakovaně ukazuje, jaké má mezery v chápání, proč něco běží pomalu. Přijde mi jako typ, který je schopný pilovat superefektivní bubblesort a dokonale přehlížet "nedůležité" věci jako je asymptotická složitost, nebo posloupnost přístupů do paměti.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 02. 04. 2014, 14:58:42
este pre zboja a python rest

https://gist.github.com/anonymous/9933517
Název: Re:Začátky v Javě
Přispěvatel: majo33 02. 04. 2014, 15:29:43
C++ verzia (dufam ze tam nemam chybu):
Kód: [Vybrat]
#include <vector>
#include <limits>
#include <chrono>
#include <iostream>
#include <cstdlib>


const int INT_MAX = std::numeric_limits<int>::max();

int compute (int count, int start, int stop, const std::vector<int> &weight)
{
  std::vector<bool> invalid(count, false);
  std::vector<int> distance(count, INT_MAX);
       
  int u = start;
  distance[u] = 0;
       
  while(u != stop) {
    invalid[u] = true;
           
    int minDistance = distance[u];
    int min = INT_MAX;
           
    for (int v = 0; v < count; ++v) {
      if (invalid[v]) {
        continue;
      }
               
      int distanceThroughU = minDistance + weight[u * count + v];
               
      if (distanceThroughU < distance[v]) {
        distance[v] = distanceThroughU;
      }
               
      if (distance[v] < min) {
        u = v;
        min = distance[v];
      }
    }
  }
       
  return distance[u];
}

int main(int argc, char **argv)
{
  auto start = std::chrono::high_resolution_clock::now();

  const int COUNT = 5000;
  std::vector<int> weight(COUNT * COUNT);
  srand(time(0));

  for (int i = 0; i < COUNT * COUNT; ++i) {
    weight[i] = (random() % 100) + 1;
  }       

  int res = compute(COUNT, 0, COUNT - 1, weight);

  auto end = std::chrono::high_resolution_clock::now();

  int duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
  std::cout << "result: " << res << std::endl;
  std::cout << "time  : " << duration << std::endl;
       
  return 0;
}

Casy (priemer 50 spusteni, prvy stlpec je vypis casu s programu, druhy s programu time):

Java : 479ms, real 561ms
G++  : 373ms, real 384ms
Clang: 362ms, real 376ms

Java verziu som spustal len prikazom time java Dijkstra, mozno by to poladil nejaky parameter?
C++ verzie su kompilovane prikazmi (medzi -O2 a -O3 nieje podstatny rozdiel):

g++ -std=c++11 -O2 Dijkstra.cpp -o Dijkstra_gcc
clang++ -std=c++11 -O2 Dijkstra.cpp -o Dijkstra_clang

Název: Re:Začátky v Javě
Přispěvatel: RAII 02. 04. 2014, 16:05:18
Mno, jak vidno, posral sem to. Poznámka pro majo33. Když použiješ release mód (při kompilování tvé C++ verze), dostaneš se na 330 ms. 380 ms máš s debug módem.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 16:06:06
Java verziu som spustal len prikazom time java Dijkstra

Jakou jsi použil Javu?
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 16:12:13
Poznámka pro majo33. Když použiješ release mód (při kompilování tvé C++ verze), dostaneš se na 330 ms. 380 ms máš s debug módem.

Když se kouknu do tvého shortestPath.cbp, co u tebe znamená release mód, pak musím konstatovat, že majo33 release mód použil.
Název: Re:Začátky v Javě
Přispěvatel: RAII 02. 04. 2014, 16:17:50
nepoužil ... s ním mi vyšel stejný (+-10) čas jako tam napsal (384) ... bez něj 330 ms
Název: Re:Začátky v Javě
Přispěvatel: zboj 02. 04. 2014, 16:19:12
C++ verzia (dufam ze tam nemam chybu):
Kód: [Vybrat]
#include <vector>
#include <limits>
#include <chrono>
#include <iostream>
#include <cstdlib>


const int INT_MAX = std::numeric_limits<int>::max();

int compute (int count, int start, int stop, const std::vector<int> &weight)
{
  std::vector<bool> invalid(count, false);
  std::vector<int> distance(count, INT_MAX);
       
  int u = start;
  distance[u] = 0;
       
  while(u != stop) {
    invalid[u] = true;
           
    int minDistance = distance[u];
    int min = INT_MAX;
           
    for (int v = 0; v < count; ++v) {
      if (invalid[v]) {
        continue;
      }
               
      int distanceThroughU = minDistance + weight[u * count + v];
               
      if (distanceThroughU < distance[v]) {
        distance[v] = distanceThroughU;
      }
               
      if (distance[v] < min) {
        u = v;
        min = distance[v];
      }
    }
  }
       
  return distance[u];
}

int main(int argc, char **argv)
{
  auto start = std::chrono::high_resolution_clock::now();

  const int COUNT = 5000;
  std::vector<int> weight(COUNT * COUNT);
  srand(time(0));

  for (int i = 0; i < COUNT * COUNT; ++i) {
    weight[i] = (random() % 100) + 1;
  }       

  int res = compute(COUNT, 0, COUNT - 1, weight);

  auto end = std::chrono::high_resolution_clock::now();

  int duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
  std::cout << "result: " << res << std::endl;
  std::cout << "time  : " << duration << std::endl;
       
  return 0;
}

Casy (priemer 50 spusteni, prvy stlpec je vypis casu s programu, druhy s programu time):

Java : 479ms, real 561ms
G++  : 373ms, real 384ms
Clang: 362ms, real 376ms

Java verziu som spustal len prikazom time java Dijkstra, mozno by to poladil nejaky parameter?
C++ verzie su kompilovane prikazmi (medzi -O2 a -O3 nieje podstatny rozdiel):

g++ -std=c++11 -O2 Dijkstra.cpp -o Dijkstra_gcc
clang++ -std=c++11 -O2 Dijkstra.cpp -o Dijkstra_clang


U vectoru asi rozdíl nebude, ale zkusil bych to clangem s libc++ (místo libstdc++).
Název: Re:Začátky v Javě
Přispěvatel: zboj 02. 04. 2014, 16:20:12
este pre zboja a python rest

https://gist.github.com/anonymous/9933517

Dík. Já myslel, že to má být z databáze. Mrknu na to blíže večer.
Název: Re:Začátky v Javě
Přispěvatel: majo33 02. 04. 2014, 16:22:25
Jakou jsi použil Javu?

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

gcc version 4.7.2 (Debian 4.7.2-5)

clang version 3.5 (trunk)

Mno, jak vidno, posral sem to. Poznámka pro majo33. Když použiješ release mód (při kompilování tvé C++ verze), dostaneš se na 330 ms. 380 ms máš s debug módem.

Ktory to je prepinac? Kompiloval som to len s -O2 a -std=c++11.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 16:23:36
nepoužil ... s ním mi vyšel stejný (+-10) čas jako tam napsal (384) ... bez něj 330 ms

Můj ty Bože, tak má asi jiný hardware, ne? Majo33 použil volbu -O2, což by mělo odpovídat tomu tvému release módu.
Název: Re:Začátky v Javě
Přispěvatel: JSH 02. 04. 2014, 16:26:08
nepoužil ... s ním mi vyšel stejný (+-10) čas jako tam napsal (384) ... bez něj 330 ms
Ano, pokud vezmeš kód a spustíš ho na jiném počítači, tak obvykle naměříš jiné časy. Překvapení  :P
Název: Re:Začátky v Javě
Přispěvatel: RAII 02. 04. 2014, 16:40:22
Neříkej, proč sem asi dal výpis z /proc/cpuinfo...Jedno jádro mého procesoru má frekvenci 3Ghz, jeho má zřejmě také...
Název: Re:Začátky v Javě
Přispěvatel: gamer 02. 04. 2014, 16:45:44
Doba běhu je při každém spuštění jiná, protože vzdálenosti v grafu jsou jiné, v tom kódu je:
Kód: [Vybrat]
srand(time(0));
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 16:51:03
Neříkej, proč sem asi dal výpis z /proc/cpuinfo...Jedno jádro mého procesoru má frekvenci 3Ghz, jeho má zřejmě také...

Prosím tě, podle čeho věštíš, co má za procesor?

Ještě jednou: Podle tvých zdrojáků je release mód definovaný použitím volby -O2, a tu volbu také majo33 použil.

Mimochodem, já mám procesor na 2.4 GHz a zvládne to rychleji než ten tvůj (za cca 270 ms).
Název: Re:Začátky v Javě
Přispěvatel: JSH 02. 04. 2014, 16:53:23
Neříkej, proč sem asi dal výpis z /proc/cpuinfo...Jedno jádro mého procesoru má frekvenci 3Ghz, jeho má zřejmě také...
Mohl bys přidat i výpis z /dev/crystal_ball ? Na základě čeho usuzuješ, že jeho procesor má 3Ghz? Z toho, co tu napsal nejsem schopný ani určit, jestli má Intel nebo AMD.
Název: Re:Začátky v Javě
Přispěvatel: perceptron 02. 04. 2014, 17:39:21
raii je ako chuck norris: dokaze z dlzky behu programu usudit, na akom procesore bezi

u mna je priemer javy 497ms, ale v kazdom behu priemerne 90ms zozerie jej boot
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 17:58:17
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

Díky, já zaznamenal nějaký výkonnostní propad na Javě od IBM (JDK 1.6.0.9_p2), tak mne jen zajímalo, na čem to pouštíš. Zkoušel jsem teď ještě icedtea, ale oproti té od Oracle tam už nebyl rozdíl.
Název: Re:Začátky v Javě
Přispěvatel: majo33 02. 04. 2014, 18:00:32
Spustal som to na AMD Phenom x4 945 3GHz.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 18:04:38
Spustal som to na AMD Phenom x4 945 3GHz.

3GHz? Tak teď to dostaneme pěkně sežrat :D

Prosím tě, zkompiluj to ještě bez té volby -O2, jinak RAII asi neuvěří, žeš to předtím měl v "release módu".
Název: Re:Začátky v Javě
Přispěvatel: RAII 02. 04. 2014, 18:12:04
-O3
Název: Re:Začátky v Javě
Přispěvatel: RAII 02. 04. 2014, 18:20:12
-O3 + release mód. Byl to pouze odhad ... a trefil jsem se jak vidím. I když, z části se divím, typoval sem Intel. AMD jádra obvykle potřebují vyšší frekvenci aby se vyrovnali Intel jádrům ze stejné "třídy".
Název: Re:Začátky v Javě
Přispěvatel: JSH 02. 04. 2014, 18:24:12
Spustal som to na AMD Phenom x4 945 3GHz.
Trefil se :o

On pro tenhle test výkon procesoru samotný moc neřekne. Hodně záleží na latenci a rychlosti paměti, na velikosti cache a na tom, jak je chytrý prefetcher. Ta latence se pro hodně vrcholů nejspíš schová protože se jede sekvenčně po velkých kusech paměti, ale imo tu rychlost omezí hlavně čtení těch vah.

RAII :
15:29 majo psal, že mezi O2 a O3 nenaměřil významnější rozdíl. Ono O3 nebývá vždycky rychlejší než O2. O3 zapíná optimalizace, které nemusí být vždycky prospěšné. Pokud člověk nehodlá optimalizace nějak extra řešit, tak bývá lepší volba to O2.

BTW co sakra myslíš tím release módem? Co projekt to jiný release mód a společné mají možná tak ty zapnuté optimalizace a ani to není jisté.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 18:29:59
-O3 + release mód. Byl to pouze odhad ... a trefil jsem se jak vidím. I když, z části se divím, typoval sem Intel.

Povedzte Kefalín, čo vy si predstavujete pod takým slovom release mód?

Podle tvého shortestPath.cbp jde o tohle (zkráceno):

<Target title="Release">
    <Option compiler="gcc" />
    <Compiler>
        <Add option="-O2" />
    </Compiler>
    <Linker>
        <Add option="-s" />
    </Linker>
</Target>


Takže majo33 možná na rozdíl od tebe tu binárku nestripnul, ale v tom bych neviděl problém.

AMD jádra obvykle potřebují vyšší frekvenci aby se vyrovnali Intel jádrům ze stejné "třídy".

A i přes toto tvrzení si odmítáš připustit, že mu to v release módu běží stejně rychle jako tobě v debug módu :D?
Název: Re:Začátky v Javě
Přispěvatel: RAII 02. 04. 2014, 18:41:56
hlupáku ... aspoň si otestuj svoje tvrzení:

Kód: [Vybrat]
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="shortestPath" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/shortestPath" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/Release/shortestPath" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
<Add option="-fexceptions" />
</Compiler>
<Unit filename="main.cpp" />
<Extensions>
<code_completion />
<debugger />
</Extensions>
</Project>
</CodeBlocks_project_file>
Tento CBP file je vygenerován když mám nastaveny optimalizace -O3. Schválně si to zkus, a použij prosím stejnou verzi IDE, v novější může být bug opraven. [12.11-1.el18]
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 02. 04. 2014, 19:16:41
hlupáku ... aspoň si otestuj svoje tvrzení:

Hele, važ slova!

Tento CBP file je vygenerován když mám nastaveny optimalizace -O3. Schválně si to zkus, a použij prosím stejnou verzi IDE, v novější může být bug opraven. [12.11-1.el18]

Schválně jsem kvůli tobě nainstaloval CodeBlocks a schválně ve verzi 12.11 a žádná taková chyba tam není. Vygeneruju projekt a release je definován jako -O2 pro překladač a -s pro linker. Když pro release nastavím -O3 a uložím projekt (!), tak se to projeví i v CBP souboru. Každopádně to nic nemění na mém původním tvrzení, že CodeBlocks žádné další optimalizační volby už nepřidává!
Název: Re:Začátky v Javě
Přispěvatel: majo33 02. 04. 2014, 20:15:03
Na kompilovanie som nepouzil ziadne IDE, ktore by mi nastavilo nejake ine parametre (kompiloval som to z prikazoveho riadku). Zakazanim assertov -DNDEBUG sa da ziskat este tak 5% navyse, ale moze to byt aj chyba merania.
V tom programe viac casu zabera generovanie nahodnych cisel nez samotny vypocet. Generovanie trva cca 4.7 krat dlhsie nez samotny vypocet (plati pre oba jazyky).
Název: Re:Začátky v Javě
Přispěvatel: Filip Jirsák 02. 04. 2014, 23:17:44
Kód: [Vybrat]

            for(int v = 0; v < count; v++)
            {
                int distanceThroughU = minDistance + weight[u * count + v];
               
                if(distanceThroughU < distance[v])
                    distance[v] = distanceThroughU;
               
                if(distance[v] < min)
                {
                    u = v;
                    min = distance[v];
                }
            }

Podle mne je v tom kódu chyba. Původně jsem si říkal, že je to nějaká pekelná optimalizace. Ale dává to špatné výsledky, takže se i přes pozdní hodinu přikláním spíš k tomu, že je to chyba. u by mělo být v rámci for cyklu neměnné, protože se používá pro přístup do pole vah (weight[u * count + v]). Zároveň se ale mění v případě, kdy je nalezena kratší vzdálenost (u = v).

Správně by to myslím mělo být takhle:
Kód: [Vybrat]
            int nextU = u;
            for(int v = 0; v < count; v++)
            {
                int distanceThroughU = minDistance + weight[u * count + v];
               
                if(distanceThroughU < distance[v])
                    distance[v] = distanceThroughU;
               
                if(distance[v] < min)
                {
                    nextU = v;
                    min = distance[v];
                }
            }
            u = nextU;

S touhle opravou to má mnohem větší rozptyl výsledků, někdy je to i o dost rychlejší, než s tou chybou, někdy podstatně pomalejší. Každopádně ale to naplnění vah trvá průměrně tak 5× až 10× déle, než výpočet nejkratší cesty - takže je to spíš test použitého generátoru náhodných čísle než co jiného.

Původně jsem to chtěl tedy přepsat do paralelního zpracování, a to u mi tam pořád překáželo. Takhle už to snad půjde líp :-)
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 03. 04. 2014, 00:10:26
Podle mne je v tom kódu chyba. Původně jsem si říkal, že je to nějaká pekelná optimalizace. Ale dává to špatné výsledky, takže se i přes pozdní hodinu přikláním spíš k tomu, že je to chyba. u by mělo být v rámci for cyklu neměnné, protože se používá pro přístup do pole vah (weight[u * count + v]). Zároveň se ale mění v případě, kdy je nalezena kratší vzdálenost (u = v).

Máš pravdu, díky! Tak to dopadá, když na to nemá člověk moc času a spěchá :-(.
Název: Re:Začátky v Javě
Přispěvatel: gamer 03. 04. 2014, 04:40:06
Původně jsem to chtěl tedy přepsat do paralelního zpracování, a to u mi tam pořád překáželo. Takhle už to snad půjde líp :-)

Není třeba znovuvynálézat kolo, tohle už existuje:
http://www.osl.iu.edu/research/pbgl/
Konkrétně pro dijkstru:
http://www.osl.iu.edu/research/pbgl/documentation/dijkstra_shortest_paths.html
Název: Re:Začátky v Javě
Přispěvatel: ... 03. 04. 2014, 08:05:30
jeste vas to bavi? vite, ze je ten problem irelevantni vzhledem k naproste vetsine aplikaci vsedniho dne?

1. nebezi dostatecne dlouho, aby obsahoval vetsi mnozstvi kolekci a degragmentaci tenured heap
2. ma treba oproti eshopu vyrazne "podmerecne" mnozstvi pametovych operaci (alokovani,zahozeni,kompakce,defragmentace)
3. je to dane i strukturou problemu a tim jak "akademicka" data pouziva a jak s nimi naklada a jake maji naroky na zivotnost a jak casto se nedostanou do tenured heapu a to malo co se tam dostane v naproste vetsine je z kategorie permanent. coz treba oproti minutovym/hodinovym session cache v eshopu je docela rozdil.
4. nedostatecne velikosti dat proti velikosti heapu. naprosta vetsina tech malofiremnich aplikaci ma v databazi nasobne vice dat nez maji k dispozici mista na heapu a jen se v duchu tise modli, aby je provoz nikdy nepotreboval vsechny nebo jejich vyznamnou cast.
... slo by pokracovat, ale zas tak me to nebavi.
Název: Re:Začátky v Javě
Přispěvatel: YF 03. 04. 2014, 13:22:03
hlupáku ... aspoň si otestuj svoje tvrzení:

RAII: ty uz prestan urazet lidi a bez se nad sebou nekam nadlouho a hluboce zamyslet - jediny co dovedes je bejt arogantni typek - a ani to nedelas dobre protoze se ztrapnis s kazdym dalsim prizpevkem - tak uz bud tak hodnej - ukonci to trapeni a uz nic nepis

jinak debata kolem O2/O3 az O20 mi prijde naprosto ujeta - jak v dnesni dobe pri pouiziti tuny vrstev ve vsem chcete proboha vubec lpet na jednom jedinem aspektu jako je rychlost provadeni nejakeho algoritmu? obecne tu pletete garbage collectory - pouziti javy demonstrujete na naprosto vytrzenych pouzitich - mereni javy pomoci time ... pokud se nekdo chce zabyvat a porovnavat java platformu a jeji ladeni pak doporucuji skoleni napriklad od tohoto pana Kirk Pepperdine (http://www.kodewerk.com) - projdete si materialy o metodikach testovani a vubec uvazovani nad tim kdy ma vubec cenu neco ladit a jak se s tim vyporadat. Je jasny ze C++ bude vzdycky rychlejsi nez java kdyz nekdo bude potrebovat - ja nechapu o cem se tady kdo chce dohadovat - to proste vyplyva z podstaty veci - ovsem aspekt rychlosti je jeden z MNOHA a je potreba k tomu tak vzdy pristupovat - nekdo tu psal neco o jave & GC & telefonich systemech ze nechce cekat na full gc - proboha co to je za argumenty? podivejte se v cem eriksoni psali firmware do jejich ustreden a jak tam pracuje GC a pak mozna proc to tak pouzili - to je zase nakej pan Joe Armstrong - taky moc zajimavej pan - ja doporucuju vsem v tomhle foru prestat s timdle neuveritelnym hate-threadem ve kterym tu ztrapnujete nase remeslo strasnym zpusobem.

YF
Název: Re:Začátky v Javě
Přispěvatel: r 03. 04. 2014, 13:41:30
Kód: [Vybrat]
import java.util.Random;


public class Dijkstra
{
    public static int compute(final int count, int start, int stop, final int weight[])
    {
        boolean[] invalid = new boolean[count];
        int distance[] = new int[count];
       
        for(int i = 0; i < count; i++)
            distance[i] = Integer.MAX_VALUE;
       
        int u = start;
        distance[u] = 0;
       
        while(u != stop)
        {
            invalid[u] = true;
           
            int minDistance = distance[u];
            int min = Integer.MAX_VALUE;
           
            for(int v = 0; v < count; v++)
            {
                if(invalid[v])
                    continue;
               
                int distanceThroughU = minDistance + weight[u * count + v];
               
                if(distanceThroughU < distance[v])
                    distance[v] = distanceThroughU;
               
                if(distance[v] < min)
                {
                    u = v;
                    min = distance[v];
                }
            }
        }
       
        return distance[u];
    }
   
   
    public static void main(String[] args)
    {
        long time = System.currentTimeMillis();
       
        final int count = 5000;
        final Random rand = new Random();
       
       
        int weight[] = new int[count * count];
       
        for(int i = 0; i < count * count; i++)
            weight[i] = rand.nextInt(100) + 1;
       
        int res = compute(count, 0, count - 1, weight);
       
        time = System.currentTimeMillis() - time;
        System.out.println("result: " + res);
        System.out.println("time  : " + time);
    }
}
Da sa to este o malinko zrazit, pretoze vo for cykle sa po kazdej iteracii rata count * count
Kód: [Vybrat]
...
final int count = 5000;
        final int countcount = 25000000;
        final Random rand = new Random();
       
        final int weight[] = new int[countcount];
       
        for(int i = 0; i < countcount; i++)
            weight[i] = rand.nextInt(100) + 1;
...
RAII: kriticke casti kodu sa daju volat cez JNI
Název: Re:Začátky v Javě
Přispěvatel: perceptron 03. 04. 2014, 13:47:35
mne sa to po tej uprave java kodu zacykli :-)

mne vyslo:

clang++ -std=c++11 -O3 dijkstra.cpp -o dijkstra-cpp: 319ms

java (1.7.0u51): 392
z toho: ratanie vah: 175
vypocet: 124
ocividne z toho ide 100 ms na reziu (boot jvm)

clang so stdlibc++, ako navrhoval zboj, som na debiane nerozbehal

Citace
processor   : 0
vendor_id   : GenuineIntel
cpu family   : 6
model      : 42
model name   : Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz
stepping   : 7
cpu MHz      : 2266.095
cache size   : 6144 KB
fpu      : yes
fpu_exception   : yes
cpuid level   : 5
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc up rep_good nopl pni monitor ssse3 lahf_lm
bogomips   : 4532.19
clflush size   : 64
cache_alignment   : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Název: Re:Začátky v Javě
Přispěvatel: fail 03. 04. 2014, 14:27:13
hlupáku ... aspoň si otestuj svoje tvrzení:
... nekdo tu psal neco o jave & GC & telefonich systemech ze nechce cekat na full gc - proboha co to je za argumenty? podivejte se v cem eriksoni psali firmware do jejich ustreden a jak tam pracuje GC a pak mozna proc to tak pouzili

ericsoni erlang se rozebiral kdysi v minulosti v obdobne nesmyslenm hate vlakne. rozuzleni bylo to, ze struktura navrhu a pouziti erlangu umoznuje pouzit primocarejsi techniky GC, ktere ani v C++ ani v Jave nebudou fungovat bez dodatecnych berli kvuli kterym budou fungovat hur nez ty soucasne pouzivane. erlang jde mimo me, ale jestli to je pravda, tak na to bude urcite nejmin jeden dokument s dostatecne dobrym pagerankem.
Název: Re:Začátky v Javě
Přispěvatel: YF 03. 04. 2014, 14:47:45
hlupáku ... aspoň si otestuj svoje tvrzení:
... nekdo tu psal neco o jave & GC & telefonich systemech ze nechce cekat na full gc - proboha co to je za argumenty? podivejte se v cem eriksoni psali firmware do jejich ustreden a jak tam pracuje GC a pak mozna proc to tak pouzili

ericsoni erlang se rozebiral kdysi v minulosti v obdobne nesmyslenm hate vlakne. rozuzleni bylo to, ze struktura navrhu a pouziti erlangu umoznuje pouzit primocarejsi techniky GC, ktere ani v C++ ani v Jave nebudou fungovat bez dodatecnych berli kvuli kterym budou fungovat hur nez ty soucasne pouzivane. erlang jde mimo me, ale jestli to je pravda, tak na to bude urcite nejmin jeden dokument s dostatecne dobrym pagerankem.

a o tom to je - o modelech, myslenkach a patternech za tim - sou to nastroje - abstrakce umoznujici efektivnejsi reseni bez bolehlavu prepouzitelne umoznujici efektivni komunikaci mezi vlastniky prislusnych komponent a modulu - jasne definovane mantinely tak aby nad tim bylo mozno premyslet - a spousta dalsiho - proste neexistuje jediny ultimatni reseni ktery to zvladne - ani jeden nastroj ani jeden jazyk coz je nakonec taky jen nastroj - proste to co z tech nastroju dela funkcni celek je hlavne pristup lidi k nim - a kdyby to vsichni delali tak jak to predvadime ve valne mire tady u nas - tak bysme po sobe dneska asi hazeli po sobe klacky - arogance spojena s neznalosti - to je krutoprisna kombinace ktera nas posouva tak akorat nikam - mezi programatory je skutecne rozdil - a astronomicky - ale to neznamena ze na urovni remesla by tyhle lidi nemeli bejt schopny spolu komunikovat a vzajemne si tvorit rozhrani tak aby mohli vsichni v ramci moznosti efektivne tvorit

Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 03. 04. 2014, 15:00:02
Da sa to este o malinko zrazit, pretoze vo for cykle sa po kazdej iteracii rata count * count

S tím by si měl optimalizátor snad poradit sám.
Název: Re:Začátky v Javě
Přispěvatel: Jakub Galgonek 03. 04. 2014, 15:03:21
mne sa to po tej uprave java kodu zacykli :-)

Filipovi tam vypadla ta část s invalid polem. Mělo by to být asi nějak takto:

Kód: [Vybrat]
import java.util.Random;

public class Dijkstra
{
    public static int compute(final int count, int start, int stop, final int weight[])
    {
        boolean[] invalid = new boolean[count];
        int distance[] = new int[count];
       
        for(int i = 0; i < count; i++)
            distance[i] = Integer.MAX_VALUE;
       
        int u = start;
        distance[u] = 0;
       
        while(u != stop)
        {
            invalid[u] = true;
           
            int minDistance = distance[u];
            int min = Integer.MAX_VALUE;
            int next = -1;
           
            for(int v = 0; v < count; v++)
            {
                if(invalid[v])
                    continue;
               
                int distanceThroughU = minDistance + weight[u * count + v];
               
                if(distanceThroughU < distance[v])
                    distance[v] = distanceThroughU;
               
                if(distance[v] < min)
                {
                    next = v;
                    min = distance[v];
                }
            }
           
            u = next;
        }
       
        return distance[u];
    }
   
   
    public static void main(String[] args)
    {
        long time = System.currentTimeMillis();
       
        final int count = 5000;
        final Random rand = new Random();
       
       
        int weight[] = new int[count * count];
       
        for(int i = 0; i < count * count; i++)
            weight[i] = rand.nextInt(100) + 1;
       
        int res = compute(count, 0, count - 1, weight);
       
        time = System.currentTimeMillis() - time;
        System.out.println("result: " + res);
        System.out.println("time  : " + time);
    }
}
Název: Re:Začátky v Javě
Přispěvatel: YF 03. 04. 2014, 15:04:18
Da sa to este o malinko zrazit, pretoze vo for cykle sa po kazdej iteracii rata count * count

S tím by si měl optimalizátor snad poradit sám.

optimalizator to je takovej ten skritek v ty krabicce co se monuje vedle ukladatoru do pocitatoru? :)