Is F# a language for me and my purposes?

Hey F# community!

i am not a programmer, i am a system administrator with a small company, who wants to learn how to develop software.

My main focus would be windows based, so a .Net language would be perfect here.
I looked into C#, but i really really can’t stand the syntax. F# on the other side lookes appealing to me.
My question is: What can F# do? F# is always listed as a general purpose language, but can it be more detailed?

If i want to build the following, could f# handle it?

  • A Monitoring solution for Windows based clients and servers with an agent installed and a webfrontend for administration. So mainly backend, client and webfrontend development. Can F# do all of this?
  • A web based ticketing tool in Kanban style with drag&drop.
    Same as above, backend logic and webfrontend.

English is not my main language, so i hope you all understand my questions :slight_smile:
Greetings,
Nopp

F# is capable of everything you listed, as well as:

  • With the use of Fable, F# can be transpiled into JavaScript for Web-Browsers / Node;
  • With the use of Xamarin, F# can be used for Mobile App development;
  • F# works with ASP.NET and ASP.NET Core out-of-the-box, but things like Suave and Giraffe make life easier;
  • F# can be used with WPF;

So, to summarize: yes, F# can do all of that.

Thank your for your fast answer!

Is there any book or tutorial which step-by-step teaches F# and functional programming itself?
F# is mainly functional i suppose…

I don’t know if there’s a “one-stop shop” for it, but there are a couple I’d recommend right out of the gate:

I would start with Isaac’s book (first one), then move to the one Scott wrote. Scott’s goes much deeper into doing Domain-Driven Design (DDD), whereas Isaac’s will get you going with F# very quickly. (I also recommend you do the projects in Isaac’s book, those are where the real learning happens.)

Thanks for the recommendations.
So, is the book by Isaac for complete newcommers, who just start with this book, with no experience in programming`? If yes, this book’s for me :slight_smile:

Of that, I’m not sure of. I used Isaac’s book with a fundamental understanding of a half-dozen languages.

If you want to start from scratch, I’ll shamelessly self-plug my blog-series where I go through an introduction to programming and solving problems, using F#. The series is aimed at people with no fundamental understanding of programming, and it also forces you to do a bit of research on some things on-your-own, which might be helpful in your learning.

After you’ve followed part of that series (probably the first 3-5 posts) you should be ready for Isaac’s book, I would think. (Though, it might not be a “super easy” going. :wink: )

I want to give you a realistic answer

Yes F#, can build what you want, it is a general purpose programming language, it can build almost anything

It will take you, realistically, years of learning and practicing, to build those two tools, taking into consideration you are not a programmer
This is not an issue in F#, this is an issue with programming, it takes more time than most people expect, especially if you want to do it correctly

For monitoring windows clients, i recommend you focus on powershell and building command line tools and reports using a database and SSRS

For the web based ticketing, there are many of great solutions, download one, or subscribe to one of the many amazing cloud services

Do learn F#, it is an amazing language, do build a project with it to practice what you learn, but do know it will take you time to build something complex and usable, in F# or any other language

Thanks your your reply, i appreciate it.
I just want to clarify, that i don’t want to implement those tools on my own. Those were just examples popping into my mind.
I want to brighten up the portfolio of my company and adopt a language to it, so i can recruit some colleagues in the future.
I really want to give F# a try.

Thanks all :slight_smile:

Take a look at the excellent https://fsharpforfunandprofit.com