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 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. Sagen blev naturligvis anket, og det er i skrivende stund (marts 2002) uvist, hvad den ender med.

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.

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:

1.3.1 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 eller emacs under Linux.

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

JDK'en bruges fra kommandolinien (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.3.2 Borland JBuilder

Der findes en række mere avancerede programmeringsværktøjer, hvoraf vi anbefaler JBuilder fra Borland, som er et af de mest populære. JBuilder er skrevet i Java og kører på både Macintosh, Windows, Linux og Sun Solaris. Det anbefales at have 128 MB RAM.

JBuilder er opbygget med en menulinie ø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 starter derefter fortolkeren. Uddata kan ses i den nederste ramme. "Debug" (der findes under "Run") bruges til fejlfinding af programmer og giver mulighed for at udføre programkoden trinvist.

Når man udvikler i JBuilder, er det baseret på projekter. Projekterne har en liste over kildetekst-filerne samt, hvis det ønskes, projektinformation (lagret som HTML-dokument).

Projektet (her oop.jpr) kan ses i den venstre ramme. Den højre ramme indeholder kildeteksten på et faneblad. På de andre faneblade er bl.a. designværktøj til grafiske brugergrænseflader, dokumentationsvisning og versionskontrol.

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.3 Oracle JDeveloper

Databaseproducenten Oracle udgiver JDeveloper, også skrevet i Java, til bl.a. Windows og Linux. JDeveloper kan en masse meget avancerede ting, men er for begyndere lidt mere indviklet at bruge end JBuilder, idet projekter er samlet i arbejdsområder, en facilitet, man sjældent har brug for som almindelig udvikler.

JDeveloper kræver 128 MB RAM, og den fulde udgave kan hentes gratis til privat- og undervisningsbrug på http://oracle.com .

1.3.4 Sun Forte/NetBeans

Sun har udgivet sit eget udviklingsmiljø, Forte, også skrevet i Java, til Windows, Linux og Sun Solaris. Gratisversionen af Forte, der kan hentes på http://sun.com/forte , har flere funktioner til at udvikle grafiske brugergrænseflader end JBuilders basisversion.

Programmet har senere fået åbnet for kildekoden (se afsnit 1.4.1) og blevet omdøbt til NetBeans. Denne version kan hentes på http://netbeans.org .

1.3.5 IBM VisualAge for Java

Ligesom Sun har IBM sit eget udviklingsmiljø til bl.a. Java, og en gammel udgave af miljøet kan hentes gratis på IBMs hjemmeside til bl.a. Linux (skærmbilledet viser VisualAge for Java under Linux). Gratisversionen kræver kun 32 MB RAM. De nyere udgaver er mere krævende (128 MB RAM) og kræver Windows.

1.3.6 Andre

Der findes mange andre udviklingsmiljøer til Java, bl.a. Visual Café, Simplicity og Microsoft Visual J++. De fleste findes i en prøveudgave, der kan hentes gratis fra internettet, og som har alle nødvendige faciliteter til at lave mindre programmer.

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

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.

I den senere tid er der imidlertid 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 (80% af værket).

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