Daniel Spiewak is a software developer based out of Boulder, CO. Over the years, he has worked with Java, Scala, Ruby, C/C++, ML, Clojure and several experimental languages. He currently spends most of his free time researching parser theory and methodologies, particularly areas where the field intersects with functional language design, domain-specific languages and type theory.
Daniel has written a number of articles on his weblog, Code Commit, including his popular introductory series, Scala for Java Refugees.
The Cake Pattern is often explained as a way of doing dependency injection in Scala in a statically typed framework. This is analogous to describing FP as a way of manipulating List-like data structures. The pattern is capable of so much more. This talk will explore the Cake Pattern, from the very basics to its deepest recesses. We will look at the theoretical foundations of this pattern in type theory, the numerous and flaming pitfalls it imposes, as well as some best practices and day-to-day useful tips.
"Functional Programming" is the modern received wisdom regarding program and language design. All the cool kids talk about writing code that is "functional" or even "purely functional". However, functional programming as it is traditionally defined really doesn't cut the mustard, and if you look at how modern functional architectures are being shaped, everyone seems to have tacitly arrived at the same conclusion: more is needed. In this talk, we will look at how modern functional languages like Scala, Clojure and even Haskell have evolved beyond the simple paradigms of the lambda calculus. We will see how the industry has really moved beyond functional programming and into the realm of something more powerful, more expressive and better suited to the task of large application architecture.
The discussion panel aims at presenting views on the usefulness of functional programming on JVM and beyond, including F# on .Net (if there are people who could tackle the topic with care). We hope to gather people with different opinions, often contradictory, so they can lead to useful outcomes about pros and cons of using functional programming languages - Scala, Clojure as the main players - for current and future projects.
There are plenty of questions people ask themselves when they're faced with learning functional languages and the discussion panel should address some.
Amongst the questions that attendees should anticipate get answers to could be: Why should I consider functional programming languages for my projects? Should I mix and match Java with other languages? What are the most-suited use cases for functional languages? Where would be an introductory area for introducing a functional language in a project? What tools should I get familiar with to get up to speed with functional programming on JVM?