Tanker fra en tenkende tenker

torsdag, oktober 20, 2005

Alle bør programmere

Tidligere var programmering noe som var forbeholdt oss IT nerder. Dette er i ferd med å endres og programmering vil bli en grunnleggende kunnskap nesten på linje med å kunne lese/skrive og grunnleggende matematikk.

Programmering har blitt mye lettere tilgjengelig enn tidligere. Det er fortsatt krevende å lage store komplekse systemer, men det er mye som kan gjøres enkelt. Webprogrammering åpnet døren for mange. Enkel HTML syntaks, samt muligheten til å se andre websiders kode gjorde det enkelt å komme i gang. Desverre fra et læringsståsted forsvant mye av dette når mesteparten av koden ble flyttet bak forhenget på serverne.

Vi har alle sett Matrix filmene. Selv synes jeg de var knallgode alle tre, spesiellt eneren og toeren. I tillegg til alt annet denne trilogien hadde å by på, så fanget den også opp tiden med å fremstille hackerne som heltene. De lagde egne programmer som treningsmoduler og en digital rød bimbo. Når et problem måtte løses satte de seg ned og skrev ”the ugliest hack I ever made”. Det å kunne programmere ble fremstilt som en basiskunnskap blant menneskene.

Utvikling kan være svært krevende og avansert. Det er stadig prosjekter som går ad dundas, eller som i det minste sprekker solid på enten tidskjemaet, budsjettet eller funksjonaliteten. Ofte på to eller til og med tre av dem. Betyr dette at utvikling er så krevende at det bør overlates til profesjonelle aktører? Nei!

Når Adam Curry begynte å sysle med det vi i dag kaller podcasting, så prøvde han å overbevise noen utviklere om å lage et program som kunne laste ned lydfilene og dumpe dem ned på MP3 spilleren. Svaret han fikk var alltid at det ikke var noe problem, men ingen hadde tid til å gjøre det. Han satte seg derfor ned for å lage et slikt system ved hjelp av AppleScript og det ble forløperen til iPodder Lemon, et av de mest populære podcatcher programmene.

På jobben sitter en av mine kolegaer nå og lager et enkelt system for å hente ut informasjon fra SuperOffice om hvor vi er i dag og vise det på en skjerm ved kaffetrakteren. Systemet skal gå på en laptop som brukes som server for et annet mini-system. Tanken er at vi enkelt skal kunne få presentert informasjonen uten å måtte gå inn og sjekke. Et enkelt og litt artig prosjekt.

IT-administratorer bør også programmere. Noen gjør det allerede i form av batch filer og script, som f.eks VBScript og Perl. Jeg mener at de heller bør begynne å programmere i et programmeringsspråk som kompileres. Det er enklere og det trenger heller ikke å koste noe.

Åpen kildekode er et godt konsept for hobby brukere som ønsker å raskt sette sammen et program som dekker deres spesifikke behov. Istedenfor å skrive et program fra bunnen av, kan man se på noe som allerede er skrevet og så tilpasse det. Etterhvert får man taket på det og blir kanskje kvalifisert for større oppgaver og systemer.

Selv brukte jeg noen timer i går kveld, samt søndag, til nettopp dette. Jeg har kjøpt et domene hvor jeg skal legge ut noen webbaserte tjenester etterhvert. Et av systemene jeg skal bruke er et php basert system. Programmet skal i utgangspunktet fungere greit, men noe er galt. Jeg må derfor lære meg litt php og prøve å gjøre noen redigeringer for å få det til å virke. Det går egentlig ganske greit, selv om jeg ikke har noe som helst erfaring fra php på forhånd. Jeg er en VB utvikler og bruker Visual Studio.Net fra Microsoft. Endel av konseptene i php var imidlertid gjenkjennelig fra VB6 i gamle ASP (Active Server Pages). Jeg skjønner derfor hvordan det hele henger sammen og kan lese koden uten å ha særlig peiling. Noe rakk jeg å finne ut av, resten av problemet får vente til jeg kommer hjem og får noen ledige timer igjen.

