javabog.dk  |  << forrige  |  indhold  |  næste >>  |  programeksempler  |  om bogen

1 Introduktion

Indhold:

Hvis du har lyst til at komme i gang med at programmere, kan du springe over dette kapitel.

1.1 Programmering

Ethvert program, f.eks. et tekstbehandlingsprogram, regneark, e-post, tegneprogram, spil, webserver består af nogle data (f.eks. hjælpefiler og konfigurationsfiler) og en samling instruktioner til computeren.

Hver instruktion er meget simpel og computeren udfører den ubetinget, uanset om det er smart eller ej. Den kan udføre instruktionerne ekstremt hurtigt (over 1 milliard pr. sekund) og det kan få computeren til at virke smart, selvom instruktionerne er simple.

1.1.1 Styresystemet

Styresystemet er det program, som styrer computeren og tillader brugeren at bruge andre programmer. Af styresystemer kan nævnes Linux, DOS, Windows, MacOS, OS/2, UNIX.

Styresystemet styrer computerens hukommelse og eksterne enheder som skærm, tastatur, mus, disk, printere og netværksadgang. Det tilbyder tjenester til programmerne, f.eks. muligheden for at læse på disken eller tegne en grafisk brugergrænseflade.

Et program kan normalt kun køre på et bestemt styresystem. Javaprogrammer kan dog køre på flere styresystemer og de bruges derfor bl.a. som programmer, der automatisk hentes ned til brugerens netlæser/browser og afvikles der. Den type programmer kaldes appletter eller miniprogrammer.

1.1.2 Hvorfor lære at programmere?

Det er sjovt og spændende og det kan være en kilde til kreativitet og leg, at skabe sine egne programmer. Man kan bedre forestille sig nye løsninger og produkter og man får bedre kendskab til computeres formåen og begrænsninger.

Desuden er det et håndværk, der er efterspurgt blandt IT-virksomheder og mange andre. Ved hjælp af programmering kan du løse problemer og du er dermed ikke mere afhængig af, at andre laver et program, der opfylder dine behov.

Programmering er en af datalogiens helt basale discipliner og selv om man ikke arbejder som programmør, kan kendskab til programmering være en fordel i mange beslægtede fag.

Java er et sprog, der har stor udbredelse såvel i industrien som i akademiske kredse. Det er kraftfuldt og relativt let lært. Lærer du Java, har du et godt fundament til at lære andre programmeringssprog.

1.1.3 Et simpelt program

For at computeren kan arbejde, skal den have nogle instruktioner, den kan følge slavisk. For at lægge to tal, som brugeren oplyser, sammen kunne man forestille sig følgende opskrift:

  1   Skriv "Indtast første tal" på skærmen
  2   Læs tal fra tastaturet
  3   Gem tal i lagerplads A
  4   Skriv "Indtast andet tal" på skærmen
  5   Læs tal fra tastaturet
  6   Gem tal i lagerplads B
  7   Læg indhold af lagerplads A og indhold af lagerplads B sammen
  8   Gem resultat i lagerplads C
  9   Skriv "Summen er:" på skærmen
  10  Skriv indhold af lagerplads C på skærmen

Et program minder lidt om en kogebogsopskrift, som computeren følger punkt for punkt ovenfra og ned. Hvert punkt (eller instruktion eller kommando) gøres færdigt, før der fortsættes til næste punkt.

1.1.4 Hvordan lærer man at programmere

Man lærer ikke at programmere blot ved at læse en bog. Har man ikke tid til at øve sig og eksperimentere med det man læser om, spilder man bare sin tid. For de fleste kræver det en stor arbejdsindsats at lære, at programmere og for alle tager det lang tid, før de bliver rigtig dygtige til det.

Der er kun én måde at lære at programmere på: Øv dig

Der er blevet lavet forskning, der underbygger dette. P.M. Cheney konkluderer1, at den eneste betydende faktor i produktiviteten for programmører er: Erfaring. Han fandt i øvrigt forskelle i produktiviteten på en faktor 25.

1.2 Fordele og ulemper ved Java

Java er et initiativ til at skabe et programmeringssprog, der kan køre på flere styresystemer. Det er udviklet af Sun Microsystems, der i 1991 arbejdede med at designe et programmeringssprog, der var velegnet til at skrive programmer til fremtidens telefoner, fjernsyn, opvaskemaskiner og andre elektroniske apparater. Sådanne programmer skal være meget kompakte (begrænset hukommelseslager) og fejlsikre (risikoen for, at apparatet ikke virker, skal være minimal).

