Rob Martin will be giving a talk at Lambda Days 2017. He will be speaking about Domain Driven Design and Common Sense Approach to Architecture).
PurelyFunctional.tv: How did you get into Functional Programming?
Rob Martin: In 1992 I was supposed to create a boot loader for a embedded single board computer running an 80C186 processor. Best practices seemed to suggest using Forth for this, so that's where I started. Instead of loading any other operating system, though, I fell in love with Forth and programmed those board in Forth for the next three years. I didn't know I was getting into functional programming at the time, though. Forth may be a concatenative, (mostly) point-free language based on combinatorial logic, but I just thought it was fun.
In 1999 Erlang was open sourced and I SO MUCH WANTED to use it. But I was a pretty lousy programmer (an "expert beginner") working primarily in Perl and Python, and I didn't know why Erlang was actually cool, what functional programming was, why or how to learn it, or how badly I sucked as a programmer. It took me another decade to become the kind of senior who was ready to become a grasshopper.
PF.tv: What is your talk about?
RM: My talk kind starts with a goal for simple, demonstrably correct code regardless of experience level, and from there it more or less "discovers" pure functions, an interesting way of looking at different programming languages, functional programming languages, what it means to have identity, how we persist that identity, domain driven design, reactive programming, the ES-CQRS pattern, and a useful approach to building distributed computing architectures that help even junior members of our team deliver more value than seniors on most OO, imperative, and hybrid teams.
PF.tv: Who is your talk for?
RM: People. Preferably the kind who enjoy being curious. A little programming knowledge may be useful but not critical.
PF.tv: What do you hope people will take away from the talk?
RM: I hope people will leave my talk with a new way of looking at building applications, one that's simple and demonstrably correct.
PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?
RM: I think people attending my talk should be familiar with themselves and where they are in their career. If we can see ourselves, I think we can benefit from this talk.
PF.tv: What resources are available for people who want to study up before the talk?
RM: I wrote a paper, but I don't actually expect to have it online beforehand. I do have a blog post called "Why Be Functional" that might be interesting. Other people have written and spoken on combining Domain Driven Design and functional programming, but many assume you already have knowledge of both. Scott Wlaschin has some good material up at http://fsharpforfunandprofit.com/ddd/.
PF.tv: Where can people follow you online?
PF.tv: Are there any projects you'd like people to be aware of? How can people help out?
RM: I teach functional programming to new developers (people with some programming experience who have not yet worked as a professional developer) in a one-day workshop called "An Ounce of Elixir". Generally speaking, I partner these workshops with organizations that advocate for women in technology, groups like Girl Develop It, Women Who Code, Girls Who Code, and Carrots. The workshops are free, and I'm teaching two this week in Krakow - Wednesday, for teenagers, and Saturday, for adult women.
I don't charge anyone for these workshops, but I do hope to find sponsors who will cover some of my expenses and feed good food to the attendees. I would love to do more of these in the US and Europe, if you'd like to help get one booked near you.
PF.tv: Where do you see the state of functional programming in 10 years?
RM: I think functional programming already matches the kinds of problems we're solving on the internet and at large scale, and is already the best tool we have for creating simple, demonstrably correct code. In ten years I hope enough companies have adopted functional programming as their standard approach so that programmers, especially today's young developers, can find decent jobs that allow them to do their best work.
PF.tv: If functional programming were a superhero, what superpower would it have?
RM: Functional programming already is a superhero, and its superpower is Integrity - honest, with strong moral tendencies.