Firstly, we’re going with “just” Manuel’s talk, but a talk from Manuel is enough for our brains in one night IMO! We’ll also announce a “companion” talk from Sebastien for next month.
Secondly, in possibly a world first, CocoaHeads is going DRY for July! To support those taking part in Dry July https://au.dryjuly.com/ there will be no alcoholic beverages at this month’s CocoaHeads. “But you promised beer and pizza” I hear you say? And we will! Atlassian is coming to the party with Alcofree Beer :) Softdrinks and, of course, Pizza will also be on hand.
Fully confirmed is our amazing resident functor, mapping our brains from OO into functional thinking, Manuel Chakravarty (@tacticalgrace) is going to bring a talk titled “Functional Programming in a Stateful World using Swift”. True to form, he has a very useful abstract for his talk too :)
Functional Programming in a Stateful World using Swift
Today, functional programming is mostly used in the development of server-side software and command line applications. This is changing with Swift, a language with strong support for functional programming that is pitched as the successor of Objective-C for desktop and mobile applications. Unsurprisingly, there are obstacles. Any attempt to use Swift’s support for functional programming to its full potential leads to architectural challenges, especially in the separation of stateful and purely functional computations. In desktop and especially in mobile applications, a superb user experience is a central aim of application design. This typically leads to a ubiquitous use of application frameworks, such as Cocoa, which tend to encourage a tangled web of stateful, mutually mutating objects — very much the anti-thesis of modern functional programming.
Established approaches to disentangling stateful from pure computations, while necessary, are not sufficient for desktop and mobile applications. A careful separation of the view layer (implementing the user interface) from the application logic (forming the computational heart of the application) requires us to rethink application architecture and depends on adopting an interaction paradigm focusing on the data flow between components rather than on object mutation.
This talk summarises my experience with building a desktop application including a complex user interface in Swift and Haskell. The talk will provide answers to the following questions. In which way is functional programming useful in desktop and mobile applications? What are the advantages of stateless, pure functions? What software architecture maximises the impact of functional programming in that context? How can we propagate changes from user interactions, file system & network events, and so on in a manner that keeps an application responsive, while facilitating stateless computations.
This is based on his talk at Lambda Jam, but more focussed on those of us coming to the functional world from iOS.
If/when I’m able to confirm a second talk I will message on the usual channels, but if Manuel’s talk is our only one for July it will still be a cracker!
As always, CocoaHeads is held at Atlassian, which means free pizza and beer! Looking forward to seeing you all there.
When: Thursday July 16th, 6:30pm
Where: Atlassian (Level 6, 341 George St, Sydney, NSW, 2000, Australia) Look for the Westpac building opposite Martin Place (next to the old Virgin Megastore) and since the bank will be closed there’s a side entrance to access the lifts on Wynyard St.