Progressive f# tutorials nyc don syme on keynote f# in the open source world
Upcoming SlideShare
Loading in...5

Progressive f# tutorials nyc don syme on keynote f# in the open source world



F# is a powerful open-source language which Microsoft, other companies and the F# community all contribute to. In this talk, Don will discuss how the “F# space” has recently opened up ...

F# is a powerful open-source language which Microsoft, other companies and the F# community all contribute to. In this talk, Don will discuss how the “F# space” has recently opened up significantly in interesting ways. F# now includes contributions that range from Cloud IDE platforms, Cloud Compute frameworks, Data interoperability components, Cross-platform execution, Try F#, MonoDevelop, and even Emacs editor integration with surprising tooling support, as well as the Visual F# tools from Microsoft and the broader NuGet package ecosystem. Don will also talk about some of the latest contributions from Microsoft Research, including new type provider components for F#, and describe how his team work with the Visual F# team and other teams around Microsoft. There will also be demos of some fun new stuff that’s been going on with F# at MSR and the community.



Total Views
Views on SlideShare
Embed Views



4 Embeds 218 213
http://smash 2
http://smash2 2 1



Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Progressive f# tutorials nyc don syme on keynote f# in the open source world Progressive f# tutorials nyc don syme on keynote f# in the open source world Presentation Transcript

  • Welcome! Wendy Devolder, SkillsMatter
  • F# in the Open Source World @dsyme, Principal Researcher, Microsoft Research F# Community Contributor
  • This talk has some slides provided by other people I’ll try to remember to tell you when that’s the case
  • Agenda A tour through our broadening horizons Ecosystems, Exosystems and The Digital World Some initial thoughts on a new F# open initiative
  • Part I F# is changing… – …in subtle but important ways F# runs on many platforms “F# is for Windows”
  • Overview F# is changing… – …in subtle but important ways “F# has many contributors” “Microsoft makes F#”
  • Overview F# is changing… – …in subtle but important ways “F# is one language with many tools” “F# is part of Visual Studio”
  • Overview F# is changing… – …in subtle but important ways Many perspectives One perspective (Microsoft’s)
  • Old think…
  • F# Language Visual F# Tools Visual Studio, . .NET, SDKs, Tools Xamarin Studio F# Open Source Group F# Community Groups F# Software Foundation … New think…
  • Why do Microsoft contribute to F#?
  • functional-first = simple code to solve complex problems = improved time-to-market for code- heavy programming
  • better programmability = better platforms = make money
  • “functional-first” = “simple code” Let’s just remind ourselves about that…
  • Now let’s look more broadly…
  • Tour: Core Components
  • F# open source group e.g. F# Compiler “Open Edition”
  • F# 3.0 fsharp.github.c om/fsharp Apache 2.0 license Mac, Linux, Windows, Browsers, Android, iOS Compiler, Library, Build, F# Interactive, Compiler API Run by the F# Open Source Group
  • Tour: Libraries and Packages
  • Ecosystem Exosystem
  • 11,500unique packages Windows, Mac, Linux
  • FSharp.Data FSharp.Charting FSharpx ExtLib
  • Latest news: Data Frames for F# BlueMountain Capital, contributing to F# open source work
  • Tour: IDEs
  • F# in Emacs
  • Fantomas Ctrl-K Ctrl-F Code Formatting for F#
  • FSharpBinding F# AddIn for MonoDevelop and Xamarin Studio
  • New: Tsunami Scripting Tools demo videos Can also be embedded, consulting available
  • Upcoming:CloudSharper Copyright © 2004-2013 IntelliFactory F# Development Environment in the Cloud Full F# language support Multi-project solutions Web and mobile Apps Syntax highlighting On the fly type checking Interactive exploration Integration with data Support for type providers
  • Tour: Web and Service Programming
  • Demo: F# + ASP.NET in Xamarin Studio
  • F# to JS via F# quotations Community made, open-source Open source license TypeScript Type Provider for interop
  • Demo: FunScript
  • Mature, enterprise-ready Write all your server+client code in F# Get a complete web or mobile application Interface with any client-side JS library via F# Powerful functional web abstractions Automatic resource management Safe URLs, type-safe URLs and much-much more… WebSharper Copyright © 2004-2013 IntelliFactory Develop applications with Less code - 50-90% less Quicker to develop – on average we find 2-3x Easier to maintain – Significant $$ savings #websharper
  • Tour: Cloud Programming
  • Amazon Web Services .NET SDKs (Apache 2.0)
  • Azure .NET SDKs (Apache 2.0)
  • A big data framework for private and public clouds
  • Tour: Building, Mocking, Testing, … FAKE, Moq, Foq, Nunit, XUnit, TestSpec, FsUnit, …
  • Tour: GPGPU Programming search on nuget for GPU or CUDA! search on google for “C# GPGPU”
  • Alea.cuBase Complete solution to develop CUDA accelerated GPU applications in .NET – Based on LLVM and CUDA 5 technology – Uses F# code quotation – Source code solution – No wrappers, no post build process to transform IL code – Our base technology for GPU projects Dynamic code generation GPU algorithm scripting Industry grade performance Rapid development Solid framework for reusability Advanced CUDA programming
  • Tour: Math and Statistics Packages See Search on nuget for statistics Math.NET, ExtremeOptimization, F# for Numerics, FCore, NMath, …
  • Math.NET Numerics A classic F# exosystem project Some latest news
  • Part I: Summary F# is open source, cross-platform with many contributors – The core compiler and library are done at Microsoft using a “code drop” model – The community are OK with that The F# Exosystem is big, rich, active and multi- faceted
  • Part II From Broad, to Really, Really Broad
  • Recap: The Information Revolution
  • All your types are belong to us…. types
  • SQL 01/10/13 54
  • CSV 01/10/13 55
  • JSON 01/10/13 56
  • XML 01/10/13 57
  • OData 01/10/13 58
  • Hadoop/Hive 01/10/13 59
  • World Bank 01/10/13 60
  • Azure Data Market 01/10/13 61
  • WSDL 01/10/13 62
  • WMI 01/10/13 63
  • Freebase 01/10/13 64
  • R 01/10/13 65
  • TypeScript 01/10/13 66
  • Matlab 01/10/13 67
  • Update: RProvider BlueMountain Capital Open source, commercially sponsored community provider for interop with R – discovers installed R packages – Access > 2,000 R packages – projects them as .NET namespaces – underneath the parent namespace RProvider r provider f#
  • Demo: F# to R
  • Part III Concluding Thoughts
  • .NET + F# Compiler + Library Library Library Library Library Library Library Current Situation
  • .NET + F# Compiler + Library Library Open Library Open Library Open Library Library Future Situation? “FBase”
  • .NET + F# Compiler + Library Librar y Math.NET Numerics FSharp. Data FSharp. Charting ExtLib v2 Rx … Librar y Future Situation? “FBase” Characteristics? • “Open Source and Free” • “Multi Platform “ • “Approved by FSF Working Group(s)” • “Just a Combination” • “Elements Designed for Coherence” • “One Combined Nuget Package” • “Stable/Beta/Alpha Channels” • “Clear License(s)” • “No Silly Duplication of .NET/Mono”
  • To discuss: Is this the right way forward? If so, could you be involved? How would we make this happen? What other design principles? Can you contribute to components today?
  • ● Throug hthe wonder fullens ofFP ● Origina lly .NET+V isual Studio ● Nowa broader , commu nity-led vision F# is about about leveraging and integrating external functionality ● F#asa Langu age:FF + interop ● F#at Micros oft: tooling, platfor ms, data ● F# broadl y: many, many things going on! Next Directions? Summary
  • Questions?