Jeg synes, at man rundt omkring på forskellige blogs kan spore en vis tvivl om, hvorvidt vi virkelig har brug for alle de programmeringssprog, der skyder frem (se f.eks. Martin Fowler, Daniel F og Neal Ford).

Jeg tror på, at man såvidt muligt skal bruge det rigtige værktøj til at løse en opgave.  Mange inklusive undertegnede lader sig styre af følelser og "religion" ved valg af programmeringssprog.  Det er i bund og grund usagligt og useriøst.  Hvis Excel og VBA er det rigtige værktøj til opgaven, så skal man vælge det.

Derfor er det vigtigt, at man er dygtig til et bredt udvalg af programmeringssprog, så man har et arsenal at vælge fra.  Ellers ender det med, at man strækker sit favoritværktøj til det yderste for at kunne løse en specifik opgave.  I mine øjne er det ligegyldigt, om man bruger VB.NET eller C#.  Man kan have sin favorit, men i bund og grund kan de to sprog det samme.  Det var noget andet med f.eks. VB6 og Visual C++.  De tog værktøjer havde vidt forskellige anvendelser.  Netop VB6 er et godt eksempel på et værktøj, som blev brugt til meget andet end det var beregnet til.  VB6 havde så mange muligheder for at lave lækre memory leaks og andre mærkelige ting, at det i nogle henseender faktisk var sværere at bruge end Visual C++.  Men den typiske VB6 programmør kunne ikke andet.  Til gengæld var den typiske VC++ programmør for stolt til at nedværdige sig til at bruge VB6, selvom det havde været det rigtige valg i nogle tilfælde.

Det stiller høje krav at være god til flere sprog, men de fleste mestrer allerede adskillige sprog som C#, VB.NET, C++, JavaScript, VBS, PowerShell og SQL.  Ellers kommer man jo ingen steder.

Nu har vi så fået F#.

Jeg tror, det er umagen værd at lære F# af én bestemt grund: Parallel processing.

Funktionel programmering har eksisteret i mange år.  Fordelen for mig ved F# ift. f.eks. Erlang er integrationen med .NET.  F# er som udgangspunkt funktionelt, men man kan kommunikere med anden .NET kode, hvis man har behovet.

Man hører mange andre argumenter for at brug F# - herunder god performance.  Jeg tror gerne på, at F# kan give bedre udviklerperformance på nogle typer opgaver som f.eks. matematisk opgaver, som bestemt er relevant for aktuarer.  Mht. runtimeperformance er jeg lidt mere tvivlende.  F# kode kompileres til IL-kode, og IL er i bund og grund objektorienteret.  Så for at kunne lave lækre funktionelle ting som f.eks. ufuldstændige funktionskald (eller hvad det nu hedder på dansk), bliver IL'en virkelig sær.  Det tror jeg vil gå ud over performance i de fleste tilfælde, medmindre selvfølgelig at JIT-kompileren kan gennemskue det og optimere.