How to talk to F# developers
Every language comes with its own slang and background notes you should know about. Don’t just nod and agree or fake a smile as you frantically google the answer.
What is the F# origin story?
There’s a lot more to it, but let’s sum it up in three steps:
- .NET (or the variations that became .NET) was created by Microsoft. .NET is a software development framework — a controlled environment where software can be developed, installed and executed
- At this time, there was a strong functional programming movement, which was still stuck in academia
- F# was created to incorporate functional programming with .NET and specifically give C# developers an extra tool to play around with
Who is Don Syme?
Don is the Don of F#. Don is the lead designer and architect of F#. Previously he had experience in object-oriented languages, including C++, Java as well as a focus on the JVM thesis work. Don is currently a Principal Researcher at Microsoft Research, Cambridge.
Why use F#?
F# is a strongly-typed, functional-first programming language for writing simple code to solve complex problems. F# is made to be more correct, concurrent (with its built-in libraries) and complete (you can run it anywhere).
What does this actually mean?
It means that you can prevent common errors as values are immutable by default. Immutable can be good as you need to be explicit about changing a state. There are less ‘accidents’, where states change when you didn’t mean for them to. This means no nulls!
There are also type providers, which help reduce the amount of code and maintenance needed to access data. You set up assemblies that connect to the F# compiler, meaning you get ‘live’ data, and you can generate entire type systems to work with as you code.
It is statically typed, which means type-checking is done at compile time, rather than run time. This aides processing speeds.
All in all, F# is built to reduce the time-to-deployment.
Why is Fable brought up?
Why is Xamarin brought up?
Xamarin bridges the mobile development world. It can convert your entire existing Android or iOS development to C# or F#. Then code with C# or F# by deploy on both.
What is Suave?
A lightweight, non-blocking web server library. ‘Non-blocking’ is when you build a single thread to handle multiple requests at the same time. This makes it very scalable, rather than having multiple threads handling each request, which takes up more space.
What is Giraffe?
An ASP.NET Core web framework. If you’re interested in building web APIs, you’ll want to look into Giraffe.
Of course, there is more we could blab on about but this is just the start if you are looking for quick bites. If you are starting F# and want some more resources, we recommend the following
- This Cheat Sheet
- Previous F# talks from F# foundation to A Simple Bid Recommendation Engine Using FParsec and CodeDom all available here
- MeetUps! F#’s community are renowned as a welcoming bunch. Here’s a London fav where you can access all previous recordings of their talks
- Test us. Ask as a curly q and we’ll do our best to give you the simplest answer
👍 For news and articles from Skills Matter, subscribe to our newsletter here.