Microsoft har ikke skjønt åpen kildekode ennå, men det er ting som tyder på at de er på vei. Jeg har skrevet litt om dette tidligere, så jeg skal ikke bruke plass på det nå. Det de derimot har skjønt, er at hobbybrukere og andre nybegynnere trenger et enkelt utviklingsmiljø å forholde seg til.

Visual Studio 2005 lanseres 10. november og der er det en gratisutgave beregnet på nybegynnere og hobbyprogrammerere. Den heter Visual Studio Express Edition og kommer i separate utgaver for VB, C#, C++, J# og web utvikler. Programmet inneholder det meste en hobbyutvikler trenger. Dessuten kommer de samme dag med en SQL Server 2005 som også kommer med en Express Edition. Den er gratis og inkluderer også et webbasert rapporteringssystem, kalt Reporting Services. Sammen dekker de mange av de viktigste behovene for nybegynnere. For meg fremstår denne kombinasjonen som så enkel, bra og billig at jeg foretrekker å betale noen kroner fremfor å sette meg ordentlig inn i php og MySQL.

Det er mye en kan mene om Microsoft, og jeg har da også endel meninger om dem selv også. Et område hvor jeg derimot er veldig begeistret for dem er på utviklingsverktøyene. De er ikke alltid ledende, men de er flinke til å gjøre verktøyene enkle og tilgjengelig for oss som ikke programmerer på heltid.

Nå håper jeg bare at Microsoft får øynene mer opp for åpen kildekode, for jeg foretrekker å holde meg til .Net basert utvikling. Noen lovende tegn er det. De sponser DotNetNuke prosjektet, de har eksperimentert med å legge ut noen åpen kildekode programmer som FlexWiki og WiX og hvis de nå etterhvert skjønner at de bør støtte Mono prosjektet så blir det bra etterhvert. Ikke forvent at Windows eller Office blir åpen kildekode, men se heller etter tilleggsverktøy. Et eksempel på det er SharePoint. Der leverer Microsoft et sett med 30 nesten ferdige åpen kildekode applikasjoner som kan brukes sammen med Sharepoint. Tanken er at man selv kan tilpasse dem til sitte eget behov.

Hva skal så vanlige dødelig lage av programmer? Det vet jeg ikke, og godt er det. Poenget er at når en vanlig person trenger å få laget noe, så bør det være mulig for den personen å lage en 1.0 versjon av hva han eller hun er ute etter. Så kan heller de profesjonelle aktørene kaste seg på der noen har laget noe med stort potensiale.

Egentlig er ikke det å programmere et program så mye mer enn å lage et avansert regneark eller en Access database. Det burde alle klare nå, og vi bør oppmuntre de som ikke kan det til å lære det.

4 kommentarer:

Anonym sa...

Igjen glimrer du til med et utrolig bra innlegg!

Anders Brenna sa...

Takk for det. Jeg har hatt litt inspirasjon denne uken, samt noen kjedelige timer på et fly.

Anonym sa...

Du skrev: IT-administratorer bør også programmere. Noen gjør det allerede i form av batch filer og script, som f.eks VBScript og Perl. Jeg mener at de heller bør begynne å programmere i et programmeringsspråk som kompileres. Det er enklere og det trenger heller ikke å koste noe.

Her må jeg si meg uenig. Er det virkelig enklere å skrive i C++/C# osv enn i Perl/Python osv? Hele poenget med slike høynivå-språk er jo at de skal gjøre det enkelt å utvikle enkle applikasjoner, f.eks prototyper, raskt. De tolkede (interpreted) programmeringsspråkene trenger jo heller ikke kompileres når man gjør endringer. Jeg vet ikke helt hva du mente med at det ikke trenger å koste noe, men det tar i alle fall mer tid...

Anders Brenna sa...

Argumentet ditt er godt, så jeg vil ikke si deg direkte i mot.

Jeg mener imidlertid at det er tidsbesparende å programmere i et IDE som forenkler utviklingen ganske drastisk. Dessuten synes jeg det er en fordel å kompilere programmet og kanskje gi det et enklere grensesnitt. At det tar lengre tid er jeg ikkke enig i.

En annen fordel med at administratorer utvikler i kompilerte språk er at det gjør det lettere for løsning å videreutvikle det til et produkt på sikt.