Tilbage
VALG AF PROGRAMMERINGSSPROG
Jeg fik en epost med spørgsmål om hvordan man kommer i gang med programmering og benyttede lejligheden til at svare ud fra mine personlige erfaringer. Du kan læse spørgsmål og svar længere nede.
KODE-EKSEMPLER:
Visual Basic-kode (20 kb) |
Delphi-kode (20 kb) |
C++ Builder-kode (4 kb)
Du skal ikke prøve på at forstå kodeeksemplerne. Dels er de meget lange og dels er de ufuldstændige (en del linier er udeladt). Kig blot på dem som eksempler på hvad du kan komme til at arbejde med. En del af det uforståelige ved dem vil forsvinde efter læsningen af en god bog om emnet. Resten skal 'arbejdes væk'.
DELPHIS EDITOR:
Du kan få et indtryk af Delphis editor (hvor man skriver og arbejder med koden) og komponenter på denne side. Et billede af hele editoren kan ses her. Editoren i C++ Builder er helt magen til.
VB -> DELPHI:
Hvis du er rutineret i Visual Basic og overvejer Delphi bør du læse Borlands artikel 'Moving From VB to Delphi' (omhandler VB4 og Delphi2), som du kan downloade her, 31 kb.
Her er en anden artikel, der lovpriser Delphi og har et par opmuntrende ord til folk, der overvejer at skifte fra Visual Basic til Delphi.
DELPHI -> C++ BUILDER:
Hvis du er rutineret i Delphi og overvejer C++ Builder bør du læse Brian Longs artikel 'Borland C++ Builder for Borland Delphi Users', som du kan downloade her, 78 kb.
C++ BUILDER -> DELPHI:
Hvis du er rutineret i C++ Builder og overvejer Delphi bør du læse Marco Cantùs artikel 'Next-Generation Windows Development, An Overview of Delphi for C++ Programmers', som du kan downloade her, 13 kb.
VISUAL C++ -><- DELPHI
Hvis du kender til Visual C++ og er interesseret i Delphi (eller omvendt) kan det måske interessere at læse en ret grundig sammenligning, skrevet af en programmør, der er velbevandret i begge sprog. Papiret (i rtf-format) kan downloades her, 20 kb.
SJOV:
Download The Evolution of a Programmer (3 kb), hvis du vil ha' et billigt grin.
Download Windows95 source code (1 kb), hvis du vil ha' en bedre forståelse af Microsofts styresystem.
>Hej danish-shareware
>
> Jeg har altid gerne ville lære at programmere, udvikle egne spil og programmer
> mm, MEN, jeg ANER ikke rigtigt hvordan man gør. For et par år siden deltog jeg
> i et kursus for QBASIC programmering, men programmet bruges vel ikke mere idag.
>
> Jeg håber i har lidt tid til at forklare mig lidt om hvad programmering og
> programmeringssprog er for noget. Jeg har et par spørgsmål.
>
> 1) Hvad er et programmeringssprog, findes der mange forskellige?
Computerens sprog er maskinkode, hvilket for de allerfleste er umuligt at arbejde med. Derfor er der konstrueret mere menneskevenlige sprog til at skrive programmer i. Koder skrevet med disse sprog bliver så af compileren oversat til maskinsprog, dvs. der bliver lavet en exe-fil. I princippet skriver man koden i en editor og får derefter koden oversat ved at køre koden gennem compileren. I praksis startes compileren normalt ved at klikke på en knap i editoren.
Ja, der findes mange forskellige sprog. De fleste er irrelevante i og med at de enten er forældede, meget specialiserede eller uegnede til almen brug.
Lavniveausprog ligger tæt på maskinkode (assembler fx) og de er svære at lære og tidskrævende at bruge, men laver hurtige programmer (eller dele af programmer). Assembler er et meget svært programmeringssprog, hvor man direkte programmerer cpu'ens registre, RAM'en mv. Det bruges mest til at optimere tunge dele af et program og ikke til at skrive hele programmer med.
Højniveausprog minder om almindelige menneskesprog, og de er nemmere at lære og hurtigere at programmere i. De 3 sprog, jeg beskriver herunder er højniveausprog. Hvor hurtige programmer, der kan laves med højniveausprog, afhænger af hvor god compileren er og hvor godt sproget er konstrueret.
> 2) Hvilke programmer benyttes som regel til programmering?
De gængse programmeringssprog under Windows32 (win9x/NT) er:
- Visual Basic fra Microsoft (VB)
- Visual C++, primært Borlands C++ Builder og Microsofts Visual C++ (VC++)
- Borland Delphi, hvilket egt. er navnet på programmeringsmiljøet, hvorimod selve sproget hedder Object Pascal (Delphi)
En kort gennemgang af fordele og ulemper ved de 3 sprog:
Visual Basic er mest udbredt, da det er det nemmeste at lære af de 3 sprog og da Microsoft jo har gjort sig selv til en standard i erhvervslivet, hvor standarder er meget vigtige og nogen gange vigtigere end kvalitet.
VB afviger en del fra de 2 andre sprog. Microsoft har valgt at lade VB's compiler (i standard-versionen) lave pseudokode i stedet for maskinkode. Pseudokoden skal så oversættes til maskinkode, hver gang et program køres. Det er grunden til at VB-programmer er relativt langsomme. En anden ulempe ved VB er at programmerne ikke kan stå alene, men er afhængige af de såkaldte runtime-filer (dll'er i systembiblioteket). Disse filer fylder i dag flere megabytes og det er uheldigt at når man skal levere et program, der fx fylder 110 kb, så skal der leveres 1-3 Mb runtime-filer med. Disse filer følger dog med Windows98, så hvis modtageren bruger det operativsystem, kan man nøjes med at levere selve programmet. I den professionelle version laver compileren rigtig maskinkode, men programmerne er stadig afhængige af runtime-filerne.
VB's styrke er at det er ret nemt at lære og at arbejde med og at sproget kan bruges til både at lave selvstændige programmer, til at lave avancerede makroer i Office-programmerne (VBA) og ifm. hjemmesider på intranet (VB-script).
Visual C++ er et af de 2 sprog, der findes en standard for (det andet er Pascal). Denne standard er en løbende vedligeholdt definition af C++, som er tilgængelig for alle. Diverse software-firmaer udarbejder så de egentlige kommercielle 'programmeringsprogrammer' (Microsoft Visual C++, Borland C++ Builder og andre), som man bruger til at skrive programmer med. Selvom standard C++ er basis for dem alle, er disse kommercielle 'programmeringsprogrammer' af varierende kvalitet.
VC++ er de professionelles foretrukne sprog, men er også det absolut vanskeligste at lære (af de 3 sprog) og det mest besværlige, og dermed dyreste, at lave programmer i, hvilket er en del af forklaringen på VB's udbredelse. VC++ laver de hurtigste og mindste programmer. Erfaring med VC++ kan bruges til programmering i JavaScript, Java, Perl, Python mv., hvilket er meget efterspurgt i dag. Perl og Python er script-sprog, der benyttes meget til fx at producere hjemmesider på basis af databaser. Man kan ikke lave selvkørende programmer i Perl og Python, til gengæld er de gratis og meget udbredte.
Operativsystemer og spil laves næsten altid i C eller C++, hvilket siger lidt om hvor potent et sprog det er.
Under Linux, som stormer frem i disse år, har der indtil nu ikke rigtig været nogen vej uden om C++, da hverken VB eller Delphi findes på den platform. Men Borland (som laver Delphi) er i gang med at lave en kombineret Delphi/C++ Builder til Linux, og den er snart klar til brug. Den hedder Kylix og er til salg her i landet fra den 14. februar 2001 (og senere kommer C++ Builder i Linux-version). Dermed bliver det forholdvist nemt at udvikle til både Windows og Linux på basis af samme pascalkode. Kylix bliver dog dyr (6-7000 kr.) forlyder det, men senere skulle der komme en gratis version, med hvilken man dog kun må lave open source-programmer.
Delphi er på en måde det ideelle programmeringssprog, da det laver programmer, der er (næsten) lige så hurtige og fylder (næsten) lige så lidt, som dem der laves i VC++. Derimod er det væsentligt nemmere at programmere i Delphi end i VC++ (men dog noget vanskeligere end i VB). Delphi bruger Pascal-sproget, der er standardiseret af ISO (standard nr. ISO 7185:1990). Se også her. Endvidere findes der en nyhedsgruppe: Comp.Lang.Pascal.Ansi-iso.
Delphi er ligesom VC++ et ægte objekt-orienteret sprog, der hjemmevant arbejder med klasser, pointere og lignende snedige ting. Direkte (API-) kald af funktioner i styresystemet er i Delphi lige så nemt som i VC++ (kan lade sig gøre i VB, hvis du erklærer funktionerne først).
Erhvervslivet er meget tilbageholdende med at bruge Delphi, da Borland ikke er så stort og solidt et firma som Microsoft (og af og til har været i økonomisk knibe). Det trækker også ned i erhvervslivets øjne at Delphi ikke betragtes som et standardiseret sprog (selvom der som nævnt findes en ISO-standard for Pascal) og i øvrigt kun kan leveres af et enkelt firma. Erhvervslivet tør som hovedregel ikke forlade sig på et enkelt firmas produkt, som grundlag for produktion af software (forståeligt nok).
Delphi har dog fuld fart på og følger med udviklingen lige så rapt og effektivt som VC++ og VB (der er solgt 500.000 Delphi'er indtil nu), så der er for mindre forsigtige sjæle ingen grund til at gå uden om Delphi. Desværre skal man ikke regne med at kunne bruge sine Delphi-kundskaber så forfærdeligt mange steder i dansk erhvervsliv, omend der dog ER efterspørgsel efter Delphi-programmører. Jeg selv er flere gange blevet kontaktet af headhuntere, blot fordi der står Delphi et par steder på min hjemmeside.
Delphi er mit foretrukne programmeringssprog og jeg bliver mere og mere begejstret for det. Det er ikke uden grund, at jeg smed mit tv ud omtrent samtidig med, at jeg gik over til Delphi.
> 3) Er det svært at lære at programmere, og hvordan kommer man i gang?
Hvis man er dybt fascineret af programmering, vil lysten drive værket og så skal man nok lære det, i hvert fald hvis man starter med et fornuftigt sprog og griber det an på en fornuftig måde. Efter 1-3 dage har man lavet det første (simple) program og hver eneste dag lærer man noget nyt (sådan vil det være hver dag i 3-4 år) og man kan derfor lave stadigt mere avancerede programmer.
Som hobbyprogrammør skal man regne med 3-4 års ihærdigt arbejde for at blive rimelig god.
Det er dog ikke nok til at bruge det i erhvervsøjemed, da man derhjemme ikke kan få erfaring med netværk, client/server, programmeringsstandarder, dokumentation, samarbejde mellem programmører, versionsstyring, store databaser, grænseflader til Unix og den slags.
Det ideelle - hvis man bliver bidt af programmering - vil være at få en egentlig uddannelse på en højere læreanstalt. I hvert fald hvis man vil leve af det.
Der er i øvrigt stor forskel på at programmere derhjemme for sjov og derude for penge. Derhjemme bestemmer man alting selv og laver alt fra start til slut. Derude får man at vide, hvad man skal lave, og bliver ofte sat til at lave diverse mindre dele af et meget stort program, som man måske ikke kan se noget interessant i. Jeg har ikke selv prøvet at programmere for penge, så måske er rønnebærrene blot sure. :)
Hvis man IKKE er dybt fascineret af programmering, er det svært og surt at lære.
> 4) Findes der nogle internet-sider/ Bøger der er beregnet for nybegyndere?
Der findes ikke noget fornuftigt undervisningsmateriale på nettet. Du skal købe en DANSK begynderbog, som du bør læse det meste af, før du overhovedet bestemmer dig for et sprog. Derefter er det ret overkommeligt at komme i gang. Siden kan du klare dig med engelsksprogede bøger. Det er du i øvrigt nok nødt til, da der ikke findes meget dansk om programmering.
Mit eget mål fra starten var at lære Visual C++. Det viste sig håbløst (af flere grunde) og jeg kastede mig så over VB og kom lynhurtigt i gang der, bl.a. fordi jeg forinden havde programmeret en del i QuickBasic og desuden af en god ven fik en forudgående forklaring af selve programmeringsmiljøet. Sidste år (1998) blev VB i mine øjne for latterlig og jeg skiftede til Delphi, hvilket - netop på grund af kendskabet til VB - var ret nemt. Allerede efter et halvt år var jeg en bedre programmør i Delphi end jeg nogensinde har været i VB. Jeg har stadig en drøm om VC++ og da Delphi på mange punkter ligner VC++ (og Java) er det ikke så håbløs en drøm mere. Men Delphi tiltaler mig mere og mere har faktisk udhulet behovet for VC++.
Jeg vil mene at du som nybegynder i første omgang skal se bort fra VC++ (med mindre du har helt særlige talenter).
Den ideelle fremgangsmåde, som jeg med mine erfaringer kan se det, er følgende:
- Køb en DANSK bog om Visual Basic for absolutte nybegyndere og læs i hvert fald 70-80% af den.
- Hvis du synes det ser forståeligt ud, så køb Visual Basic (den 'billige' Standard-udgave) og gå i krig. Efter et halvt års arbejde er det på tide at købe en fed amerikansk bog om VB, for at komme i dybden med tingene, men kig på 4-5 forskellige bøger, så du finder een der passer til dine behov. Desuden skal du sørge for at gøre dig bekendt med alle de gode steder på nettet, hvor du kan finde tips og kodestumper.
- Hvis du arbejder ihærdigt, vil du efter 1-2 år være klar til at skifte til Delphi. Igen: start med en dansk bog og læs den først. Delphis online-hjælp (dvs. hjælpefilen) er ret nørdet og i starten ikke til nogen hjælp, så du SKAL have fat i en nem bog.
- Husk altid at du skal gøre det meste af arbejdet selv. Får du brug for at spørge nogen, skal du altid have gjort en indsats selv først. Dvs.:
- læs i bøger
- læs i hjælpefilen
- kig på nettet
- eksperimentér
- prøv igen
- og igen.
- Først herefter bør du spørge andre.
Det farlige ved ovennævnte metode er at du risikerer at blive hængende i Visual Basic, fordi det er så (relativt) nemt et sprog. Det gode ved den er at det kan sikre dig en ret smertefri vej til et ordentligt programmeringssprog, og desuden at du kommer til at lære 2 sprog, hvoraf det ene er meget udbredt i erhvervslivet.
Når jeg går så meget op i at du selv skal præstere et stykke arbejde og ikke blot spørge andre, hænger det sammen med at du er nødt til at lære at løse programmeringsproblemer, da du hele tiden vil støde ind i dem. Hvilket skyldes at der er så meget at lære og at du i praksis skal lære nyt hver dag, hvis du skal gøre tilstrækkeligt fremskridt. Men det er kun en fordel, da det er en del af det sjove ved programmering og da det kommer dig til nytte i alle andre former for studier. At kunne sætte sig ned og bakse med et problem i nogle timer et par dage i træk (og lade underbevidstheden arbejde videre med det ind imellem) er nøglen til at blive dygtig.
Vær fra starten opmærksom på at der er 2 ting, man skal lære i forbindelse med et visuelt programmeringssprog:
- Selve programmeringsmiljøet, dvs. det program, som man bruger til at programmere i (også kaldet IDE, hvilket betyder Integrated Development Environment). Det var den totale mangel på pædagogisk forklaring af IDE'et, der i sin tid fik mit forsøg på at lære VC++ til at gå komplet i vasken.
- Selve sproget og dets syntaks (dvs. 'grammatikken' i og brugen af sproget).
Pkt. 1 vil du kunne kløjs i (dag 1, 2, 3 og 4) og dermed aldrig komme videre. Men hvis du sørger for at læse en nem dansk bog først, vil det ikke blive et problem. Og sådan bør det være, for et visuelt programmeringsmiljø er nemlig et kæmpe fremskridt, der har til hensigt at gøre det nemmere og hurtigere at programmere under Windows. Visual Basic og Borlands produkter (Delphi og C++ Builder) er ideelle på det punkt.
Bøger om programmering er nemmest at finde i København:
GAD ved Nørreport (1. sal)
boghandelen over for Rundetårn (kælderen)
GAD på Strøget (kælderen)
Bor du ikke i København, så kig hos den lokale boghandler eller på nettet. Jeg kan ikke understrege nok, hvor vigtigt det er at læse en DANSK bog, FØR du overhovedet går i gang i praksis.
Når bogen skal være dansk, er det fordi du ikke har brug for evt. problemer med det sproglige, når du første gang forsøger for alvor at lære programmering. Da programmering er så specielt (og for mange så svært) et emne, er det vigtigt at rydde vejen for unødige stopklodser.
Programmeringssprog falder man ikke over i computerbutikkerne (hvilket altid har undret mig). ComputerCity har sandsynligvis Visual Basic, men ikke Delphi. Delphi skal købes hos firmaer, der primært leverer varer til erhvervslivet (men som gerne sælger til private også). Find dem på nettet. Ravenholm Computing har i hvert fald Delphi.
Microsoft Visual Basic Standard (version 6) koster ca. 1050 kr. incl. moms.
Delphi Standard (version 4) koster ca. 950 kr. incl. moms
Borland C++ Builder Standard (version 4) koster ca. 950 kr. incl. moms.
Microsoft Visual C++ Standard (version 6) koster ca. 975 kr. incl. moms.
Programmeringssprogene findes i forskellige udgaver: Standard/Learning (for hobbyprogrammører), Professional og Client-Server/Enterprise (for firmaer). Start altid med den mindste udgave, da du ellers vil køre sur i et alt for omfattende og uoverskueligt programmeringsmiljø, fyldt med ting du ikke vil kunne overskue eller have brug for. Den mindste udgave er såmænd overfyldt nok endda. Du kan altid opgradere til en professionel version på et senere tidspunkt (og genbruge din kode uden problemer). Check evt. om du kan få studenterrabat.
Microsoft sælger også Visual Studio, hvilket blot er en samling af Visual C++, VB, Java og Visual Fox Pro (database).
Borland sælger også Turbo Pascal for Windows, men det er et ældre produkt, der kun kan lave 16 bits programmer (til Windows 3.0 og 3.1). Turbo Pascal har været rasende populært og bruges stadig af mange, især i DOS-versionen.
Der findes en Basic-version ved navn PowerBasic (DOS og Windows), men det er ikke umagen værd at lære sig et miljø og et sprog, du ikke kan bygge videre på. Og især ikke da den er lige så dyr som de gængse programmer.
IBM har en VisualAge Basic og en VisualAge C++, men de er ikke særlig udbredte (så vidt jeg ved).
Der står danskere bag både C++ og Turbo Pascal/Delphi:
Århusianeren Bjarne Stroustrup udviklede C++ (på grundlag af C) og er i dag Dept. Head hos AT&T Labs Research.
Anders Hejlsberg udviklede Turbo Pascal og Delphi og var Delphi Chief Architect hos Borland indtil 1996, hvor Microsoft lokkede ham væk. Nu er han beskæftiget med deres Java-software (som har fået en hård medfart, fordi den ikke følger standarden). Senest har han stået bag udviklingen af Microsofts nye opfindelse, C# (C sharp), endnu en MS-variant af Java.
Selvom de 2 gutter er dygtige folk, har de naturligvis udviklet C++ og Turbo Pascal/Delphi sammen med en hel masse kolleger. Men de anerkendes som hovedmændene bag hver deres programmeringssprog.
Når man erindrer sig at Linus Torvalds fra Finland er manden bag Linux, må man sige at Norden har bidraget godt til udviklingen i computerbranchen.
Hvis du er fristet til at forsøge dig med et af de gratis programmeringsprog, du kan finde på nettet, så glem alt om det. Dokumentationen er elendig og du kan ikke finde bøger, der kan hjælpe dig ordentligt i gang. Disse gratis sprog er mest for folk der i forvejen kender et programmeringssprog og gerne vil snuse til et alternativ.
Du nævner at du gerne vil lave bl.a. spil. Spil er meget svære at lave ordentligt pga. de store krav til hastighed, grafik og lyd. Visual Basic dur i hvert fald ikke til det (det er alt for sløvt). Det ændrer ikke ved at du alligevel bør starte med Visual Basic, da du ikke de første par år vil være dygtig nok til at lave spil (igen med mindre du har helt særlige talenter).
Både Delphi og C++ kan bruges til at lave konsol-programmer, dvs. programmer, der kører under Windows, men ikke har den grafiske brugergrænseflade (vinduer, ikoner mv.). Det kan bruges til at lave spil og andre programmer, der skal være meget hurtige.
Programmører, især hobbyprogrammører, er ofte ret fanatiske fortalere for deres foretrukne sprog. Du kan være sikker på at starte en hellig krig, hvis du i en nyhedsgruppe spørger hvilket programmeringssprog, der er det bedste. Det kan derfor være svært at få en objektiv vurdering af sprogenes fordele og ulemper (nærværende redegørelse er heller ikke objektiv). Men generelt betragtes C++ som et hardcore-sprog for professionelle, Delphi som en overkommelig tilnærmelse hertil og Visual Basic som klumpedumpen (der har mere succes end det fortjener). C-folkene ser ned på Delphi og VB, Delphi-folkene ser ned på VB og VB-folkene er (nødt til at være) ligeglade.
Alt det kan man se bort fra og blot bruge programmeringssprogene til det de er bedst egnet til og i den rækkefølge, man kan magte dem.
For ikke at glemme det evt. sidste skridt fra Delphi til VC++, citerer jeg her Bjarne Stroustrup:
How long does it take to learn C++?
That depends on what you mean by "learning." If you are a Pascal programmer, you can easily learn enough of the basic types, control structures, and library functions to be effective at what you were effective at using Pascal. Will it take a day or a week? That depends on you and the approach you take. I have seen both and even wider variations. [...] Compared to the time required to learn to play the piano well or to become fluent in a foreign (natural) language, learning a new and different programming language and programming style is easy.
Bjarne Stroustrup anbefaler i øvrigt at man IKKE starter med at lære C, for derefter at gå over til C++. Start direkte med C++.
Det vanskeligste ved programmering er at forklare det faktum, at så få kvinder finder det interessant.
Venlig hilsen
Finn
Opdateret 10. februar 2001
© 2000-2001 Finn Ekberg Christiansen