Med udviklingen af internettet blev Java samtidig meget udbredt, fordi teknologien bl.a. tillader, at små programmer kan lægges ind i en hjemmeside (se kapitlet om appletter).

1.2.1 Stærke sider

Sproget har på bemærkelsesværdigt kort tid udviklet sig, til at være fremherskende på grund af dets egenskaber. Java er et enkelt, objektorienteret, robust, netværksorienteret, platformuafhængigt, sikkert, fortolket, højtydende, flertrådet og dynamisk sprog:

1.2.2 Stor opbakning

Ovenstående egenskaber gør, at Java også har vundet stor udbredelse i serversystemer de seneste år og Java understøttes i dag af næsten alle større softwarefirmaer, f.eks. IBM, Oracle, Borland, Netscape.

Softwaregiganten Microsoft er en undtagelse. Microsoft er ikke interesseret i, at programmerne kan udføres under andre styresystemer end Windows. De har lavet deres egen udgave af Java, der kun virker under Windows og har (uden større held) forsøgt at lokke programmører til at bruge den.

Microsoft bl.a. blev i efteråret 2000 kendt skyldig ved domstolen i USA, for ulovligt at misbruge sin monopollignende magt på PC-markedet, for at skade bl.a. Java.

1.2.3 Svagheder

Java har også en del kritikere, især blandt de, hvis forretningsmodel eller område er truet af Java. Ikke desto mindre er der nogle gode pointer iblandt:

1.3 Programmeringsværktøjer til Java

Under programudviklingen har man brug for arbejdsredskaber, der kan hjælpe en med:

De fleste foretrækker at bruge et grafisk udviklingsværktøj (f.eks. JBuilder vist herunder). De er bygget op med en menulinje øverst, der indeholder tilgang til filhåndtering, projektstyring og alle nødvendige værktøjer, hvoraf de vigtigste er "Run" og "Debug". "Run" oversætter først kildeteksten og kører derefter programmet. Uddata kan ses i en ramme nederst. "Debug" (der findes under "Run") bruges til fejlfinding og giver mulighed for at udføre koden trinvist og følge med i variablernes værdier.

I et udviklingsværktøj arbejder man som regel med et "projekt", der er en liste over kildetekst-filer og alle indstillinger for, hvordan programmet skal køres (herunder ses projektet oop.jpr i venstre side). Til højre vises kildeteksten på et faneblad. På de andre faneblade er typisk designværktøj til grafiske brugergrænseflader, dokumentation og versionskontrol.

1.3.1 Borland JBuilder

En af de mest populære udviklingsværktøj er JBuilder fra Borland.

JBuilder er skrevet i Java og kan derfor bruges på både Linux, Macintosh, Windows og Sun Solaris. Det anbefales at have 256 MB RAM eller mere.

En basisversion af JBuilder kan hentes gratis fra http://www.borland.com/jbuilder. Ønsker man adgang til de mere avancerede funktioner, skal programmet købes.

1.3.2 Oracle JDeveloper

Databaseproducenten Oracle udgiver JDeveloper, også skrevet i Java, til bl.a. Linux og Windows.

JDeveloper kan en masse meget avancerede ting, men er for begyndere lidt mere indviklet at bruge end JBuilder, bl.a. fordi projekter er samlet i arbejdsområder (eng.: workspace), en facilitet man sjældent har brug for som almindelig udvikler.

JDeveloper kræver mindst 256 MB RAM. Den fulde udgave kan hentes gratis til privat- og undervisningsbrug på http://oracle.com/technology/software/products/jdev/.

1.3.3 NetBeans / Sun Java Studio Creator

Sun har sit eget udviklingsmiljø, Java Studio Creator, også skrevet i Java, til Linux, Windows og Sun Solaris.

Programmet har fået åben kildekode (se afsnit 1.4.1) under navnet NetBeans. NetBeans, der kræver 384 MB RAM, kan hentes gratis på http://netbeans.org, mangler en del af de mere avancerede funktioner, men er glimrende til begyndere.

En 30 dages prøveversion af Java Studio Creator kan hentes på http://java.sun.com.

1.3.4 Eclipse.org og IBM WebSphere Studio

Ligesom Sun har IBM sit eget udviklingsmiljø til bl.a. Java. Det hedder IBM WebSphere Studio og basisudgaven har også fået åben kildekode under navnet Eclipse.

Eclipse, der kræver 256 MB RAM, kan hentes gratis på http://eclipse.org.

En gratis prøveversion af IBM WebSphere Studio kan hentes på IBMs hjemmeside:
http://www.ibm.com/software/websphere.

