Er det rigtigt at java ikke kan håndtere større programmer?

Tags:    java

<< < 12 > >>
Hej! Hører alle steder fra, at Java ikke er god til at håndtere store programmer, som hvis den skulle lave et større spil, eller et stort program.

Er det rigtigt?



15 svar postet i denne tråd vises herunder
9 indlæg har modtaget i alt 9 karma
Sorter efter stemmer Sorter efter dato
Spil: Ved jeg intet om. Programmer: Det lyder som en skrøne



Klart en skrøne. Der hvor jeg arbejdede før, var hele klient-delen af en MEGET STORT erp-system, kodet i Java.



IBM, som vel også laver halvstore programmer, ynder også at gøre det i java :)



Eclipse er skrevet i Java.
Eclipse er bl.a. base for Android SDK, Aptana, Zend Studio, osv. Det er da relativt store værktøjer.

Men mon det er compileren du tænker på? Uanset hvordan og hvorledes afhænger det jo mest af systemresourcer.

Men selve Java sproget er måske ikke det rigtige sprog at bruge til spil, da det mange gange handler om at hive så meget performance ud af en maskine, og der er det ikke sikkert at Java compileren er god nok.



Indlæg senest redigeret d. 27.03.2012 22:33 af Bruger #10216
Hey Jacob.
Jo selvfølgelig kan du lave kæmpe programmer i Java.
Eclipse og Maple er eksempler på kæmpe programmer, som jeg udmiddelbart kender og som er lavet i java.

Men det er rigtigt at java er relativt langsomt et sprog, da dets program løbende bliver fortolket af java's virtualmachine. Altså hvor c jo bare er kendt for at være lynhurtigt.
Nu læser jeg at Robert påstår at java er velegnet til spil. Altså det er sandt nok at du kan lave spil. jMonkey er jo eksempelvis en spil-engines til java (nok den kendteste).
Men ironisk syntes jeg at man skal lede langt efter kommercielle spil med avanceret 3d-grafik som er udviklet i java. Det eneste jeg kan finde på er Minecraft, som heller ikke ligefrem promoverer sig med sin grafik.
Har selv brugt jMonkey til at visualiserer nogen toge som kørte rundt. Her var det for mig klart at det bare kørte langsomt.

Men altså Java er jo fantastisk når det gælder sin mulighed for at udvikle til mange platformer.



Minecraft spillet er skrevet i Java.
Ved ikke om du vil kalde det stort.


Minecraft kører ikke specielt hurtigt, synes ihvertfald tit der er problemer med hurtigheden.
Nej, men det kan godt lade sig gøre :P

Netbeans er vist også lavet i Java



Indlæg senest redigeret d. 28.03.2012 10:36 af Bruger #4487
Nu er Java ret gammelt og et af de (hvis ikke dét) mest brugte sprog.

Java programmer bruger ret megen hukommelse, og det er nok et af sprogets største ulemper. Selv det mindste objekt har en masse med i baggagen, og alle tal typer fylder enten fire eller otte bytes (selv byte og boolean). Arrays er noget andet.

Men kan man leve med hukommelsesforbruget, så er Java et ganske udemærket sprog. Som andre har nævnt, er Eclipse skrevet i Java, og det er et ret stort program.



Jeg ved ikke saa meget om Java som C/C++, men naar det kommer til tungt grafik baseret spil saa som real-time 3D grafik som skal understoette alle de nye grafiske features, kraeves der meget manuelt memory-management. Da Java har en udmaerket indbygget memory-management som vil virke perkekt for mange forskellige typer programmer men den er ikke saerlig velegnet til spil, har jeg ladet mig fortaelle. Dette er nok en af grundene til at Java stort set aldrig bliver brugt til store AAA titler - som er de mest teknisk kraevende og mest advanserede spil. Den indbyggede memory management i Java kan vist blive slaaet fra og du vil kunne lave din egen memory management men da du skal til at opfinde den dybe tallerken, er der nok mange der vaelger at bruge c/c++ da der allerede er et hav af forskellige memory managements designet specielt til spiludvikling. Desuden er der mange "beskidte" pointer tricks som c/c++ tillader som generalt ikke er saerlig god praktiks men er utrolig god for spil og holde en god performance. Ja, saa det er sikkert muligt at kunne lave advanseret spil i Java men du vil ramle ind i mange tekniske vanskligheder, med c/c++ er du garanteret hurtig eksekvering (hvis du goer det rigtigt) og der findes allerede mange biblioteker og resourcer for c/c++.



Hej! Hører alle steder fra, at Java ikke er god til at håndtere store programmer, som hvis den skulle lave et større spil, eller et stort program.

Er det rigtigt?


Nej!
Der er også forskel på klient og server applikationer. Langt de fleste banker kører Java som backend, det vil sige store dele af bankernes systemer er lavet i Java. Og det er specielt på server siden at Java er godt, da det performer rigtigt godt (ved ikke om det er for di det så kører uden GUI). Det er altid GUI der trækker tænder ud - performancemæssigt - i de fleste programmer.




Java er ganske fornuftig til spil, men kan ikke tilgå grafik kortets 3D funktionalitet direkte. Der skal noget native til, og det får du bla. fra JOGL (http://jogamp.org/jogl/www/). Det bliver nemmere at gå til med en 3D engine, som f.eks. jMonkey: http://jmonkeyengine.com/

Det, der gør Java stærkt, er, at det bliver JIT compilet til den maskine, som skal køre programmet. Det gør man ikke med C/C++.
Så i teorien burde Java køre stærkere native sprog...i realiteten går det nogen gange hurtigere, andre gange ikke.



<< < 12 > >>
t