Informatisk julekalender: Luke 15


onsdag 15. desember 2010 Julekalender

mccarthy

Julenissen du ser på bildet heter John McCarthy, og er den første personen i adventskalenderen som fortsatt lever. Han er en amerikansk ekspert på kognitiv vitenskap, et krysningspungt mellom filosofi, lingvistikk, psykologi og informatikk. McCarthy definerte begrepet kunstig intelligens (Artificial Intelligence, AI) i 1955, og er opphavsmannen bak programmeringsspråket Lisp. Han definerte også standarden for hvor langt skjegg man bør ha før en kan kalle seg en ekte Lisp-utvikler.

Jeg er ikke kvalifisert (kun et par vektall) til å si så mye om kunstig intelligens, men McCarthy har vært en av de viktigste innenfor feltet, og har sagt mye som også kan inspirere utviklere som meg. Som for eksempel:

“Program designers have a tendency to think of the users as idiots who need to be controlled. They should rather think of their program as a servant, whose master, the user, should be able to control it. If designers and programmers think about the apparent mental qualities that their programs will have, they'll create programs that are easier and pleasanter — more humane — to deal with.”

Lisp

Lisp er det nest eldste høyere-nivå språket som fortsatt er i aktivt bruk i dag, bare slått av Fortan. McCarthy publiserte Lisp i 1960 i en demonstrasjon av hvordan man kan lage et programmeringsspråk med kun noen få operatorer og en notasjon for å lage funksjoner – direkte basert på Lambda Calculus (luke 14).

Lisp var først ute med mange, nye ideer, blant annet tre-strukturer, dynamisk typing, garbage collection og rekursjon. if-then-else strukturen, som man nå tar for gitt som et grunnleggende element i alle språk, ble også oppfunnet av McCarthy. Det var derimot vanskelig å implementere språket med datidens kompilatorteknikker og hardware, og ytelsen var dårlig. Dette førte til at man utviklet egne Lisp-maskiner, dedikert til å kjøre programmer i Lisp. Kraftigere maskiner gjorde etterhvert dette unødvendig, og Lisp er i dag ikke noe tregere enn andre språk (bare for å slå det fast, om du har hørt noe annet).

Historikken, og en serie av tilfeldigheter, har likevel ført til at språket ikke ble så populært som Fortran, ALGOL, C og etterfølgerne – kun innenfor kunstig intelligens var Lisp det naturlige valget, uten at det er noe ved språket som gjør det spesielt egnet for det feltet. Nyere språk som Java, Python og Ruby har inkorporert elementer av Lisp, og med Clojure ser vi nå muligens at tiden endelig er inne for Lisp, som i alle fall i mitt hode er bedre enn andre programmeirngsspråk.

Vil du bli inspirert kan du f.eks. lytte til dette podcastet jeg nettopp fant på ITConversations hvor Phil Windley intervjuer Peter Seibel om boken Practical Common Lisp.

Diverse

I 1961 var John McCarthy den første til å foreslå at time-sharing av datamaskiner ville kunne lede til en fremtid hvor datakraft og programvare ville kunne bli solgt gjennom samme forretningsmodellen som vann og elektrisitet. Denne ideen ble populær på 60-tallet, men interessen dalte på 70-tallet da det ble klart at maskinvaren, programvaren og kommunikasjonsteknologien på den tiden ikke var klart for modellen. Det siste tiåret har derimot ideen dukket opp igjen i konsepter som ASP og Cloud Computing.

Til slutt et lite sitat for å minne oss på hva vi vet, og for å inspirere oss til å tenke på hva som kan være mulig:

“It's difficult to be rigorous about whether a machine really 'knows', 'thinks', etc., because we're hard put to define these things. We understand human mental processes only slightly better than a fish understands swimming.”


comments powered by Disqus