Functional Design and Architecture: Interview with Alexander Granin
9 Sep 2021
3 min read
We recently had the chance to speak with Alexander Granin, who is a software architect, international speaker, researcher and active member of the C++ and Haskell communities about his upcoming book Functional Design and Architecture and the evolution of Haskell in the past decade.
We'd like to start by learning a bit about your journey as a developer and author.
My IT career started more than 15 years ago. I was a C++ developer for most of my professional path. But my true passion was functional programming. I fell in love with Haskell 10 years ago, and it was my favorite hobby language until I moved to the position of Haskell consultant 4 years ago. I started investigating functional programming in Haskell and C++, and I found a big world of new great ideas. I was writing articles, giving talks, and my goal was to popularize functional programming among developers.
What prompted you to write a guide to software engineering using Haskell?
There was something that I realized quite soon. Haskell is an amazing, very influential, and even meme language that offers really breakthrough concepts. However, it turned out that we don’t have an understanding of how to build real programs, how to apply those ideas to everyday tasks, and what software engineering in Haskell looks like. I started researching this topic. I was the first with this intent in Haskell, so I decided to write a book that I knew will say its word in the industry sooner or later.
Why do you think this book is important for developers to read?
We know much about object-oriented programming. There are design patterns, design principles, software architectures, and ready solutions - all this forms a complete story of software design in OOP languages. But we don’t have anything equal in functional programming. There were takes on this or that for sure, but nothing that comprehensive and systematic. Authors do their best to observe separate techniques and ideas, but there is no complete story of what approaches we have in functional programming and how to apply them for real tasks.
There is Object-Oriented Design (OOD) for OO languages, and in my book, I’m suggesting its counterpart for the functional world. I call it Functional Declarative Design. The importance of this topic is clear: it’s a new direction of software engineering, and learning will definitely be a good idea for everyone, not only for functional developers.
Who would you recommend it to?
Haskell in this book is a model language, but we’re making the first two parts of the book approachable to all functional developers. A basic and intermediate Haskell will be needed in further, still, the book contains a lot of ideas universally applicable to Scala, F#, Elm, OCaml, PureScript. I believe the book will be useful to senior software engineers and software architects having a certain FP background, but maybe my book is more than that. My hope is that it becomes a must-have book for many developers from many stacks.
What’s your opinion about the evolution of Haskell in the past decade and why do you think now it’s a good time to learn Haskell?
Haskell is on its slow but steady rise. In 2020, Haskell Foundation was established - an organization that aims to popularize and support Haskell in industry. We see the increasing number of job positions on the market, and even more: there is a lack of professional Haskell developers today. Manning Publications has also contributed to this growth quite much: books by Will Kurt ( Get Programming in Haskell ) and Vitaly Bragilevsky ( Haskell in Depth ) are very good and practical: a property that was in big demand in the Haskell community according to annual surveys. I believe my book will be a great next step for Haskell and for functional programming in general, so yes, I’m very sure that Haskell is worth learning today.
If you would like to read more interviews like these, be sure to sign up to Functional Works!
Marketing Manager at WorksHubSee other articles by Mihaela