DEV Community

Anastasia Khomyakova ❤ for Konfy

Posted on

"JUST PICK A LIBRARY AND WRITE SOMETHING." — Joseph Morag

Hello wonderful people!

Similar to our previous events, a key objective remains to be facilitating interactive connections between attendees and speakers.
Consequently, every session will be streaming LIVE with a dedicated Discord channel supporting live Q&A—because everyone benefits from improved learning through questioning and connecting. Each talk will be followed by live Q&A in SpatialChat, you'll get a real chance to spend quality time with the speakers and follow up on what you learn from their talks.

Our next speaker is Joseph Morag, a professional developer, violinist, and conductor, who found Haskell after a semester of college spent chasing down C memory errors. As a young musician, Joseph dreamed of being the first person to give a concert on the moon. However, after finishing a Bachelor's in physics at Columbia and learning that it's rather hard to hear music in space, he moved to computer science with the hope that it would allow him to better use his technical skills to tackle musical problems. OpenStrings represents the combination of Joseph's passions for music and Haskell and is the result of his Master's thesis at New York University. Currently, Joseph is a partner at Lantern, working on providing unrestricted internet access to all reaches of the globe.

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

Not so much a library, but I'd like there to exist a Haskell version of Python's numpy and associated packages for numerical programming and data science. Right now, we have some isolated pieces like hmatrix and Chart, and many small individual libraries listed on http://www.datahaskell.org/docs/community/current-environment.html, but we are missing the polish and comprehensiveness of the Python
ecosystem.

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

GHC has diverged considerably from the 2010 report. In order for the next report to be compatible with the majority of code on Hackage, all of the extensions under GHC2021 would have to be included.

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

Haskell's "killer application" is in writing other languages. It is a phenomenal tool for implementing a compiler or interpreter.

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

Something lazy. Maybe pajamas.

What I Wish I’d Known When Learning Haskell?

JUST PICK A LIBRARY AND WRITE SOMETHING. Decision fatigue is a huge time drain, especially in the Haskell ecosystem where for certain problem domains, we have many excellent overlapping options. Instead of trying to decide which is best, I've found that it's always more productive to just pick one and start writing code. The ease of refactoring in Haskell means that initial design choices are much less binding than they can be
when writing in other languages, so swapping out a library halfway
through writing an app is relatively inexpensive.

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?

Once GHCJS and/or Asterius are upstreamed into GHC proper as JS and WebAssembly backends, absolutely. Right now, however, the initial time investment to set up tooling for those compilers has kept me from trying them out.

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 try and have my projects build with both stack and cabal, when
feasible. Though I haven't measured it, around when the cabal v2
commands came out, building with cabal felt snappier to me,whereas there are some workflows where using stack is more convenient.

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

A lot of my "hobby" code involves writing small toy projects, like a dns server https://github.com/jmorag/sirdns or some game utilities (https://github.com/jmorag/hbomb-repl, https://github.com/laurenarnett/euchre-server>). My large-ish project is OpenStrings, the subject of my upcoming Haskell Love talk. The rest of my free coding time goes to maintaining my emacs configuration and packages.

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

Haskell is a beautiful language with unrivalled abstraction
capabilities. Once you learn to express yourself in it, you'll never be happy writing anything else again.

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

My impression is that the reason Haskell isn't more popular can't be attributed to one large problem, but rather a series of small paper cuts. The String type, record issues, and build tool fragmentation all make the barrier to entry higher than it needs to be for an already difficult to learn language. If I could change one thing, I'd go back in time to fix those paper cuts before they became entrenched in all of our base libraries and gave Haskell the stigma of being an impractical language for industry.

Joseph will be talking about Open Strings on the 10th of September at 19.05 CEST, Joy track.

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

Top comments (0)