F# Is The Best Coding Language Today

If you want to personally pick up a programming language in order to become a better coder in whatever other languages you use, F# is the best overall teaching/coding language you can find.

F# Is The Best Coding Language Today

I make that claim based on three assumptions:

  1. Programming languages are much more than simply a list of features and rules. In the modern era, they're probably much better thought of as an interactive video game where the IDE, extensions, REPL, compilation speed, and lots of other things give an overall developer experience. This experience is a big part of what keeps coders engaged in personal projects and learning (or not)
  2. Most coders are interested in learning how to code in a purely functional manner, but don't know how to do so. (This can be true even of programmers who have been coding in FP for years) Languages that provide a wide range of styles from OO/Imperative all the way to Pure FP allow coders to code "where they are" and then learn to be better coders by cleaning up what they have.
  3. Libraries and the size/temperament of the development community play a big role in the SO/REPL loop, where coders get temporarily stuck and others are able to help them out

If these three assumptions are true, then F#, being a sort of bastard child between Microsoft and OCaml, allows programmers to play in a world where they can learn and change their programming style over time.

// Learn more about F# at 
// http://docs.microsoft.com/dotnet/fsharp

open System

// Define a function to construct a message to print
let from whom =
    sprintf "from %s" whom

[<EntryPoint>]
let main argv =
    // Call the function
    let message = from "F#"
    printfn "Hello world %s" message
    // return an integer exit code
    0
Hello World in F#

Most of the time, when we rank programming languages, we talk about rules, syntax, features, and whatnot. If that's your thing, then my first assumption does not hold true and my entire argument falls apart.

Many programmers want to look at languages simply in terms of external characteristics: the licensing provided, the number of jobs available, and so forth. If your goals aren't also internal, with gradual learning, and being able to move across paradigms, assumption #2 does not hold.

There are those who are strictly DIY. Many libraries are suboptimal for them. Honestly, I don't know many of these folks, but if that's you, assumption #3 fails.

Note: I'm not saying F# is the best language to code in professionally. I'm not saying F# is the best language for all problems. I'm doing my best not to make grandiose claims and instead narrow down the superlative of the title with more nuance. My point is that if you want to personally pick up a programming language in order to become a better coder in whatever other languages you use, right now F# is the best overall teaching/coding language you can find.