Azure Notebooks now support F#

Last week I blogged about the availability of the new Data Storage and Data Science workloads in Visual Studio 2017 RC. The Data Science workload specifically provides support for the following:

These three languages and their corresponding stacks cover just about every data processing, technical computing, analytics and machine learning scenario imaginable.

For the past few months, the free Azure Notebooks service has supported R and Python. We are pleased to announce the availability of our first edition of preview support for the F# language to match the Visual Studio Data Science workload.

Azure Notebooks

In 2015 we added Azure Notebooks to Azure ML Studio, a powerful canvas for development and deployment of Machine Learning models.   Azure Notebooks are based on the open source Project Jupyter, a toolchain that allows you to create and share documents that contain live code, equations, visualizations, and explanatory text. Azure Notebooks offer free-for-use execution of notebook content, access to high-performance data center resources, and allow you to share your notebooks with friends and colleagues with a single link.

F#

F# is an open source, cross-platform language well suited for notebook-style programming.  One of the key characteristics of F# is its ability to span the spectrum from scripting (including notebook-style literate programming) to large-scale, robust software development, including web programming and cloud service implementation.  F# executes as native code through .NET compilation and interoperates with all C# and .NET libraries.  A huge package system of .NET libraries is available through NuGet, many of which are useful as components in analytical services.  Through its indentation-aware syntax and type inference, F# approaches the succinctness and clarity of Python, while remaining a strongly-typed programming language suitable for writing accurate, robust code.  While F# usage is smaller than Python and R, F# brings a unique blend of characteristics to the Cortana Intelligence and Machine Learning toolchain, and can interoperate with these languages either directly or through service implementations.

Through a collaboration with the F# community and F# experts at Microsoft, we have been able to add F# support to Azure Notebooks.  To try out your first F# notebook, please see our notebook:

  • Introducing F# and Azure Notebooks
    • Click the notebook
    • Sign in with your Microsoft account (Outlook/Hotmail/Xbox/…)
    • Click the Open in Jupyter button
    • Run the whole notebook with “Cell | Run All” or
    • Run one cell at a time using Shift-Enter

If you know F#, and would like to learn more about Azure Notebooks, please see:

F# Jupyter Kernel

Today’s release includes the ability to edit and execute F# code in Azure Notebooks, including integrated markdown. Execution is through Mono in Docker containers on Linux (Ubuntu). This release includes some limited in-browser auto-complete support. We plan to roll out further improvements to our F# support incrementally – please send us your feedback and issues.  We also plan to add more samples and content.  We are certain that Azure Notebooks will be a popular way of surfacing F# content to broad audiences.  If you are working with F# in the data science area and would like to share some of the notebooks you create with us, please either link them in the comments below or email nbhelp@microsoft.com.

F# support in Azure Notebooks is a fantastic example of open source collaboration and is built on the hard work of the F# community including the open source components iFSharpFSharp.Compiler.ServiceFsLabMathNet.NumericsPaketMono and of course the F# language and compiler itself, as well as Jupyter, Docker and Linux.  The effort to bring F# and Jupyter/iPython closer together started with Richard Minerich and Peter Rosconi at Bayard Rock (github). Microsoft also contributed to iFSharp. Many thanks to all the contributors who have contributed to these components.

Conclusion

With the addition of F# to the Azure Notebook service, you have a well-rounded playground for various data processing and analysis scenarios. You can:

  1. Learn Python, R, F#
  2. Give a class or seminar to 100s of people with zero installation
  3. Take one of the various Machine Learning courses
  4. Build ML models and deploy them to Azure for production
  5. <your idea here!>

So take the sample F# notebook for a test drive and see what this powerful language can do for you!

Support & FAQ

General FAQ: https://notebooks.azure.com/faq

Filing bugs on github: https://github.com/Microsoft/AzureNotebooks

Direct mail to team: nbhelp@microsoft.com

User Voice: https://visualstudio.uservoice.com

Shahrokh Mortazavi, Partner PM, Visual Studio Cloud Platform Tools

Shahrokh Mortazavi runs the Data Science Developer Tools teams at Microsoft, focused on Python, R, and Jupyter Notebooks. Previously, he was in the High Performance Computing group at Microsoft. He worked on the Phoenix Compiler tool chain (code gen, analysis, JIT) at Microsoft Research and, prior to that, over a 10 year period led Sun Microsystems’ Code Generation & Optimization compiler backend teams.