how f# learned to stop worrying and love the data

21
How F# Learned to Stop Worrying and Love the Data Tomas Petricek @tomaspetricek Conspirator behind http://fsharp.org

Upload: tomas-petricek

Post on 10-May-2015

4.496 views

Category:

Technology


0 download

DESCRIPTION

The world of data speaks a different language than the world of programming languages. It uses REST, SQL database schema, XML, JSON while programming languages only understand types and classes. This causes big confusion when we try to access data from programming languages, especially from those with (otherwise very useful) static type systems. How can a programming language learn to understand data? In this talk, I'll show how this is done using type providers in F# 3.0. You'll see how integrating data into the programming language opens the possibilities for creating exciting applications.

TRANSCRIPT

Page 1: How F# Learned to Stop Worrying and Love the Data

How F# Learned to Stop Worrying and Love the

Data

Tomas Petricek @tomaspetricekConspirator behind http://fsharp.org

Page 2: How F# Learned to Stop Worrying and Love the Data

F# Software Foundation

http://www.fsharp.org

software stackstrainings teaching F# user groups snippets

mac and linux cross-platform books and tutorials

F# community open-source MonoDevelop

contributions research support consultancy mailing list

Page 3: How F# Learned to Stop Worrying and Love the Data

The Data

Page 4: How F# Learned to Stop Worrying and Love the Data
Page 5: How F# Learned to Stop Worrying and Love the Data
Page 6: How F# Learned to Stop Worrying and Love the Data

let wb = WorldBank()w b .

Page 7: How F# Learned to Stop Worrying and Love the Data

[DEMO]

Exploring WorldBank Data

Page 8: How F# Learned to Stop Worrying and Love the Data

Asynchronous programming

Asynchrony mattersNode.js and C# 5.0

F# Async workflowsWithout inversion of controlException handling and loops simpleSequential and parallel composition

Page 9: How F# Learned to Stop Worrying and Love the Data

F# to JavaScript

Before it was

cool.

Page 10: How F# Learned to Stop Worrying and Love the Data

[DEMO]

WorldBank App for the Webhttp://tomasp.net/techmesh

Page 11: How F# Learned to Stop Worrying and Love the Data

F# to JavaScript

TypeScript type providerImport types for JS librariesSomebody else writes them!

Libraries & frameworksOpen source: FunScript and PitCommercial: IntelliFactory WebSharper

Page 12: How F# Learned to Stop Worrying and Love the Data

Accessing REST services

REST (Representational State Transfer) is a

style of software architecture for

distributed systems such as the World Wide Web.

REST has emerged as a predominant Web

service design model.

Page 13: How F# Learned to Stop Worrying and Love the Data

Accessing REST services

Page 14: How F# Learned to Stop Worrying and Love the Data

[DEMO]

Introducing Apiary Type Provider

Page 15: How F# Learned to Stop Worrying and Love the Data

Apiary.io Type Provider

Common REST conventions

GET /movie/{id} Get movie summaryGET /movie/{id}/casts Get cast details

Types from JSON samples{ "page": 1, "total_pages": 1, "total_results": 5, "results": [ { "title": "Skyfall", "id": 94221 } ] }

Page 16: How F# Learned to Stop Worrying and Love the Data

[DEMO]

The Movie Database Web Apphttp://tomasp.net/techmesh

Page 17: How F# Learned to Stop Worrying and Love the Data

Type Providers in Action

WorldBank Type Provider

JSON Type Provider

Apiary Type Provider

TypeScript Type Provider

Page 18: How F# Learned to Stop Worrying and Love the Data

[SUMMARY]

Where to learn more?

Page 19: How F# Learned to Stop Worrying and Love the Data

Online resources

www.fsharp.org Information & communitywww.tryfsharp.org Interactive F# tutorials

Page 20: How F# Learned to Stop Worrying and Love the Data

User groups and trainings

Functional and F# trainingsIn London and New YorkGet in touch [email protected]

F#unctional Londoners meetuphttp://meetup.com/FSharpLondon/

Page 21: How F# Learned to Stop Worrying and Love the Data

tool support extensibility code-first

unstructured data static typinginference schema

Love the Data

F#, Data and Services

and integration

other languages web

type script REST

R language transparent java script