The Reflex Architecture (Combo Talk)
Reflex-dom is a remarkably awesome way to write frontend web applications in Haskell. Reflex DOM is built from Functional Reactive Programming (FRP) primitives defined in a library called Reflex.
Writing apps in reflex-dom is a little weird at first because it's a whole brand new paradigm to structuring your programs. Just like the jump from imperative programming to FP, jumping into FRP is a tricky process of rewiring your brain to fit the new model of thinking. It can be very difficult to appreciate the power and architectures that you can from this transition while you are still learning the basics, which naturally makes it difficult to be motivated to put in the work.
This talk intends to help break this deadlock by talking about some high level reflex architecture that should be very familiar to anyone who has built a Redux or Elm app before. We'll explore the mtl style constraints that reflex offers for state management and the awesome things that this means for your programs and ability to reason about the type signatures of your widgets. You won't come away from this talk an expert and ready to write a greenfield reflex app, but you should get an appreciation of the power reflex has to offer and a motivation to learn more!
Frontend deveopers that feel like another fundamental upgrade is needed. Anyone that wants to live the dream of fullstack haskell apps!
Prerequisites for Attendees
For the talk:
- Familiarity with haskell syntax will largely be assumed
- It will help if you have exposure to mtl style programming, but it is not required.
For the workshop part:
- You will need a laptop with code checked out, obelisk installed and
ob runexecuted to download dependencies and make sure it works.
- If you are on windows you will have to use a vm since the tooling only works on linux or mac.
- You may prohibitively struggle if you aren't used to programming with Functor/Applicative/Monad/Foldable/Traversable/Monoid.
- Having some exposure to mtl type constraints will definitely help.