Skal jeg lære meg flere programmerinsspråk?

ninja_languageso.png

Det er en god stund siden jeg første gang hørte noen hevde at man som utvikler bør lære seg minst ett nytt språk i året. Det sies at man bør gjøre dette for å øke forståelsen for programmering generelt, for å øke mengden verktøy man har tilgjengelig, og til sist for å trimme hjernen – og kanskje riste litt løs på fastgrodde ideer (ikke alle er enige).

Så nå må jeg vurdere om det er på tide at jeg også setter meg ned med ett nytt språk, som en del av min .net ninja plan.

Funksjonelle språk

Den siste tiden har jeg hørt mye om funksjonell programmering (i motsetning til imperativ programmering, som er det vi stort sett driver med). Det er i stor grad det nye språket F# fra Microsoft Research som har gjort communitiet oppmerksom på dette, og nå som det er klart at F# blir en del av .net-rammeverket så er dette ekstra spennende – noe jeg er nødt til å sette meg bedre inn i på ett eller annet tidspunkt.

Men F# er mer enn et rent funksjonelt språk – det er et rikt språk som også støtter objektorientering og andre konsepter som vi er mer eller mindre vandt til. Det hevdes derfor at Haskell er et bedre språk å begynne med om man vil lære seg funksjonell programmering. To gode muligheter på dette området altså.

Dynamiske språk

Dynamiske språk er også spennende, spesielt i forhold til hva som skjer med Dynamic Language Runtime (DLR) i .net, og dynamiske elementer i neste versjon av C#. Men fordi det skjer så mye så er det også litt vanskelig å hoppe på de eksisterende, dynamiske løsningene i .net: IronRuby og IronPython. IronPython virker å ha kommet lengst, men jeg har mest lyst til å se på IronRuby. Jeg begynte nemlig å lære meg Ruby for ca tre år siden, har brukt det litt her og der, men trenger en kraftig oppdatering samt noe fornuftig å bruke det til.

En av hovedfordelene med disse språkene, slik jeg ser det, er at de er mere tilrettelagt for å drive test-dreven (TDD) eller adferds-dreven (BDD) utvikling.

The Dark Side

Hva med Java da? Hadde det vært en ide å friske opp den gamle Javakunnskapen. Ved å styrke den vil jeg for eksempel på et blunk kunne doble mitt potensielle jobbmarked. Men nei, jeg er faktisk mye mer interessert i å fokusere på .net – å bli en ekspert på den teknologien. Det er jo derfor jeg sier .net ninja, ikke sant.

JavaScript derimot er av større interesse. Det språket er jo veldig viktig for meg som webutvikler, og selv om jeg bruker det rett som det er, og har gjort det i nesten 10 år, så er det mye jeg ikke kan. Å bruke tid på JavaScript er nok ikke bortkastet. Men i første omgang skal jeg sette meg inn i noen av de kraftige biblotekene, som jQuery.

Andre språk?

Det har vært mye hype det siste året rundt et språk som heter Boo. Jeg har sett på det, men det frister meg ikke. Lua har også blitt nevnt i en del bisetninger i det siste. Jeg kjenner det rykker litt i programmeringsfingrene når jeg leser om det og tenker på mulighetene for å lage lua-scriptbare løsninger.

Et meget spennende språk gutta i Microsoft Research jobber med et Spec#. Her utvider man C# med konsepter som pre- og post-conditions, invariants og lignende, som tilrettelegger for såkalt design by contract. jeg håper og tror at noen av disse tingene smelter over i C# etterhvert.

Men når alt kommer til alt..

Jeg har veldig lyst til å lære meg nye språk. Jeg har lyst til å være en sånn fyr som kan mange språk. Jeg har alltid hatt denne lysten i bakhodet. Ikke det at jeg ikke bruker eller har brukt mange, ulike språk og teknologier opp igjennom min lille karriære, for det har jeg jo.

Spørsmålet jeg stiller meg nå er om det er riktig på dette tidspunktet å sette igang med et helt nytt språk. Og ganske motvillig kommer jeg frem til at nei, det er ikke riktig for meg akkurat nå. Det er så mye annet jeg må sette meg grundig inn i. C# har fortsatt mange elementer jeg ikke behersker fullt ut – f.eks. lambda. Og så skal jeg satse mere på Silverlight og WPF fremover, og det er ganske krevende greier. Nå kan du jo hevde at XAML er et programmeringspråk jeg holder på å lære meg, så det er da noe..

Men jeg skal ta opp igjen dette spørsmålet om en 4-5 måneder. Kanskje stiller jeg meg anderledes da, og er klar for et funksjonelt språk eller to. Time will tell.

Kategorier: .net ninja, Polyglot.
RSS feed for kommentarene. Tilbaketråkk.

Skriv en kommentar

Tillatte tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Torbjørn: La oss anta to ulike definisjoner av Template Method pattern - de to ytterpunkte...

Lars-Petter: Hei igjen. Siden du inviterer til å ta diskusjonen i bloggen, og har tatt deg t...

Torbjørn: Lars-Petter: Det er én måte å se det på. Det er absolutt fortsatt Template M...

Lars-Petter: Hei. Har du ikke i prinsippet her gått over fra Template Method (arv) til Strat...

Christian Abildsø: I alle fall i C#, så føles dette som kode som blir mer fleksibel men vanskelig...

Torbjørn: Hei Henrik, og takk for tilbudet. Ble oppmerksom på Rasberry Pi for under en uk...

Henrik Sandaker Palm: Ang. større hobby prosjekt. Du er som er en slik rakker på programmering har j...

Øivind Nilsen: Slutt å bruke mobilnummeret mitt som eksempel !...

Bjørn Einar Bjartnes: Jeg har også latt meg fascinere av Clojure, uten at jeg har kommet så veldig l...

Bjørn Einar Bjartnes: Sweet :) Jeg tror egentlig jeg liker det som det er, med musikk. Litt av utford...

Mulig relaterte linker

 Hold deg oppdatert

Søk i bloggen

Ferske innlegg

  • Template Method del 4: Multippel arv
  • Template Method Intermesso
  • Template Method del 3: Bare funksjoner
  • Template Method del 2: På vei mot funksjonell programmering
  • Kategorier

  • .net ninja (37)
  • Bøker (17)
  • Diverse prosjekter (35)
  • DSL (10)
  • Erlang (10)
  • F# (5)
  • Hardware (1)
  • Jobb (77)
  • Julekalender (51)
  • kjempekjekt.com (23)
  • LISP/Clojure (33)
  • NNUG / community (60)
  • O/RM & databaser (10)
  • Off topic (116)
  • OO-design/clean code (30)
  • Podcasts (14)
  • Polyglot (77)
  • Ruby (27)
  • Silverlight / RIA (3)
  • Software/verktøy (20)
  • Softwareutvikling (20)
  • Testing / TDD (30)
  • the contiki strip (13)
  • User experience (3)
  • WCF (3)
  • Webutvikling (32)
  • WPF (9)
  • WTF (12)
  • Last ned Wallpaper

    Programmeringsbloggens tøffe skrivebordsbakgrunn med snippets fra ulike språk laster du ned her!

    Abonner via epost

    Om du vil kan du få alle nye blogposter tilsendt til din epost. Abonner nå, det er kjempeenkelt!

    Meta