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


Published on

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.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

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

  1. 1. Welcome! Wendy Devolder, SkillsMatter
  2. 2. F# in the Open Source World @dsyme, Principal Researcher, Microsoft Research F# Community Contributor
  3. 3. This talk has some slides provided by other people I’ll try to remember to tell you when that’s the case
  4. 4. Agenda A tour through our broadening horizons Ecosystems, Exosystems and The Digital World Some initial thoughts on a new F# open initiative
  5. 5. Part I F# is changing… – …in subtle but important ways F# runs on many platforms “F# is for Windows”
  6. 6. Overview F# is changing… – …in subtle but important ways “F# has many contributors” “Microsoft makes F#”
  7. 7. Overview F# is changing… – …in subtle but important ways “F# is one language with many tools” “F# is part of Visual Studio”
  8. 8. Overview F# is changing… – …in subtle but important ways Many perspectives One perspective (Microsoft’s)
  9. 9. Old think…
  10. 10. F# Language Visual F# Tools Visual Studio, . .NET, SDKs, Tools Xamarin Studio F# Open Source Group F# Community Groups F# Software Foundation … New think…
  11. 11.
  12. 12. Why do Microsoft contribute to F#?
  13. 13. functional-first = simple code to solve complex problems = improved time-to-market for code- heavy programming
  14. 14. better programmability = better platforms = make money
  15. 15. “functional-first” = “simple code” Let’s just remind ourselves about that…
  16. 16. Now let’s look more broadly…
  17. 17. Tour: Core Components
  18. 18. F# open source group e.g. F# Compiler “Open Edition”
  19. 19. 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
  20. 20. Tour: Libraries and Packages
  21. 21. Ecosystem Exosystem
  22. 22.
  23. 23. 11,500unique packages Windows, Mac, Linux
  24. 24.
  25. 25. FSharp.Data FSharp.Charting FSharpx ExtLib
  26. 26. Latest news: Data Frames for F# BlueMountain Capital, contributing to F# open source work
  27. 27. Tour: IDEs
  28. 28. F# in Emacs
  29. 29. Fantomas Ctrl-K Ctrl-F Code Formatting for F#
  30. 30. FSharpBinding F# AddIn for MonoDevelop and Xamarin Studio
  31. 31. New: Tsunami Scripting Tools demo videos Can also be embedded, consulting available
  32. 32. 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
  33. 33. Tour: Web and Service Programming
  34. 34. Demo: F# + ASP.NET in Xamarin Studio
  35. 35. F# to JS via F# quotations Community made, open-source Open source license TypeScript Type Provider for interop
  36. 36. Demo: FunScript
  37. 37.
  38. 38. 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
  39. 39. Tour: Cloud Programming
  40. 40. Amazon Web Services .NET SDKs (Apache 2.0)
  41. 41. Azure .NET SDKs (Apache 2.0)
  42. 42. A big data framework for private and public clouds
  43. 43. Tour: Building, Mocking, Testing, … FAKE, Moq, Foq, Nunit, XUnit, TestSpec, FsUnit, …
  44. 44. Tour: GPGPU Programming search on nuget for GPU or CUDA! search on google for “C# GPGPU”
  45. 45. 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
  46. 46. Tour: Math and Statistics Packages See Search on nuget for statistics Math.NET, ExtremeOptimization, F# for Numerics, FCore, NMath, …
  47. 47. Math.NET Numerics A classic F# exosystem project Some latest news
  48. 48. 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
  49. 49. Part II From Broad, to Really, Really Broad
  50. 50. Recap: The Information Revolution
  51. 51. All your types are belong to us…. types
  52. 52. SQL 01/10/13 54
  53. 53. CSV 01/10/13 55
  54. 54. JSON 01/10/13 56
  55. 55. XML 01/10/13 57
  56. 56. OData 01/10/13 58
  57. 57. Hadoop/Hive 01/10/13 59
  58. 58. World Bank 01/10/13 60
  59. 59. Azure Data Market 01/10/13 61
  60. 60. WSDL 01/10/13 62
  61. 61. WMI 01/10/13 63
  62. 62. Freebase 01/10/13 64
  63. 63. R 01/10/13 65
  64. 64. TypeScript 01/10/13 66
  65. 65. Matlab 01/10/13 67
  66. 66. 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#
  67. 67. Demo: F# to R
  68. 68. Part III Concluding Thoughts
  69. 69. .NET + F# Compiler + Library Library Library Library Library Library Library Current Situation
  70. 70. .NET + F# Compiler + Library Library Open Library Open Library Open Library Library Future Situation? “FBase”
  71. 71. .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”
  72. 72. 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?
  73. 73. ● 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
  74. 74. Questions?