F# as a Better Python

Python is everywhere. It's used for web development, data scripting and exploration, and it is the primary language used for machine learning.

However, Python also suffers some problems in these domains: it lacks static types, setting up and upgrading environments is not straightforward and error-prone, and it doesn't lend itself well to functional programming paradigms despite one of its core success areas - machine learning - being very function-oriented. Despite these issues, Python is still very productive and has an incredible tooling and library ecosystem that can be leveraged by other languages.

F# solves many of the problems that Python developers have to live with. It has static types that don't sacrifice the brevity that Python developers love. F# has incredible support for web development. Setting up development and deployment environments with F# and .NET Core is simple, straightforward, and predictable. F# is also a functional programming language with advanced tools for abstraction that allow for extremely convenient - but safe - computations over large data sets. Finally, F# and .NET can "plug in" to the Python ecosystem, such as Jupyter and Tensorflow, letting you leverage the amazing work of another ecosystem instead of being forced to abandon it.

By the end of this session, you should have a solid understanding of how F# can be a better Python, and how you can apply that knowledge in your daily work.