Fsharp

Fsharp, beter resultaat met minder code

​Wat ik zo leuk vind aan F#? Om wat nieuwe technieken uit te proberen, die ik niet via mijn huidig project tegenkwam, begon ik vaak een hobbyproject, meestal een game. Op een gegeven moment wilde ik een stukje Artificial Intelligence wat sneller kunnen bouwen, zonder last te hebben van allerlei technische minidetails waaraan je in C# nooit echt ontkomt. Ik herinnerde van mijn studie dat functioneel programmeren hiervoor zeer geschikt is. Nu zat F# net in Visual Studio, en zo kwam FSharp bij mij in beeld. Een beetje leren ging niet, dus daarom heb ik een boek gelezen.

Uiteindelijk heb ik de hele game-server herschreven in F# en het eindresultaat had slechts 2/3 aan coderegels en vrijwel geen bugs, vergeleken met mijn eerdere C# versie. Je kunt een hoop afdingen op die vergelijking, maar het goede gevoel van F# blijft wat mij betreft overeind.

F#: minder code, minder bugs, betere performance

Later heb ik mij nog veel verder verdiept in de taal. Wat blijkt? Als je Fsharp eenmaal onder de knie hebt kun je niet alleen in minder regels hetzelfde doen als in C#, maar ook nog eens met minder bugs en een betere performance. Want F# is echt anders dan C#. Het is strenger en tegelijk flexibeler, en bovendien zeer geschikt voor parallel programmeren op een eenvoudige manier. Null-pointers mag je niet maken in F#, dus je krijgt hier ook geen exceptions van. En als je de afwezigheid van data op een andere manier definieert, dan moet je er wat mee doen, want anders komt het niet door de compiler.

Het enige waarin F# nog niet sterk is, is in de tooling. ASP.NET, WF, WPF etc. integreren een visuele tool met bijvoorbeeld C#. Dat heb je nu nog niet met F#, althans, niet via Microsoft. Maar voor backend systemen is F# prima geschikt. Het is bijvoorbeeld heel eenvoudig om een WCF service te maken.

Fsharp, een nieuwe favoriet

Er staan ongeveer 30 programmeertalen op mijn CV, en F# is zeker één van mijn grootste favorieten, en niet alleen omdat het nog nieuw voelt. Mijn focus en werkzaamheden liggen toch vooral op grote, Fsharp fundamentals workshopcomplexe backend systemen, met miljoenen klanten en duizenden hits per week, en ik denk dat F# een interessante programmeertaal is om iets toe te voegen, dat C# niet heeft.

Ik zal verder zeker Fsharp aanbevelen aan ieder die het wil horen. Ik ben er absoluut van overtuigd dat deze taal toekomst heeft in grootschalige complexe omgevingen, die maatwerk, hoge performance en hoge kwaliteit nodig hebben. Kijk hier voor meer Fsharp blogposts van Frank Joppe: F# Cafe

Frank Joppe, ontwikkelaar