Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 17:22 Der er 35 kommentarer og
2 løsninger

Spørgsmål om Java

Hej!

Jeg er for ca. en måned siden begyndt at programmere lidt i Java. Jeg har dog kun lavet lidt applets, og altså ikke "rigtige" java programmer. Så jeg har lige lidt spm., og Java programmer:

      1) Kan man lave et java program, til eks. en exe fil, uden man har en eller anden java dims installeret, eller SKAL man hente plugins, på java.com ??

      2) Er java programmer's hastighed lige så hurtig, som andre programmeringssprog?

      3) Kan man udvikle servere, som eks. ftp server osv. i det?

      4) Kan i nævne nogle programmer, spil, og servere der er programmeret i Java?

      5) Er Java det bedste, til programmer, eller er det mest applets java er godt til?

På forhånd tak :o)

MVH
Anders
Avatar billede arne_v Ekspert
16. maj 2003 - 17:26 #1
re 1)

Ja - med diverse niche produkter. Men man gør det ikke !

re 2)

Med nyere JVM næsten (jeg har tal !).

re 3)

Ja - sagtens.

re 4)

Pas.

re 5)

Java applets er idag <2% af den java kode der skrives. Java er rigtigt
stort på server !
Avatar billede disky Nybegynder
16. maj 2003 - 17:26 #2
1. Ja det kan man godt, men det er imod hele ideen bag java (søg på google efter 'java2exe'
2. nej java er fortolket igennem JVM'en og er derfor langsommere end f.eks. C++ men kun en lille smule, i starten var forskellen stor men ikke mere
3. uden problemmer
4. www.n.dk er i java, SunOne, Resin, osv
5. Ja er virkeligt godt til Applications, Server side programmering og applets.

Om java er bedre end andre sprog er en smags sag, men mange af de problemmer folk har med c++ findes ikke i java.
Avatar billede disky Nybegynder
16. maj 2003 - 17:27 #3
arne:
Vil du dele de tal med os andre ?

Jeg ved godt at java er næsten ligeså hurtigt, men jeg mangler lidt tal.
Avatar billede arne_v Ekspert
16. maj 2003 - 17:31 #4
Tal:

  SUN JVM 1.3.1 = 30 seconds
  SUN JVM 1.4.1 = 6 seconds
  BEA JRockIt JVM 8.0 = 7 seconds
  IBM JVM 1.3.0 = 3 seconds
  GCC 3.1 = 8 seconds
  MS VS6 standard = 6 seconds
  MS VS6 /Ox /G5 = 4 seconds
  Borland Delphi 6 = 3 seconds
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 17:32 #5
Jeg takker for svarene!

Disky ->> 1) Jeg har før downloadet et java program, og der var bare en masse filer. Ingen autorun eller noget. Så hvis man skulle programmere et program, som folk, der ikke ved hvad java er, hvordan gør man så det. Der må vel være en eller anden form for installationsfil, om det så er exe eller ej. Synt's bare det er lidt irrieterende, at man kommer til en masse filer, som man ikke kan klikke på, men skal ind i en eller anden dos promt for at køre. Er der ikke en måde, der er "med hele idéen i java", hvor man bare downloader en enkelt fil, og klikker på den, og så starter hele installationen??
Avatar billede arne_v Ekspert
16. maj 2003 - 17:33 #6
Kode:

public class Test {
    private static final int N = 1000000000;
    public static void main(String[] args) throws Exception {
        long t1 = System.currentTimeMillis();
        int sum = 0;
        for(int i = 0; i < N; i++) {
            sum = ((sum + 1) * 2 + 1) / 2;
        }
        long t2 = System.currentTimeMillis();
        if(sum != N) {
            System.out.println("Error");
        } else {
            System.out.println(N + " operations in " + ((t2 - t1) / 1000) + "seconds");
        }
    }
}

#include <iostream>

#include <time.h>

using namespace std;

const int N = 1000000000;

int main()
{
  time_t t1 = time(NULL);
  int sum = 0;
  for(int i = 0; i < N; i++) {
      sum = ((sum + 1) * 2 + 1) / 2;
  }
  time_t t2 = time(NULL);
  if(sum != N) {
      cout << "Error" << endl;
  } else {
      cout << N << " operations in " << (t2 - t1) << " seconds" << endl;
  }
}
Avatar billede morw Nybegynder
16. maj 2003 - 17:34 #7
Kilde til den benchmark?
Avatar billede arne_v Ekspert
16. maj 2003 - 17:35 #8
Man kan godt pakke en hel java applikation ned i en
enkelt jar fil.

Og på windows kan den også køres med dobbelt-klik.
Avatar billede disky Nybegynder
16. maj 2003 - 17:36 #9
snuseren.dk
Det er java filerne, der er ingen autorun i java (heldigvis)

