Michael will be presenting the following sessions
Michael Snoyman - Your first Haskell web app with WAI and WarpMichael SnoymanVP, EngineeringFP Complete
schedule 1 year agoSold Out!
Haskell's Web Application Interface (WAI- pronounced "why") provides an abstraction between web applications and web servers. This allows many different web frameworks (e.g., Yesod, Spock, and Servant) to share servers like Warp and middlewares.
Haskell's web frameworks offer a wide variety of feature sets, type-level and metaprogramming, and intended use cases. And for most use cases, I would recommend using an existing web framework, which will help you avoid common pitfalls and more quickly address common use cases.
But not today! In this tutorial, we're going to step through building a functioning web server using just the bare-bones WAI interface and Warp as a server. Familiarity with the basics of Haskell will be a plus, but this will be a talk open to all FP and Haskell skill levels.
Michael Snoyman - Applied Haskell WorkshopMichael SnoymanVP, EngineeringFP Complete
schedule 1 year agoSold Out!
This full day workshop will focus on applying Haskell to normal, everyday programming. We'll be focusing on getting comfortable with common tasks, libraries, and paradigms, including:
- Understanding strictness, laziness, and evaluation
- Data structures
- Structuring applications
- Concurrency and mutability
- Library recommendations
By the end of the workshop, you should feel confident in working on production Haskell codebases. While we obviously cannot cover all topics in Haskell in one day, the goal is to empower attendees with sufficient knowledge to continue developing their Haskell skillset through writing real applications.
1. What got you into Functional Programming (FP)?
2. What has been your best moment or highlight working with FP?
3. What are some of the greatest challenges of working with FP?
Finding the right balance between elegance and practicality. Most people who embrace FP have a strong desire to create beautiful solutions to problems. However, we can't boil the ocean for every problem, and sometimes standard solutions are perfectly acceptable. It takes a lot of experience and experimentation to decide when to pursue a new FP-inspired solution to a problem, and when to go with standard solutions.
4. All the mainstream programming languages are adding functional programming features. Most new languages and frameworks are strongly influenced by FP. What is your advice to object-oriented programmers?
Definitely embrace the functional features in your languages where available. They can be a massive productivity and sanity boost. For the best bang-for-your-buck, I'd recommend learning a pure functional language like Haskell or PureScript to force yourself to really learn the FP paradigms though. If you try to exclusively learn FP through a multiparadigm language, you'll constantly be tempted to fall back to OO or imperative techniques as a crutch.
5. What will be some of the key takeaways from your sessions at the conference?
- Writing a web application in Haskell is easy
- The core libraries are approachable and easy to understand
- When you're ready to write something real, use a web framework!
- How to build real world application with Haskell
- How to choose and understand libraries
- Evaluation order in Haskell
- Proper exception handling, including async exceptions