Sep 23, 2016: 9:30am - 1:00pm

T5: Fable, an F# to JavaScript compiler

Alfonso García-Caro

Abstract

Fable is an open source compiler that brings all the power of F# to the JS ecosystem: static typing with type inference, functional paradigm, pattern matching, type providers, besides a comprehensive library to handle collections, text, observables, etc. which translates to less than 30KB in JS.

Fable doesn't pack any runtime with the app and generates very clean JS code which adheres to new ES6 patterns, like modules or iterables, making it compatible with modern JS development tools: Babel, Webpack, React Hot Loader... Also, Fable is not only for front-end web apps, it integrates with the whole JS ecosystem including server-side node apps, desktop with Github Electron and mobile with Fuse or React Native.

Tutorial objectives

By the end of the tutorial, attendees will be able to use F# to create a simple web app, desktop app and mobile app. Attendees can decide in which one they want to focus.

Target audience

App developers interested in functional programming, no prior F# experience is needed

Infrastructure Required

Attendees must install F# and Node.js on their computers. Instructions for installation on each OS platform can be found in the respective websites: fsharp.org and nodejs.org. An IDE, like Atom or Visual Studio Code with Ionide plugin (http://ionide.io), is also recommended.

Alfonso García-Caro

Alfonso García-Caro

Alfonso García-Caro is a .NET/JS developer of eclectic background. After getting a degree in Linguistics, he lived in Japan, where he learnt the language, and Germany, where he didn't learn the language that well but programming instead to develop CAT (Computer Aided Translation) software. His interest in functional programming and web development led him to create Fable, an F# to JS compiler, which has quickly become very popular in the F# community. Alfonso is also an international speaker, who's presented about F# and his projects in the US, UK, Japan and Spain. Currently also learning about Machine Learning and finishing a book on F#. Twitter: @alfonsogcnunez