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

1 Introduktion

Indhold:

Hvis du bare 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, Windows, MacOS, 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 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 meget bedre forståelse for en computers formåen og begrænsninger.

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

Desuden er programmering et håndværk, der er efterspurgt blandt IT-virksomheder og mange andre. Kan du selv lave programmer er du ikke mere afhængig af, at andre laver et program, der opfylder dit behov.

Java er verdens mest populære sprog1, med 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. Mellem hver instruktion glemmer computeren alt der ikke er gemt i en lagerplads.

1.1.4 Hvordan lærer man at programmere

Man lærer ikke at programmere blot ved at læse en bog. Har du ikke tid til at øve sig og eksperimentere med det, du læser om, spilder du din 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å: Ved at gøre det

Der er blevet lavet forskning, der underbygger dette. P.M. Cheney konkluderer2, 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 Java

Java er et initiativ til at skabe et programmeringssprog, der kan køre på flere styresystemer. Det blev udviklet af Sun Microsystems, der i 1991 arbejdede med at designe et programmeringssprog, der var velegnet til fremtidens telefoner, fjernsyn, opvaskemaskiner og andre apparater. Sådanne programmer skal være meget kompakte (begrænset hukommelse) 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. tillod, at små programmer kunne lægges ind i en hjemmeside (se kapitlet om appletter).

I år 2006 frigav Sun kildekoden til Java som open source, hvilket gjorde Java til en fast del af mange Linux-distributioner og open source-projekter.

I år 2010 blev Sun opkøbt af Oracle. Selvom Java dermed 'skiftede ejer' så sikrer open source-licensen, at alle kan fortsætte med at anvende Java under de samme frie betingelser, i al fremtid.

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 Opbakning i industrien

Ovenstående egenskaber gør, at Java har vundet meget stor udbredelse i serversystemer og i skyen og Java bakkes i dag op af næsten alle større softwarefirmaer, f.eks. IBM, Oracle, Amazon og Google (som serversprog og til Android-telefoner).

Softwaregiganten Microsoft er en undtagelse. Microsoft har gennem to årtier (mis)brugt deres dominerende position til at stække mulige konkurrenter4. På trods af en række domme for monopolmisbrug5 i USA og Europa, er det stadig en god forretningstrategi for dem at modarbejde tiltag til, at programmer nemt kan køre på andre styresystemer end Windows.

1.2.3 Svagheder

Java har også nogle svagheder:

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. NetBeans 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 den vigtigste er "Run", der oversætter (compiler) kildeteksten og derefter kører programmet. Uddata (output) kan ses i nederste del af vinduet. "Debug" (til højre for "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.

På http://javabog.dk kan bogens eksempler, sammen med projektfiler til de fleste af nedenstående programmeringsværktøjer, hentes

Herunder ses hvordan værktøjet NetBeans viser projekterne i venstre side (JavaApplication1 og oop-projekt). I højre side ses kildeteksten på nogle faneblade.

1.3.1 NetBeans

NetBeans er skrevet i Java og kører derfor på Linux, Windows, Mac OSX. Programmet er open source og kan hentes gratis på http://netbeans.org og er fint til begyndere.

For at bruge bogens eksempler vælges File | Open Project..., og mappen oop-projekt. Derefter åbnes oop-projekt | Source Packages og en javafil vælges. Højreklik og vælg 'Run File' for at køre den.

1.3.2 BlueJ

Et interessant værktøj til undervisning i objektorienteret programmering er BlueJ. Det hentes gratis på http://bluej.org og 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.

BlueJ har ikke så avanceret syntakshjælp som de større værktøjer, men til gengæld hjælper den meget med formattering, med at forstå klasser og objekter og med afprøvning (den kan 'optage' en række kald og lave en unit-test ud af det) så den er et fint værktøj i undervisningssammenhæng.

1.3.3 Oracle JDeveloper

Oracle udgiver JDeveloper, også skrevet i Java, proppet med funktioner til deres database- og enterpriseløsninger. JDeveloper kræver en hel del RAM og kan en masse meget avancerede ting, men er for begyndere lidt mere indviklet at bruge end NetBeans, bl.a. fordi projekter er samlet i arbejdsområder/workspaces, en facilitet man sjældent har brug for i starten. Den fulde udgave kan hentes gratis til privat- og undervisningsbrug på http://oracle.com/technology/software/products/jdev/.

For at bruge bogens eksempler vælges File | Open... og filen oop_jdeveloper.jpr åbnes og der klikkes OK et par gange. Derefter åbnes krydset ved oop_jdeveloper og Application Sources og en javafil vælges. Højreklik og vælg 'Run' for at køre den.

1.3.4 Eclipse.org

IBM havde sit eget udviklingsmiljø til bl.a. Java, som de i 2001 valgte at open source under navnet Eclipse. Eclipse kan hentes gratis til Mac/Windows og Linux på http://eclipse.org og er anno 2013 verdens mest brugte udviklingsmiljø, med en enorm mængde plugins. Det er ikke helt så nemt at komme i gang med som de andre6.

For at bruge bogens eksempler i Eclipse vælges File | Import | General | Existing Project into Workspace ... og mappen med eksemplerne åbnes. Derefter åbnes projektets src-mappe og en javafil vælges. Højreklik og vælg 'Run as | Java Application' for at køre den.

1.3.5 IntelliJ IDEA

Mange mener, at det østeuropæiske firma JetBrains i mange år har haft det mest intelligente og avancerede udviklingsværktøj, der passende hedder IntelliJ IDEA. I mange år skulle det købes, men i 2009 blev 'IntelliJ IDEA Community Edition' frigivet som open source. I 2013 annoncerede Google 'Android Studio', som er en udgave af IntelliJ der er rettet mod Android-udvikling.

IntelliJ IDEA kan hentes på http://jetbrains.com/idea/ og er fint til begyndere. For at bruge bogens eksempler vælges 'Import Project'.

1.3.6 Andre værktøjer

Der findes mange andre udviklingsmiljøer til Java, bl.a. JCreator (http://jcreator.com/ – kræver kun 128 MB RAM, men kun til Windows) og jGRASP (http://jgrasp.org/). De fleste findes i en prøveudgave, der kan hentes gratis og som har alle de nødvendige faciliteter til at lave mindre programmer.

1.3.7 Oracle JDK

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

Til oversættelse og kørsel kan man installere et Java-udviklingskit udgivet af Oracle, f.eks. JDK 8 (Java Development Kit - kaldes også Java SE 8).

Det kan hentes gratis på http://oracle.com/technetwork/java/ til et væld af styresystemer.

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

1.4 Hjælp og videre læsning

Mens du læser bogen, kan det være nyttigt at 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. Gode steder med titusindvis af javaprojekter er github.com , sourceforge.net og code.google.com.

Å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.

Der er sket et skred mod mere og mere åben kildekode, hvor store firmaer som Google, Novell, 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 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.

1Per august 2013 har Java været det mest populære sprog over en tiårig periode, kun enkelte gange overgået af C. Se http://www.tiobe.com/tpci.htm

2Artiklen 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.

3Se f.eks. på http://www.tiobe.com/tpci.htm

4Se eksempelvis http://da.wikipedia.org/wiki/Embrace,_extend_and_extinguish

5Eksempelvis kostede en Windows-licens pr. august 2013 omkring 900 kr, mod knapt 200 kr for en Mac OSX-licens.... på trods af at der sælges langt flere Windows-licenser.

6Onde tunger påstår at Eclipse er et kludetæppe af plugins og at værktøjet har ca. 10 gange for mange menupunkter som man kan fare vild i.

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

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