Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

How F# Learned to Stop Worrying and Love the Data


Published on

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.

Published in: Technology
  • Be the first to comment

How F# Learned to Stop Worrying and Love the Data

  1. 1. How F# Learned to StopWorrying and Love the DataTomas Petricek @tomaspetricekConspirator behind
  2. 2. software stacks trainings teaching F# user groups snippetsmac and linux cross-platform books and tutorials F# Software Foundation F# community open-source MonoDevelop contributions research support consultancy mailing list
  3. 3. The Data
  4. 4. let wb = WorldBank()wb.
  5. 5. [DEMO]Exploring WorldBank Data
  6. 6. Asynchronous programmingAsynchrony matters Node.js and C# 5.0F# Async workflows Without inversion of control Exception handling and loops simple Sequential and parallel composition
  7. 7. F# to JavaScript
  8. 8. [DEMO]WorldBank App for the Web
  9. 9. F# to JavaScriptTypeScript type provider Import types for JS libraries Somebody else writes them!Libraries & frameworks Open source: FunScript and Pit Commercial: IntelliFactory WebSharper
  10. 10. Accessing REST services REST (Representational State Transfer) is a style of software architecture fordistributed systems such as the World Wide Web. REST has emerged as a predominant Web service design model.
  11. 11. Accessing REST services
  12. 12. [DEMO]Introducing Apiary Type Provider
  13. 13. Type ProviderCommon REST conventions GET /movie/{id} Get movie summary GET /movie/{id}/casts Get cast detailsTypes from JSON samples { "page": 1, "total_pages": 1, "total_results": 5, "results": [ { "title": "Skyfall", "id": 94221 } ] }
  14. 14. [DEMO]The Movie Database Web App
  15. 15. Type Providers in Action WorldBank Type Provider JSON Type Provider Apiary Type Provider TypeScript Type Provider
  16. 16. [SUMMARY]Where to learn more?
  17. 17. Online Information & Interactive F# tutorials
  18. 18. User groups and trainingsFunctional and F# trainings In London and New York Get in touch tomas@tomasp.netF#unctional Londoners meetup
  19. 19. F#, Data and Services other languages web tool support extensibility code-firsttype script Love the Data REST unstructured data static typing inference and integration schema R language transparent java script