Varför så få riktiga Java-program?

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Varför så få riktiga Java-program?

Inlägg av jesse »

Java lanserades ju som det "plattformsoberoende" språket där man skulle kunna ladda ner och köra samma programfil på vilken dator som helst. Verkade ju otroligt praktiskt då Win-versionerna avlöser varandra och fler och fler kör en uppsjö av olika Linuxdistributioner.

Men ändå se jag nästan aldrig att en applikation är skriven i Java.

Varför är det så?

Vad finns det för nackdelar med Java som gjort att det bara blivit ett applet-språk för browsrar?

långsamt? buggar? krångligt? annat?

Själv hade jag tänkt lära mig lite mer om java för att kunna skriva program utan att behöva tänka på vilken dator jag ska köra på sedan.

EDIT:

finns det särskilda portaler där man kan ladda ner färdiga java-program?

De få javaprogram jag stött på har sällan fungerat bra (knappar i fönster blinkar, delar av fönster ritas upp fel, muspekaren försvinner, kraschar och/eller tar upp enorma mängder minne och processortid trots att programmet inte gör något, så är det verkligen något att satsa på eller är det ett dött projekt?
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Inlägg av blueint »

Program skirvna i C går alltid fortare.
Inlåsning av Sun Microsystems.
Sabotage av Microsoft mha inkompatibla körningsmiljöer.
Tröghet hos utvecklare.
Användarvisningsbild
AndLi
Inlägg: 18256
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Inlägg av AndLi »

Det finns företag som använder java, jag sitter på ett uppdrag hos en som har sin serverprogramvara skriven i 100% java. De använder dock nästan uteslutande windows, lär finnas någon linux version.

Troligen handlar det om att det kostar för mycket att supporta olika plattformar, det ska ju testas på alla för att säkerställa funktion.

Däremot verkar java mycket populärt på mobiltelefon applikationsfronten

Många projekt idag är skrivna så man kan kompilera dem både för win och linux. Smidigt och gör inte java så nödvändigt.

Själv kodar jag embedded i C....
Användarvisningsbild
Icecap
Inlägg: 26635
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Om det är skrivit i C eller Java har knappast betydelse, vad som har betydelse är att Java, som du beskriver användandet, är ett interpeterat språk. detta betyder att exekveringshastigheten är låg jämförd med ett kompilerat språk som ger en EXE-fil.

Skriver man i Java och kompilerar till en EXE-fil får man samma exekveringshastighet som ett kompilerat C-program.

Jag har sedan hört från en "frälst" Java-programmör att friheten är långt mindre, detta på gott och ont. Den frihet man har i C är trevlig... men fel använd kan den orsaka MÅNGA problem, den begränsning som finns i Java kan vara besvärlig... men den kan säkert hindra en hel del fel.

Men Java i betydelsen "samma fil kan köras på olika datorsystem" är "långsam" och mycket begränsat i vad det kan utföra, därav det svala intresse.
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Inlägg av PHermansson »

Främst är det väl prestandan som varit begränsande, och även om det blivit bättre finns ryktet kvar. Samma med inlåsningen, sedan maj 2007 finns den GPL-licensierade OpenJDK.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Inlägg av jesse »

Jo, det verkar dödens krångligt så fort det blir lite komplexitet.
OpenJDK var ju intressant. SKa jag kolla upp.
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Vad finns det för nackdelar med Java som gjort att det bara blivit ett applet-språk för browsrar?

Har det ? Säkert att du inte menar Javascript ?

> Främst är det väl prestandan som varit begränsande, och även om det blivit bättre finns ryktet kvar.

Tja, det är möjligt att det inte syns så tydligt på ett 3 GHz system med 1 användare. :-)
Men jag tror nog inte att det enbart är ett rykte...

Jag har kört ett par applikationer skrivna i Java (så vitt jag förstår),
t.ex NetBeans och SoapUAI, och visst märker man en viss "seghet"
när menyer ska öppnas o.s.v. På en 1.8 GHz laptop i detta fall.

