7 dödsdömda idéer inom IT
De som programmerar datorer måste börja tänka annorlunda. Datorer har i dag mer än nog av beräkningskapacitet och datorminne. En av dem som har allra störst inblick i detta paradigmskifte är Microsofts forskningschef, Andrew Herbert.
Microsoft har fem forskningscentrum med sammanlagt 700 anställda och en budget motsvarande mer än 1,5 miljarder kronor. Andrew Herbert är bas för det europeiska forskningscentret som är placerat i Cambridge.
– På 1900-talet handlade datorprogrammering till stor del om att kompensera hårdvarans begränsningar. Nu gäller inte längre dessa begränsningar, menar Andrew Herbert, och räknar upp sju punkter som han anser är exempel på datorteknik på väg ut.
7. Artificiell intelligens
Sist på listan finns den punkt som ligger närmast i tiden och därför tar vi den först. Det handlar om framtidsvisionen som aldrig infriades: artificiell intelligens. Ett forskningsområde inriktat mot att på konstgjord väg efterlikna hjärnans förmåga att dra slutsatser, planera, lösa problem, förstå naturligt språk, lära sig av misstag och så vidare.
– Men den verkliga världen är alltför komplex för att kunna beskrivas i formella datastrukturer, säger Andrew Herbert. I stället löser vi problemen med processorkraft, minneskapacitet, statistiska metoder och maskininlärning.
Till områden som nyligen fått sådana lösningar hör maskinöversättning och robotnavigering. Tidigare försökte man lära översättningsprogrammen grammatik och de vandrande robotarna hur världen såg ut. Nu låter man datorerna tugga sig igenom gigantiska textmängder och robotarna själva irra runt. På det viset kan de lära sig språk respektive hur omgivningen ser ut.
Kristina Höök, professor i människa-maskin-interaktion vid Stockholms universitet, ger Andrew Herbert rätt. Hon menar att artificiell intelligens har gått från att vara ett enda forskningsområde till att sönderfalla i en mängd mindre: till exempel robotik, naturligt språk, planering, agentteknologi, informationssökning, bildigenkänning, datorspel.
– Inom varje sådant område visar det sig att statistiska metoder fungerar, medan tolkning nästan inte går alls, säger Kristina Höök.
6. Datorskärmen
Andrew Herberts näst sista punkt är att bildskärmen som vi länge känt den – en tv-apparat på ett skrivbord – kommer att försvinna inom kort. Det finns redan platta skärmar, böjliga skärmar, skärmar stora som hela väggar, skärmar små som tändsticksaskar. Dessa och många fler som vi ännu inte kan tänka oss kommer att få den traditionella datorskärmen att verka urmodig.
Men här är Kristina Höök mer undrande. Hon anser att det knappast handlar om en utveckling av skärmarna utan om helt nya typer av datorer.
– IT kryper in i alla saker omkring oss och blir osynlig. Datorerna blir en naturlig del av vardagliga ting, säger hon.
Kristina Höök hoppas att vi kommer använda fler sinnen än synen när vi kommunicerar med dessa nya datorer, och då är det något annat än nymodiga bildskärmar som revolutionerar vårt sätt att se på datorn.
5. Kataloger och mappar
Nära kopplat till datorskärmarna är Andrew Herberts femte punkt: det hierarkiska filsystemet. På datorskärmen syns det som mappar där vi placerar dokument och program. Det är en hierarkisk organisation där mappar ligger i andra, överordnade mappar, som sin tur ligger i än mer överordnade mappar. Systemet tillkom för att ge användarna en lätt igenkännbar metafor: hängmappsskåpet.
– I dag har dock systemet allvarliga problem. Till exempel består en installation av programpaketet Microsoft Office av fler än 45 000 filer, säger Andrew Herbert.
Han spår att det vanligaste sättet att i framtiden ordna sina dokument blir att inte ordna dem alls. I stället kommer vi att förvara dokumenten i en enda hög och sedan söka smart i den. På samma sätt som vi sedan flera år söker på internet kommer vi att googla vår egen hårddisk.
4. Manuell testning
Att Officepaketet består av 45 000 filer visar på ytterligare ett problem med dagens teknik. Att söka efter programmeringsfel i dessa stora och komplexa system blir allt svårare. Ändå förlitar sig programmerarna fortfarande i hög grad på manuella tester av programvara. Men med ökad datorkraft finns nu möjligheten att testa datorsystemen mer systematiskt och automatiskt, tror Andrew Herbert.
Joachim Parrow, professor i datorteknik vid Uppsala universitet, anser att Andrew Herbert har rätt i att detta är ett gigantiskt problem och att formaliserade testmetoder kommer att slå igenom på sikt, men han är inte lika optimistisk inför en snar lösning.
– Förväntningarna är orimliga. Somliga tror att konstruktörerna ska få en trollstav som de kan svinga över sin produkt och vips! så är det säkerställt att den är korrekt, säger Joachim Parrow.
Ett problem är att när ett program konstrueras vet man inte exakt hur det kommer att användas, och därför har man oftast inte upprättat någon fullständig kravspecifikation.
– Att verifiera mot kravspecifikationer blir då poänglöst, säger Joachim Parrow.
3. Virtuellt minne
Förr, när datorns arbetsminne var en starkt begränsad resurs, kunde man öka storleken på minnet med så kallat virtuellt minne. Man lurade datorn att den hade mer arbetsminne än den egentligen hade. Det skedde genom att data skyfflades fram och åter från hårddisken.
I dag är inte minnesstorleken längre något avgörande problem. Minnena har blivit en miljon gånger större på 30 år. Men kommunikationshastigheten har bara ökat hundra gånger och åtkomsttiden inte mer än 10-20 gånger.
– Att hantera väntetiden är det största problemet för en datorkonstruktör i dag, säger Andrew Herbert. Och virtuellt minne ökar bara väntetiden.
2. Lågnivåspråk
En av de största källorna till programfel är att det mest centrala minnet i processorn, den så kallade stacken, hanteras fel. Om datorn programmeras i ett snabbt och enkelt så kallat lågnivåspråk måste nämligen programmeraren själv hålla reda på hur minnet fungerar. Om däremot programmeringen sker i ett långsammare och mer sofistikerat högnivåsspråk behöver man inte bry sig om detaljerna i minneshanteringen.
I tillämpningar som kräver snabba eller små program har lågnivåprogrammering hittills varit det enda alternativet. Men nu anser Andrew Herbert att kapaciteten hos processorerna och minnet är sådan att det inte längre spelar någon roll. Programmerarna bör gå över till högnivåspråk. Lågnivåspråken är på god väg att bli urmodiga.
1. Enkelspårig programmering
Första punkten i Andrew Herberts lista kan verka både abstrakt och intern. Den handlar om övergång från sekventiell programmering (en sak i taget) till parallell (flera saker samtidigt). De kraftfullaste processorerna som säljs i dag kan göra flera saker på en gång. Man säger att processorerna kan exekvera flera trådar samtidigt.
Men om dessa parallella processorer ska bli effektivare än sina enkla föregångare måste det som förut kördes enkelspårigt bli parallellt.
Detta kan på ytan inte verka som någon stor sak. Men detta är vårt årtiondes största paradigmbyte för hela datorindustrin. Det menar i alla fall Erik Hagersten, professor i datorarkitektur vid Uppsala universitet.
– Jag tycker att Andrew Herbert underskattar vikten av just detta skifte och att han i sina övriga sex punkter räknar upp små evolutionssteg drivna av teknologiförändringar.
Det kommer att behövas nya algoritmer, nya språk, nya kompilatorer, nya felsökningsprogram, nya teststrategier, nya prestandaverktyg och mycket mer.
– Parallell programmering är ökänd för att vara utomordentligt svårt, och risken för att göra fel är betydande, säger Erik Hagersten.
En del forskning inom detta område utfördes på 1980-talet, men då för massivt parallella superdatorer. Nu kommer det att krävas mängder av forskning för att bygga en ny infrastruktur för utveckling och testning av parallella program på vanliga persondatorer, tror Erik Hagersten.
– Det här är pudelns kärna. Jag skulle egentligen kunna tänka mig att stryka resten av Herberts punkter.
Ute
- enkelspårig programmering
- lågnivåprogrammering
- virtuellt minne
- manuella tester
- kataloger och mappar
- datorskärmar på skrivbord
- artificiell intelligens
Inne
- parallell programmering
- högnivåprogrammering
- stort arbetsminne
- formaliserade testmetoder
- smarta sökprogram som Google
- skärmar överallt
- statistik