SATURN 2017: Architecture and the Functional Frontier Workshop
Functional programming has found its way into enterprise software systems. Pure functional languages such as Common Lisp, Haskell, and ML, which always had a devoted following in academics, are seeing increased mainstream use in industry. Traditional OO languages such as C# and Java have evolved, seeing changes to their core syntax and libraries, to allow for programming in a functional style. When developers look for their next language, they are increasingly looking for a functional language. Rather than working around Java’s assumption that objects are mutable, they are choosing languages with immutable data structures built-in. Rather than imposing self-discipline to avoid side effects, they are choosing languages that enforce pure functions.
Traditionally, software architects have paid little attention to functional programming. The choice of programming language and style (e.g. OO, functional, procedural) has long been thought of as a choice made within a module, while software architecture is how those modules are put together.
But functional ideas have crept into software architectures as the kinds of systems we build has changed. A few decades ago when academics began careful study of software architecture, there were few planet-wide software systems. Today, even a mundane web application is a distributed system and may well span several data centers across the planet. As a consequence, we’ve changed our architecture pattern languages and our development, deployment, and operating procedures (DevOps).
It’s still difficult to build a good distributed system, so developers have used ideas in functional programming to make it easier. Functional programming (FP) ideas that we see in architectural design include: statelessness, immutability, idempotence, and pure functions. These ideas underlie DevOps practices and are at the core of many distributed systems patterns.
The goal of this workshop is to explore functional patterns in software architecture. Our hope is that we'll end the day with a dozen or so documented patterns in addition to the some bigger ah-ha! moments, and a collecton of new questions about the intersection of arhictecutre and functional thinking. Here are some questions and topics that can consider during the workshop, including the items listed on this page.
The workshop will took place on Monday, May 1, 2017 in Denver, CO during the SATURN 2017 conference on software architecture.
- Arila Barnes
- Einar Landre
- Eltjo Poort
- George Fairbanks
- Harald Wesenberg
- Ipek Ozkaya
- Jørn Ølmheim
- Michael Keeling
- Mike Clark
- Paul Newell
- Paul Rayner
- Pradyumn Sharma
- Sebastian von Conrad
Position Papers and Seed Patterns
Einar, Jørn and Harald (the Statoil gang) - Tale of three gaps
Paul Newll - What's the Big Deal?
George Fairbanks - Functional Programming In Software Architecture
Michael Keeling - A Few Questions about the Functional Frontier
Pradyumn Sharma -
Sebastian von Conrad - Functional Programming and Software Architecture
The 13th SEI Architecture Technology User Network (SATURN) Conference — the longest-running software architecture conference in the world — brings together influential leaders and experts to discuss architecture-centric practices for developing, acquiring, and maintaining software-reliant systems. Architects from more than 20 countries meet annually at SATURN to share ideas, network, and learn about new and existing technologies. For more information, go to http://www.sei.cmu.edu/saturn/2017.
- SATURN 2017 Program
- SATURN 2017 Registration
- SATURN 2016 Workshop: Containers
- SATURN 2015 Workshop: Microservices