EDIT: Ändrat ett "Mega" till ett "Giga"... :-)
Senast redigerad av sodjan 6 september 2008, 22:33:01, redigerad totalt 2 gånger.
Borre
Inlägg: 4606
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Inlägg av Borre »

> en viss "seghet" när menyer ska öppnas o.s.v. På en 1.8 Mhz laptop i detta fall.

Det kan jag tro ;)
Användarvisningsbild
kimmen
Inlägg: 2042
Blev medlem: 25 augusti 2007, 16:53:51
Ort: Stockholm (Kista)

Inlägg av kimmen »

Om jag inte minns fel är Azureus skrivet i java.
Användarvisningsbild
Icecap
Inlägg: 26635
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Nu är det kanske på tid att dela upp begreppen lite:
Java är ett programmeringsspråk som är väl dokumenterat osv.

När man har skrivit klart programmet (blir man någonsin klar med ett program?) kompileras källkoden och DÄR skiljer det sig, det kan kompileras till antingen "maskinkod" precis som ett C-program blir, alltså skapa en "riktig" EXE-fil.

MEN det kan även kompileras till en "token-kod" som kan köras av alla Java-stödjande datorer, denna token-kod är alltså interpeterat (alltså översatt) eftersom den kör vilket ger "dåliga" prestanda. Efter vad jag vet kan man packa ihop översättaren med tokenkoden och få en enda EXE-fil men likaväl är den översatt "on the run".

Och det som efterfrågas är varför den kod som kan köras på alla system inte har blivit mer populär och det är svaret: det är för trögt.
AAVE
Inlägg: 67
Blev medlem: 1 april 2008, 11:57:24
Ort: Skåeuone

Inlägg av AAVE »

Att java skulle vara långsam är skitsnack.

Ladda ner spelet "Galaxy on Fire" till mobilen och se vad Java klarar av idag (och det spelet är 3-4 år gammal).


EDIT:
Java är INTE interpeterat. Java kan kompileras till "byte code" för JIT omkompilering eller direkt till EXE.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

På LTH kör man hårt med Java (kan bero på att de har toppforskning i området). Språket är i sig smidig för högnivåapplikationer, eftersom det är begränsat och därför ger dumma studenter nedsatt förmåga att totalt stöka till det med pekare och annat klurigt. :razz:
Ett bra exempel är att kurser i realtidsprogrammering ges i Java, och då kan man flytta fokus från krångliga realtidskärnor till de mer centrala; användandet av semaforer, blockerande händelser och köer. Allt utan att använda en enda funktionspekare!
Användarvisningsbild
Icecap
Inlägg: 26635
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

AAVE: Java-program där samma fil som kan köras på olika plattformar ÄR interpeterat! Så enkelt är det!

Men att Javaprogram kan kompileras till bytekode på samma sätt som C osv. skrev jag ju också eller hur? Men då ska det kompileras till den enskilde plattform (PC/MAC/whatever) och då kan man INTE köra PC-filen på en MAC!

Och interpeteringen GER långsammare program!
Användarvisningsbild
ahlsten
Inlägg: 659
Blev medlem: 12 november 2005, 00:24:14
Ort: Uppsala

Inlägg av ahlsten »

Icecap: det känns som att du glömmer hela historien med virtuella maskiner, som java bygger på.
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Ladda ner spelet "Galaxy on Fire" till mobilen...

Jag förstår inte vad en mobil har med detta att göra.

> Java-program där samma fil som kan köras på olika plattformar ÄR interpeterat! Så enkelt är det!

Och det är bytecod som interpreteras av en virtual machine.
Bytecode är plattformsoberoende (i teorin...).
Och det är interpreteringen av bytecode som utgör prestandaproblemet.
Eller problem och problem, det beror naturligstvis på. I större fleranvändarsystem
är risken också större för att det blir ett problem.

> Men att Javaprogram kan kompileras till bytekode på samma sätt som C
> osv. skrev jag ju också eller hur?

Det är bytecode som compileras till native code för en specific plattform.
Inga normala språk compileras till bytecode. Det som ligger närmast idag
är t.ex .NET miljön.
Skriv svar