Living The Portable User eXperience Fable

This is a past event

31 people went

Location image of event venue

Details

Create UI experiences on multiple platforms, not only on the web but also on mobile (React Native) and desktop (Github Electron) with your fluidly written F#, by injecting it into the HTML/CSS/JavaScript mix with the magic of Fable. Instantly see the effect of your changes with hot reloading.

We're going to hear from:

• Fable (https://github.com/fable-compiler/Fable) creator, Alfronso Garcia (https://twitter.com/alfonsogcnunez), will guide us through the Fable path over Skype

• local ReasonML (https://facebook.github.io/reason/) hero, Jacob Bass (https://twitter.com/bassjacob), will tell us about what it's like to get into a functional first, typed JavaScript mindset and also give us a run-down on what he's been up to.

• Web connoisseur and Microsoft MVP in Visual Studio & Dev Technologies Aaron Powell (https://twitter.com/slace) of Readify, will kick off with a lightning talk. He's going to give us his perspective on the proliferation of functional ideas in the JavaScript world **.

In More Detail:

The JavaScript "typed" scene is evolving. There are a few approaches out there now. Alfonso Garcia, the creator of Fable, is going to help us (over Skype) to understand how to target multiple platforms using the JavaScript ecosystem, and the power of F#.

Behind the scenes, Fable leverages the awesome BabelJS (https://babeljs.io/) to do the final readable JavaScript stage. Some teams at places like Facebook use BabelJS as part of their pipeline, too. It's a solid direction, which holds a lot of promise.

Currently, Fable use is most prevalent in the ReactJS setting (Progressive Web Apps/Single Page Apps).

* Reason is an OCaml based JS transpiler, with similar goals to Fable. NB. F# is also based on OCaml.

** Aaron Powell gave a talk on implementing Redux.JS in F# last year and has also played a little with Fable.

Random Links:

• a nice overview on language design goals to support "Rapid iteration" in PHP/HHVM/Hack (video: first 6 minutes or specifically minutes 4-6) (https://www.youtube.com/watch?v=zBV9TkTXxg0)

• A confessional from a Google Chrome team member. His solution: use typed coordinate space systems. video: go to 23rd minute (https://www.youtube.com/watch?v=j6fxKIjGQAI)

• Web Assembly (https://www.youtube.com/watch?v=iCSAUHpPbiU&list=PL9ioqAuyl6UKZdsQFXJJWrwgZAgeAaFWa&index=5)

• ClojureScript (https://clojurescript.org/)

• early foundations of Fabel (http://funscript.info/)

• Which Functional Language To Learn? (https://www.quora.com/Functional-Programming-Should-I-learn-F-Haskell-Scala-or-Clojure)