Mihaela Popa
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.
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.
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.
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.
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.
Learning Haskell was a great idea long ago since Haskell 2010 was established. Haskell gives a completely different perspective on writing the code, and this makes you a better developer. But if this is not convincing enough, then I would say that ideas from Haskell leak into all the main languages: Scala, C++, C#, JavaScript, Java, Kotlin, Rust. Not metaphorically, but literally; for example, C++20 has concepts - a direct adoption of Haskell’s type classes.
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!
Ground Floor, Verse Building, 18 Brunswick Place, London, N1 6DZ
108 E 16th Street, New York, NY 10003
Join over 111,000 others and get access to exclusive content, job opportunities and more!