Java er platformsuafhængige, og startes med java kommandoen, eller hvis udvikleren er smart som en jar fil der kan dobbeltklikkes på, kræver dog JRE er installeret.



arne:
jeg takker
Avatar billede arne_v Ekspert
16. maj 2003 - 17:38 #10
morw>

Jeg har lige postet koden. Så du selv kan prøve at køre den.

Det er noget ret simpel kode.

Men noget ret CPU intensivt tal knuseri. Lige sådan noget
som man traditionelt har sagt at Java er meget langsommere
end native kode til.

Som man kan se har SUN virkeligt forbedret voldsomt fra
1.3.1 til 1.4.1 !
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 17:39 #11
OK. Hvad så med installationen? Kommer der en normal grafisk installation?
Avatar billede arne_v Ekspert
16. maj 2003 - 17:42 #12
Det er helt det samme som med en native applikation.

Du vælger selv om du vil lave et setup program eller ej.

Der er en forskel i tradition. Stort set alle Windows programmer
kommer med et setup program idag. Det er en lille andel af Java
programmer. De fleste java programmer kommer bare med en zip
eller tar.gz som man skal udpakke.

Men det er ikke teknologi det er skik og brug.
Avatar billede arne_v Ekspert
16. maj 2003 - 17:44 #13
Forklaringen på at Java ikke så ofte har setup program er igen
platform uafhængigheden.

Det er ret nemt at lave et setup program til Windows.

Men at lave et setup program til Windows + Linux + Solaris + 117
andre operativ-systemer er straks sværere.


Nogen laver så et setup program til Windows og lader resten udpakke
en zip eller tar.gz.

Nogen går i krig og laver setup program til alle de mest udbredte
platforme.

Andre laver bare en zip eller tar.gz og så er det det.
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 17:45 #14
Ok. Det er fordi jeg vil lave sådan nogle programmer, som f.eks. Word, og det skulle jo gerne være nemt at installere, for "almindelige" mennesker. Det er jo ikke alle og en hver, der kender til den java kommando der installerer et program, og det er jo ikke alle der har, og ved hvad JRE er.
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 17:47 #15
Men hvis man bruger "Java2exe", er der så nogen forringelse, på nogen måde, og behøver man så at have JRE installeret?
Avatar billede arne_v Ekspert
16. maj 2003 - 17:48 #16
Jeg vil kalde det lidt ambitiøst at lave et program son Word !

:-)

Der er lidt praktiske problemer på desktop fordi Java ikke
kommer med Windows.

Formentlig en af grundene til at Java ikke har slået helt
igennem på desktop men er så dominerende på server.

Men hvis du laver en god applikation, så er installations
problemet til at få løst.
Avatar billede disky Nybegynder
16. maj 2003 - 17:49 #17
snuseren:
Hvis du vil lave exe filer brug c++ ellers behold java.
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 17:51 #18
jaja, så et skriveprogram da :o)

Okay, jeg takker mange gange for svarene, det skader jo heller ikke at lære 2 sprog *G*

MVH
Anders
Avatar billede arne_v Ekspert
16. maj 2003 - 17:52 #19
Der er flere varianter af java2exe:

A)  exe som starter en allerede installeret JVM og kører java byte code

B)  exe som indeholder en JVM og kører java byte code

C)  exe som indeholder ren native

A kræver installeret Java. B og C gør ikke.

B er til gengæld meget stor.

Og C er midt imellem størrelses-mæssigt men til gengæld
noget risikabel fordi det ikke er noget der officielt
supporteres af Java.
Avatar billede arne_v Ekspert
16. maj 2003 - 17:53 #20
Rigtigt.

Alle burde faktisk lære flere programmerings-sprog.

Man kan altid lære noget nyt i et nyt sprog.
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 17:53 #21
Konklusion:

Desktop programmer: C++
Servere: Java
Spil: ??

Er C++ egentligt kun understøttet på Windows?
Avatar billede arne_v Ekspert
16. maj 2003 - 17:59 #22
Nej - C++ understøttes både på Windows, Linux og alle kommercielle
Unix varianter.

Jeg tror at C# vil tage meget over fra C++ til desktop
applikationer.
Avatar billede viciodk Praktikant
16. maj 2003 - 18:00 #23
Hvis dit eneste problem med Java-programmer er at de ikke er så nemme for almindelige brugere at starte, så kan du blot lave en .bat-fil som kører kommandoerne for dig i en DOS-prompt (virker kun under Windows, men mon ikke at dem der bruger Linux o. lign. styresystemer kan finde ud af at skrive "java filnavn"..? Det går jeg kraftigt ud fra).


