It’s been over a year since I started my Journey into F#. In this time, I have gained a lot of Experience in both the language and the community. I have also finished what is now one of my favorite Technical Books — Expert F#. I can now say that I have a good grasp of the Language. I’ve even been on a few podcasts like Functional Geekery and Developer on Fire.
F# is not like C# in many ways but more importantly the F# Community and Ecosystem is different from the C# Ecosystem. There are definitely overlaps because they are both part of the .NET Ecosystem. However, The F# Ecosystem has a strong emphasis on Open Source and community
The F# Community is mainly a group of passionate people of all skill levels that come together to develop the platforms, tools, libraries.. Everything. Microsoft for the most part isn’t directly involved in F#
This distinction means that F# is for the community and owned by the community. Historically, It put the F# Ecosystem in a awkward middle position. Most Non-Microsoft folks saw the Language as too “Microsofty” and even the “Microsofties” saw it as “Fringe” and were only interested in what Microsoft blessed which is C#.
However, things are changing rapidly.. starting from Microsoft. The current change that is the shift away from their “Windows-only” focus has rippled from the head across the company to the ecosystems that they play in. Now you have Microsoft as a Member of the Linux Foundation, Google joining the .NET Foundation, .NET becoming Cross platform and open source with .NET Core, Powershell running on Linux, SQLServer running on Linux. We are in a crucial moment in .NET.. nay Software Development history.
All this is causing a .NET Renaissance and many people both non-.NET and traditional .NET Developers like myself are starting to notice. Add the current wave of interest in functional programming and you find that many people are now looking at F# than ever before
As one of the people who has a deep love for the F# Language. It makes me sad when I don’t see support for something in F# and that’s normal because we expect Microsoft to push F#. After all its part of the .NET Ecosystem especially when we are coming to it from C#.
Where do I start from?
The F# compiler is an awesome piece of software. Every time Its excellent type system kicks in, I’m in awe. It feels a bit like having a conversation with an AI about your code. It will infer things you didn’t think of ahead of time. In fact, You could stumble your way to a solution and the Compiler will guide you. That said, I assumed that I would not be able to comprehend the code talk less of contribute to it.
I have been feeling this strongly about it for a while now and have always desired to contribute to it somehow. When the F# mentorship program started I was eager to get someone from the community to help me understand the F# Compiler and Tools. And thankfully, I was paired with Avi Avni and he was gracious enough to help get the compiler development tool chain setup so that I can run a local build of the compiler and editor. I was able to Launch VS in VS and debug the local build of the Tools
It might seem daunting and it’s a big commitment. However, irrespective of your skill level, there is a Project on Github (Like Nikeza) you can help with even if it’s just issue triaging. And by contributing we not only improve our skills, we also make the F# Ecosystem what we want it to be. There is no “Company” we have to wait for to build functionality/framework we want. It’s very busy people like you and me who have lives that are giving this labor of love. For the love of Language, For the love of Ecosystem, For the love of the Community.
PS - In my next blog post which is coming soon, I will show how to contribute to the F# Compiler/Tools. And maybe.. Just maybe.. I could build cool stuff like the Slack FSI bot