How F# Learned to Stop Worrying and Love the Data

Post on 10-May-2015

4.497 views 0 download

Tags:

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 of 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

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

The Data

let wb = WorldBank()w b .

[DEMO]

Exploring WorldBank Data

Asynchronous programming

Asynchrony mattersNode.js and C# 5.0

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

F# to JavaScript

Before it was

cool.

[DEMO]

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

F# to JavaScript

TypeScript type providerImport types for JS librariesSomebody else writes them!

Libraries & frameworksOpen source: FunScript and PitCommercial: IntelliFactory WebSharper

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.

Accessing REST services

[DEMO]

Introducing Apiary Type Provider

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 } ] }

[DEMO]

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

Type Providers in Action

WorldBank Type Provider

JSON Type Provider

Apiary Type Provider

TypeScript Type Provider

[SUMMARY]

Where to learn more?

Online resources

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

User groups and trainings

Functional and F# trainingsIn London and New YorkGet in touch tomas@tomasp.net

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

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