Hvis du vil lave en .bat-fil som klarer at starte programmet, skal du åbne Notesblok og lave en fil med dette indhold:

javac filnavn.java
java filnavn

.. og gem så filen med et navn i stil med run.bat. Et dobbeltklik på denne kompilerer og starter dermed programmet - ganske simpelt! :)
Avatar billede arne_v Ekspert
16. maj 2003 - 18:03 #24
Og der findes da også Jav apps til desktop og C++ apps til server.

Men de er bare ikke så almindelige.

Jeg er meget glad for Java, men hvis jeg tæller antal java apps
på min PC - og ikke tæller diverse Java IDE'er med fordi de
politisk set er nødt til at være i java - så er det ret nemt:
1 - Poseidon UML tool

Til gengæld er der på server rigtigt langt mellem CORBA apps
og også længere mellem DCOM apps.
Avatar billede exp-ralle Nybegynder
16. maj 2003 - 18:06 #25
Nogen der kan sige mig hvilke sporg man lærer på en Datalog uddanelse?

Mener man lærer C++ men hvad med Java lærer man det?
Avatar billede arne_v Ekspert
16. maj 2003 - 18:09 #26
Dataloger lærer normalt mange sprog i løbet af deres uddannelse.

Jeg tror ikke det er usædvaneligt med ren 3-5 stykker.

Efter min mening en af styrkerne ved uddannelsen.

[jeg er ikke selv datalog]
Avatar billede exp-ralle Nybegynder
16. maj 2003 - 18:12 #27
"ren 3-5 stykker" mener du med det at man lærer 3-5 sporg "udenad" (altså mener sådan man er rigtig gode til dem...)?

Nogen der evt. ved om/tror C# bliver taget med på Datalog uddanelsen?
Avatar billede arne_v Ekspert
16. maj 2003 - 18:22 #28
Man vil få fag hvor man bruger de forskellige programmerings-sprog.

Men i mange af fagene vil der sikkert være fokus på andet end selve
sproget d.v.s. at det vil i høj udstrækning være op til den enkelte
studerende hvorvidt han/hende vil gøre lidt ved selve sproget.

Jeg kan ikke forestille mig andet end at der vil være fag hvor man
bruger C#. Hvorfor ikke ?
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 18:25 #29
Der kommer vel ingen forringelse, med EXE hvis den gør således:

Det hele er gemt i en exe fil.
Når man klikker på *.exe filen, starter et installationsprogram.
Installationsprogrammet, udpakker så alle class filerne, til et sted på c drevet.

Så er det vel i virkeligheden kun installationsprogrammet, der kan blive forringet, eller hva'?
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 18:27 #30
Og hvis man ser bort, fra installeringen, er Java så ik lige så god til Desktop Programmer, som C# og C++ ?
Avatar billede arne_v Ekspert
16. maj 2003 - 18:29 #31
Man kan naturligvis installere en java app både med en
java setup og med en native setup.

Der er adskillige java apps som bliver installeret med en
native setup.

Så det er absolut en mulighed.

Typisk er det så:

setup exe for windows
zip / tar.gz for alle andre systemer
Avatar billede arne_v Ekspert
16. maj 2003 - 18:31 #32
Man kan lave fremragende GUI applikationer i Java.

Min fornemmelse er at Java GUI applikationer har samme funktionalitet
som native GUI applikationer men normalt bruger mere CPU og specielt
mere memory.
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 18:31 #33
ok. Men hvad så, kan man så få java til at lave genveje i startmenuen?
Avatar billede snuseren.dk Nybegynder
16. maj 2003 - 18:32 #34
Hvor sjovt! Vi trykkede på Udfør på ligenøjagtigt samme tidspunkt! :-)
Avatar billede arne_v Ekspert
16. maj 2003 - 18:33 #35
Specielt dårlige Java GUI applikationer kan bruge så meget
memory at man tror det er løgn.

Jeg har set både 256 MB, 512 MB og 768 MB som anbefalet
memory for en enkelt Java GUI app.

Jeg har iøvrigt 2 Java apps på min PC:
1 - Poseidon UML tool
2 - JEdit editor

JEdit er et godt eksemple på at man kan lava en Java GUI app som ikke bruger
urimeligt meget memory.
Avatar billede arne_v Ekspert
16. maj 2003 - 18:34 #36
genveje ?

Hvis man vil have det, så tror jeg at en native windows setup er
den nemmeste måde at gøre det på.
Avatar billede snuseren.dk Nybegynder
17. maj 2003 - 09:09 #37
Jeg takker mange gange for svarene! Gi'r arne 20 pnt, og disky 10 pnt, fordi det dog er arne, der har svaret mest!

Håber det er fair.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester