progressive f# tutorials nyc don syme on keynote f# in the open source world
TRANSCRIPT
Welcome!
Wendy Devolder, SkillsMatter
F# in the Open Source World
@dsyme, Principal Researcher, Microsoft ResearchF# Community Contributor
This talk has some slides provided by other people
Ill try to remember to tell you when thats 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 changingin subtle but important ways
F# runs on many platforms
F# is for Windows
Overview
F# is changingin subtle but important ways
F# has many contributors
Microsoft makes F#
Overview
F# is changingin subtle but important ways
F# isone language with many tools
F# is part of Visual Studio
Overview
F# is changingin subtle but important ways
Many perspectiveshttp://fsharp.org
One perspective(Microsofts)http://msdn.microsoft.com
Old think
F# LanguageVisual F# Tools
Visual Studio, ..NET, SDKs, Tools
fssnip.net
tryfs.orgfsharpforfunandprofit.comtryfs.org
Xamarin Studio
fpish.net
F# Open SourceGroup
F# Community Groups
tryfsharp.org
F# Software Foundation
New think
http://fsharp.org
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
Lets just remind ourselves about that
Now lets look more broadly
Tour: Core Components
F# open source group
fsharp.github.com
e.g. F# Compiler Open Edition
F# 3.0fsharp.github.com/fsharpApache 2.0 licenseMac, Linux,
Windows, Browsers, Android, iOSCompiler, Library, Build,
F# Interactive, Compiler APIRun by the F# Open Source
Groupfsharp.github.com/fsharp
Tour: Libraries and Packages
Ecosystem Exosystem
nuget.org
11,500 unique packages
Windows, Mac, Linux
www.nuget.org
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
https://github.com/fsharp/fsharpbinding/
Fantomas
https://github.com/dungpa/fantomas/
Ctrl-K Ctrl-F Code Formatting for F#
FSharpBinding
F# AddIn for MonoDevelop and Xamarin Studio
https://github.com/fsharp/fsharpbinding/
New: Tsunami Scripting Tools
http://tsunami.io
demo videos
Can also be embedded, consulting available
(contact them)
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
http://cloudsharper.com
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
www.servicestack.net
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
Web and Mobile Framework for F#
http://websharper.com#websharper
Tour: Cloud Programming
Amazon Web Services .NET SDKs
http://aws.amazon.com/tools
https://github.com/aws (Apache 2.0)
Azure .NET SDKs
http://www.windowsazure.com
https://github.com/WindowsAzure/ (Apache 2.0)
http://m-brace.net
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 algorithmscripting
Industry gradeperformance
Rapiddevelopment
Solid frameworkfor reusability
Advanced CUDA
programming
Tour: Math and Statistics Packages
See http://fsharp.orgSearch 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 fsharp.org 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
CSV
01/10/13
JSON
01/10/13
XML
01/10/13
OData
01/10/13
Hadoop/Hive
01/10/13
World Bank
01/10/13
Azure Data Market
01/10/13
WSDL
01/10/13
WMI
01/10/13
Freebase
01/10/13
R
01/10/13
TypeScript
01/10/13
Matlab
01/10/13
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 + LibraryLibraryLibraryLibraryLibraryLibraryLibraryCurrent Situation
.NET + F# Compiler + LibraryLibraryOpenLibraryOpenLibraryOpenLibraryLibraryFuture Situation?
FBase
.NET + F# Compiler + LibraryLibraryMath.NET NumericsFSharp.DataFSharp.ChartingExtLib v2RxLibraryFuture Situation?
FBaseCharacteristics?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?
Through the wonderful lens of FP
Originally .NET+Visual Studio
Now a broader, community-led vision
F# is about about leveraging and integrating external functionality F# as a Language: FF + interop
F# at Microsoft: tooling, platforms, data
F# broadly: many, many things going on!
Next Directions?Summary
fsharp.org
Questions?
;
105
352
601
1116
1628
2647
4678
Click to edit the title text formatClick to edit Master title style
Click to edit the title text formatClick to edit Master title style
Click to edit the title text formatClick to edit Master title style
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Seventh Outline LevelClick to edit Master text styles
Second level
Third level
Fourth level
Fifth level
Click to edit the title text formatClick to edit Master title style
Click to edit the title text formatClick to edit Master title style
Click to edit the title text formatClick to edit Master title style
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Seventh Outline LevelClick to edit Master text styles
Second level
Third level
Fourth level
Fifth level
Click to edit the title text formatClick to edit Master title style
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Seventh Outline LevelClick to edit Master text styles
Second level
Third level
Fourth level
Fifth level
Click to edit the title text formatClick to edit Master title style
01/10/13