DEV Community

Anastasia Khomyakova ❤ for Konfy

Posted on

"In Kowainik, we had to learn many things the hard way." — Dmitrii Kovanikov

Hello Haskell Lovers!

We’re bringing together the best collection of speakers from top technology companies. Some you may know (and probably already follow on Twitter). Others you'll be discovering for the first time here.
Our experts will share tactics and best practices on how to build the next generation of software products using Haskell and Functional programming.

We are thrilled to present you the interview of our next speaker - Dmitrii Kovanikov.

Alt Text

Functional Programming is one of Dmitrii's passions, and it has been a part of his professional life for quite a while already. He co-created Kowainik — an open-source organization where he maintains OSS libraries, write tutorials and mentor people. Dmitrii is an author and maintainer of dozens OSS libraries and applications. He also had been teaching Haskell at ITMO University for several years to undergrad students. Dmitrii loves making complicated topics accessible and sharing his knowledge with others!

For people who work in Haskell, what Library do you desperately want someone to write?

I desperately want to have an OTP-like Erlang-style framework for applications with multiple concurrent worker threads.
I would like to start asynchronous tasks to handle their errors easily, restart them, clean up resources and monitor their states.
Haskell already has several libraries in this area, but they are either not maintained or too low-level.

If you had to pick one thing to include in the next Haskell Report, what would it be?

I'm not worried about the technical content of the report; I believe it definitely will be wholesome. But I'd love to see people collaborating on the goal of delivering the next report and helping each other sincerely instead of bikeshedding unnecessary details or arguing about what to include.

What would, in your opinion, be a Haskell “killer application”?

DSL for implementing highly efficient and concurrent custom build tools.

What would be your favourite piece of Haskell-branded clothing?

Scarf. I would love to wear it during a freezing and snowy winter ❄️ Compiling Haskell programs usually heats my laptop a lot, so I imagine a Haskell-branded scarf to be warm as well.

What I Wish I’d Known When Learning Haskell?

Best-practices and recommendations on maintaining your own packages 📦
In Kowainik, we had to learn many things the hard way.

Once we were over the infamous Haskell learning curve, we began looking for functional programming, immutability, and types everywhere! Given that most modern applications are web apps, it is only a matter of time before we make the switch to typed-FP for front-end development. Would you write the front end in Haskell?

Just a thought of using JavaScript for writing frontend terrifies to the bones ☠️ I used Elm and PureScript in the past, and it was a joy!
However, there's an immense benefit in using the same language for both backend and frontend. So I'm definitely looking forward to the success of the asterius project!

State of Haskell Survey results in 2020 shows that the number of developers who use Hackage vs. Stackage is almost the same. Which one do you use, why?

I'm using cabal-install and Hackage for my projects. This workflow allows me to upgrade major versions of different libraries more granularly but at the same time, get the latest bug fixes and performance improvements automatically.

96% of respondents of the State of Haskell Survey said they code as a hobby, do you? Is that for an open source project?

I'm using Haskell professionally for 5+ years. Before that, I was teaching Haskell at ITMO University to undergrad students.
At the same time, Haskell had been my hobby during these years.
In Kowainik, we created a lot of Haskell open-source projects: 60+ Haskell-related repositories on GitHub and ~40 maintained packages on Hackage.

If you wanted to convince someone to use Haskell, what would you say?

Composable and elegant concurrency, superb maintainability, sanity-preserving refactoring

If you could change one thing about Haskell, what would it be?

I would make the Haskell community more welcoming to new ideas and less discouraging to people doing things differently.

In his talk, Dmitrii is going to present an abstraction for bidirectional conversion in Haskell, how to implement it, how it helps to avoid common errors, and how you can translate it to other languages.
10th of September at 09.55 CEST, Happiness track.

Join us!

FREE Register to attend
Check out our Website
Learn the whole Schedule
Join us on Twitter

Top comments (0)