1.3.5 BlueJ

Et interessant værktøj til undervisning i objektorienteret programmering er BlueJ. Det hentes gratis på http://bluej.org og kræver 64 MB RAM. Det har en overskuelig brugergrænseflade, der lader eleven oprette objekter interaktivt, kalde metoder i dem og se resultatet:

Bogens eksempler er forberedt til BlueJ (se afsnit 4.10.1). Ovenfor ses således matadorspillet fra kapitel 5. Øverst er klasserne, nederst objekterne som eleven har oprettet. Til højre ses, hvordan eleven er ved at kalde metoden transaktion() på spilleren Jacob.

Desværre mangler BlueJ den avancerede syntaks- og formateringshjælp som er tilgængelig i de større værktøjer og som, efter forfatterens erfaring, er af afgørende betydning for begyndere.

Den er derfor fin som supplement men kan ikke erstatte et "rigtigt" udviklingsværktøj.

1.3.6 Andre værktøjer

Der findes mange andre udviklingsmiljøer til Java, bl.a. JCreator (http://jcreator.com/ - kræver kun 64 MB RAM, men kun til Windows), IntelliJ (http://jetbrains.com) og Simplicity (http://datarepresentations.com). De fleste findes i en prøveudgave, der kan hentes gratis fra internettet og som har alle de nødvendige faciliteter til at lave mindre programmer.

1.3.7 Sun JDK

Den mest skrabede løsning man kan vælge at redigere kildeteksterne i, er et ikke-Java-orienteret program, som for eksempel Notesblok under Windows eller kedit under Linux.

Til oversættelse og kørsel kan man installere et Java-udviklingskit udgivet af Sun, f.eks. JDK 1.5 (Java Development Kit version 1.5, kaldes også J2SE version 5.0). Det kan hentes gratis på http://java.sun.com til et væld af styresystemer.

JDK'et bruges fra kommandolinjen (f.eks. i et DOS-vindue). De vigtigste kommandoer er javac, der oversætter en kildetekstfil til bytekode og java, der udfører en bytekode-fil.

1.4 Hjælp og videre læsning

Mens du læser bogen, kan det være nyttigt at kigge på:

Hvis du efter denne bog vil læse mere om Java på dansk, kan du kigge på:

1.4.1 Projekter med åben kildekode

Åben kildekode (eng.: open source) vil sige, at kildeteksten er frit tilgængelig. Dette er i modsætning til de fleste kommercielle producenter, der holder kildeteksten for sig selv.

For en lettere øvet i Java og programmering er projekter med åben kildekode interessante, som kilde til inspiration og som eksempler på, hvordan man gør forskellige ting.

Et sted med åben kildekode-projekter er http://sourceforge.net, hvor der er fri adgang til titusindvis af projekter skrevet i Java. Java-siden http://foundries.sourceforge.net/java byder på generelle nyheder om Java og åben kildekode.

Åben kildekode blev før i tiden mest produceret af universiteter og idealistisk indstillede firmaer og enkeltpersoner. Styresystemet Linux er udelukkende baseret på åben kildekode.

Imidlertid er der sket et skred mod mere og mere åben kildekode, hvor store firmaer som Sun og IBM har ført an. Det er indlysende, at hvis programudviklingen sker åbent, sådan at alle kan være med til at afprøve programmet, komme med forbedringsforslag, kigge i kildeteksten og selv bidrage til at forbedre programmet, kan det have en meget positiv indvirkning på et programs kvalitet og opbakning blandt brugerne.

Samtidig føler mange, at de lukkede, proprietære systemers tid er ved at være forbi, både fordi man som forbruger er prisgivet producenten m.h.t. fejlrettelser og nye versioner, men også fordi lukkede systemer har en indre tendens, til at bevæge sig mod større og større monopoler og dermed mindre nyskabelse og sund konkurrence.

1Artiklen hedder 'Effects of Individual Characteristics, Organizational Factors and Task Characteristics on Computer Programmer Productivity and Job Satisfaction' og kan findes i Information and Management, 7, 1984.

javabog.dk  |  << forrige  |  indhold  |  næste >>  |  programeksempler  |  om bogen
http://javabog.dk/ - af Jacob Nordfalk.
Licens og kopiering under Åben Dokumentlicens (ÅDL) hvor intet andet er nævnt (82% af værket).

Ønsker du at se de sidste 18% af dette værk (199974 tegn) skal du købe bogen. Så får du pæne figurer og layout, stikordsregister og en trykt bog med i købet.