Zainab Ali - My Scala Story webp image

Another wonderful guest in our My Scala Story series is Zainab Ali. She is a functional programmer, educator, open source contributor and organizer of the London Scala User Group. She is a maintainer of fs2 and the original author of its reactive streams component. For the past five years, she’s helped developers master the art of functional programming in Scala.

How did you first get introduced to Scala, and what did you think about it?

Believe it or not, I used to be an object-oriented Java developer. I took a break from my first job to write a game engine and picked Scala for a new start.

Initially, I thought it was pretty daunting. I'd been coding in Java, and only Java, up to that point, and good Java code always looked the same. Scala brought so many different ways of expressing things, not just in its syntax but in its programming paradigms. My code was difficult to understand, but I could suddenly solve many more problems than otherwise.

It opened my eyes to new ways of thinking and understanding code. Looking back on it, the biggest challenge was not so much Scala as leaving my comfort zone and learning a second programming language. Since then, I've happily dived into more languages than I can count and am much better at it.

Tell us about a moment when you realized, "Aha! Scala is awesome!" What Scala's features and capabilities made you feel that way?

I first encountered fs2 while writing game engines and hunting for a functional mechanism to represent animations. I had already been dazzled by type-level programming with shapeless and functional programming with cats, but it was fs2 that got me hooked. It surpassed anything I had ever encountered for expressing iterative computations, both in Scala and beyond. It still holds its ground as the most powerful stream processing library and one I'm proud to be a maintainer of now

Over the years, I've dipped my toes into many languages. But the thing that keeps drawing me back to Scala is its flourishing ecosystem and innovative community.

What is your favourite programming meme?

It’s a bit cynical, but I always love to share this XKCD comic:



How has the Scala community impacted your programming journey? Any standout interactions or support stories to share?

The Scala community was my first experience of open source.

It was a slow awakening. At first, I realized that the libraries I used were free for me to explore, that I could raise issues and discuss them; and then that I could contribute back and fix things myself, and thus improve the ecosystem for everyone else.

I was always a bit shy on online forums, but I went in person to one of the Typelevel Hack the Tower days. I spent the entire day with a small group of Scala open source contributors, discussing cats and the delights and challenges of functional programming. I learned so much through those conversations, sharing problems, brainstorming solutions, and even implementing fixes on the fly. They gave me the ideas and confidence to publish my own open source libraries soon after.

I owe a lot to those meetups and the people attending them. Without them, I certainly wouldn't have gotten so involved in functional programming, teaching, or open source software. As a result, my programming journey has been a much richer experience.

What advice would you give to someone just starting with Scala?

Be fearless and stick with it! Join in the community as soon as you can. Reach out to people online, at local meetups, or in learning groups. Be vocal about the things you like, but also the things that you find hard, and then get involved and have a go at improving them. When you look for a job in Scala, hunt around for a team that'll support your open source contributions.

What are your predictions for the future of Scala in the next decade?

I think the Scala ecosystem will become a lot more sustainable. Scala is now a truly mature programming language. Companies are choosing to adopt it not because of its new features but because it forms a stable and reliable foundation.

I think we'll see many more of those companies supporting the language, both in funding its development, its open source ecosystem, and its wider community. Scala has always been a language for the masses, but it’s now easier than ever for companies to get involved in its direction.

Join Functional stream processing workshop with Zainab Ali!

This year's edition of the Scalar Conference is remarkable not only because it celebrates Scala's 20th anniversary but also because it is a special workshop day! Join Zainab Ali and demystify the art of functional stream programming!

The event will take place on March 20; see details here.

Scalar workshop

Blog Comments powered by Disqus.