SlideShare ist ein Scribd-Unternehmen logo
1 von 76
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
http://fsharp.org
One perspective
(Microsoft’s)
http://msdn.microsoft.com
Old think…
F# Language
Visual F# Tools
Visual Studio, .
.NET, SDKs, Tools
fssnip.net
tryfs.org
fsharpforfunandprofit.com
tryfs.org
Xamarin Studio
fpish.net
F# Open Source
Group
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”
Let’s just remind ourselves about
that…
Now let’s look more broadly…
Tour: Core Components
F# open source group
fsharp.github.com
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
fsharp.github.com/fsharp
Tour: Libraries and Packages
Ecosystem Exosystem
nuget.org
11,500unique 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
New: Tsunami Scripting Tools
http://tsunami.io
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
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
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 algorithm
scripting
Industry grade
performance
Rapid
development
Solid framework
for reusability
Advanced CUDA
programming
Tour: Math and Statistics
Packages
See http://fsharp.org
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 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 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
fsharp.org
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

02 intro to programming in .net (part 2)
02   intro to programming in .net (part 2)02   intro to programming in .net (part 2)
02 intro to programming in .net (part 2)
Felisha Hosein
 

Was ist angesagt? (19)

Ubucon 2013, licensing and packaging OSS
Ubucon 2013, licensing and packaging OSSUbucon 2013, licensing and packaging OSS
Ubucon 2013, licensing and packaging OSS
 
Swift vs. Language X
Swift vs. Language XSwift vs. Language X
Swift vs. Language X
 
Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!
 
WEB PROGRAMMING UNIT V BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT V BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT V BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT V BY BHAVSINGH MALOTH
 
F# in MonoDevelop
F# in MonoDevelopF# in MonoDevelop
F# in MonoDevelop
 
The seven pillars of aspnet
The seven pillars of aspnetThe seven pillars of aspnet
The seven pillars of aspnet
 
INTRODUCTION TO FLUTTER.pdf
INTRODUCTION TO FLUTTER.pdfINTRODUCTION TO FLUTTER.pdf
INTRODUCTION TO FLUTTER.pdf
 
Python programming
Python programmingPython programming
Python programming
 
Web programming UNIT II by Bhavsingh Maloth
Web programming UNIT II by Bhavsingh MalothWeb programming UNIT II by Bhavsingh Maloth
Web programming UNIT II by Bhavsingh Maloth
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
02 intro to programming in .net (part 2)
02   intro to programming in .net (part 2)02   intro to programming in .net (part 2)
02 intro to programming in .net (part 2)
 
00 Intro
00  Intro00  Intro
00 Intro
 
Rapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka PhonegapRapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka Phonegap
 
Guzzle Drupal 7
Guzzle Drupal 7Guzzle Drupal 7
Guzzle Drupal 7
 
Automating API Documentation
Automating API DocumentationAutomating API Documentation
Automating API Documentation
 
What is c#
What is c#What is c#
What is c#
 
Php vs Python: The Comparison You Should Know
Php vs Python: The Comparison You Should KnowPhp vs Python: The Comparison You Should Know
Php vs Python: The Comparison You Should Know
 
Julia vs Python 2020
Julia vs Python 2020Julia vs Python 2020
Julia vs Python 2020
 
The Roslyn Compiler: Look at Your Code from a Different Perspective (Raffaele...
The Roslyn Compiler: Look at Your Code from a Different Perspective (Raffaele...The Roslyn Compiler: Look at Your Code from a Different Perspective (Raffaele...
The Roslyn Compiler: Look at Your Code from a Different Perspective (Raffaele...
 

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

Foss In Undergraduate Studies
Foss In Undergraduate StudiesFoss In Undergraduate Studies
Foss In Undergraduate Studies
guestec838a
 
Seminar and Workshop on Linux
Seminar and Workshop on LinuxSeminar and Workshop on Linux
Seminar and Workshop on Linux
NAILBITER
 
Adobeflex(2)
Adobeflex(2)Adobeflex(2)
Adobeflex(2)
tomcoh
 

Ähnlich wie Progressive f# tutorials nyc don syme on keynote f# in the open source world (20)

Introductory session flutter festival
Introductory session   flutter festivalIntroductory session   flutter festival
Introductory session flutter festival
 
Bay NET Aug 19 2009 presentation ppt
Bay  NET Aug 19 2009 presentation pptBay  NET Aug 19 2009 presentation ppt
Bay NET Aug 19 2009 presentation ppt
 
F# Tutorial @ QCon
F# Tutorial @ QConF# Tutorial @ QCon
F# Tutorial @ QCon
 
Top Benefits of Flutter App Development Services - An Insightful Blog
Top Benefits of Flutter App Development Services - An Insightful BlogTop Benefits of Flutter App Development Services - An Insightful Blog
Top Benefits of Flutter App Development Services - An Insightful Blog
 
Foss In Undergraduate Studies
Foss In Undergraduate StudiesFoss In Undergraduate Studies
Foss In Undergraduate Studies
 
Open Source in the Enterprise
Open Source in the EnterpriseOpen Source in the Enterprise
Open Source in the Enterprise
 
Data-First Online Functional Programming with F# (Adam Granicz)
Data-First Online Functional Programming with F# (Adam Granicz)Data-First Online Functional Programming with F# (Adam Granicz)
Data-First Online Functional Programming with F# (Adam Granicz)
 
Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshow
 
What Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdfWhat Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdf
 
Seminar and Workshop on Linux
Seminar and Workshop on LinuxSeminar and Workshop on Linux
Seminar and Workshop on Linux
 
Open Source is Not An Alternative, It is The Solution
Open Source is Not An Alternative, It is The SolutionOpen Source is Not An Alternative, It is The Solution
Open Source is Not An Alternative, It is The Solution
 
Flutter festival ppt
Flutter festival ppt Flutter festival ppt
Flutter festival ppt
 
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
 
Key Features Of The Pseudo Code
Key Features Of The Pseudo CodeKey Features Of The Pseudo Code
Key Features Of The Pseudo Code
 
Flutter festival gdsc juet guna
Flutter festival   gdsc juet gunaFlutter festival   gdsc juet guna
Flutter festival gdsc juet guna
 
1504.00693
1504.006931504.00693
1504.00693
 
Adobeflex(2)
Adobeflex(2)Adobeflex(2)
Adobeflex(2)
 
Three's Company - Writing for the Desktop, Browser, and Phone
Three's Company - Writing for the Desktop, Browser, and PhoneThree's Company - Writing for the Desktop, Browser, and Phone
Three's Company - Writing for the Desktop, Browser, and Phone
 
One App, Multiple Platforms
One App, Multiple PlatformsOne App, Multiple Platforms
One App, Multiple Platforms
 
Presentation open source library
Presentation open source libraryPresentation open source library
Presentation open source library
 

Mehr von Skills Matter

Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
Skills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
Skills Matter
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
Skills Matter
 

Mehr von Skills Matter (20)

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberl
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.js
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testing
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
 
Serendipity-neo4j
Serendipity-neo4jSerendipity-neo4j
Serendipity-neo4j
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Plug 20110217
Plug   20110217Plug   20110217
Plug 20110217
 
Lug presentation
Lug presentationLug presentation
Lug presentation
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
 
Plug saiku
Plug   saikuPlug   saiku
Plug saiku
 
Huguk lily
Huguk lilyHuguk lily
Huguk lily
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

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