Dan Kennedy

Frontend Engineering Sydney talks – You Don't Know Functional

Kyle Simpson

Kyle Simpson

Canva was proud to host Frontend Engineering Sydney for the third time earlier this month. Kyle Simpson, open web evangelist and author of “You Don’t Know JS”, Cathy Lill of Data61 and Canva’s own Damon Oehlman spoke about different aspects of functional programming for frontend development.

Kyle Simpson - FPO and fasy

Kyle began his talk with the “world’s quickest functional programming primer”, covering pure functions, higher order functions and closure, partial application and currying, composition and iterations in five slides. He then talked about two Functional libraries he has written, FPO and fasy.

FPO (pronounced eff-poh) stands for “functional programming in object style”, and allows you to name arguments instead of juggling argument order. Fasy (pronounced like “Tracy”) allows you to apply functional programming concepts like map and reduce to asynchronous programming. Both were initially written as teaching tools, but Kyle and many others have since used them in production code.

Kyle Simpson came to us courtesy of the Web Directions Summit conference, and his latest book, “Functional-Light JS” went on sale this month and is also available on github.


Cathy Lill - Intro to Reflex FRP

Cathy Lill is a software engineer at Data61 (CSIRO), and spoke about Reflex, a Haskell library for building UIs. Reflex allows you to write Haskell and output JavaScript thanks to the ghcjs compiler. Cathy first took us through getting up and running with Reflex and an introduction to Functional Reactive Programming. She continued with some demonstrations (apologies that the video hasn’t captured the screen well here) and wrapped up with a comparison between Reflex and React.


Damon Oehlman - Pull Streams

Canva front end engineer Damon Oehlman took us through an “unloved but extremely useful” piece of technology, pull streams. Pull streams are a reinvention of node streams, as Damon describes:

Picture yourself drinking from a bubbler - you turn the bubbler on, and you drink from it as fast as the water comes out. That’s like getting data from a traditional node stream. Pull streams are more like drinking from a straw. You can determine the pace that you consume the data at.

Damon took us through the basic structure of pull streams and the top-level logic of a couple of examples he wrote, including a demo that pulls images from Flickr.

FE Events: Pull Streams Talk by Damon Oehlman


Many thanks to everyone who attended! Keep an eye on @canvatech on Twitter for details of the next Frontend Engineering Sydney event, and remember to tag #frontendsyd.








Alpha Blending and WebGL

Alpha Blending and WebGL Continue reading

My First Month at Canva

Published on September 27, 2017