We have a group of 5 Haskllers, (some quite experienced, some not so much) joining together to work on a new open source project. The overall goal is to create something that is a useful/valuable addition to the ecosystem while improving our Haskell skills.
We have just begun and are deciding what the project will be (some ideas below) and are looking for additional collaborators. All levels of contribution are welcome including suggestions on what the project should be.
Here are our initial thoughts so far:
A parallel library to go’s bubbletea but written in Haskell. Maybe even a naive rewrite?
A database library. Unfortunately database libraries are very common in Haskell
Some kind of contribution to/iteration on dear-imgui
A reference project of sorts in full-stack Haskell. Website/game etc.
A declarative language for REST apis that generates encoding/decoding code in various programming languages. See servant-elm for example.
A generic package manager. A lot of people in Haskell write their own programming languages. Maybe we could provide an easy way to set up a package manager/documentation for some arbitrary programming language.
Please post here if you would like to join or if you just want to contribute a project idea. We will be having a video call in the coming weeks to discuss.
Re. bubbletea, you might want to check out Haskell’s brick package, which I really like.
I like the idea of a reference project in full-stack Haskell, that showcases a bunch of the nicest Haskell packages like lens, diagrams, foldl, megaparsec, streamly, servant, etc etc packaged up in a web game or similar, but focuses on being beautifully documented and transparent.
I’ve looked at Windows support for vty and by extension brick. I don’t think it is particularly difficult. Although I don’t have that much time to work on it.
If I may plug my coworkers’ work: reflex-vty. Same underlying stuff as reflex-dom. Not sure what other pair of libraries allow one to do same handling of interactivity for web and terminal alike :).
I’d suggest trying to contribute to existing libraries instead. Pretty much everything is understaffed. For example amazonka has several issues open blocking an v2 release, persistent doesn’t support UUID’s out of the box or data-pool doesn’t even have tests!
This isn’t as exciting as creating your own library, but it would likely have a bigger impact.
Furthermore, maintainers are often knowledgeable domain experts who happily share their wisdom.
I’d love to try this out, but are there any code examples anywhere as a how-to for a very simple reflex-vty application? Looking at the hackage page, I had some trouble working out how to use the library.
I can report back and add that reflex-vty is extremely cool and the example was pretty clear. Building a simple version of something like Python’s panel library, using reflex, where you do interactive/live plotting, would be a super cool project IMO.
If you want to make an impact, working on core libraries is the safest way. For example, here is a list of newcomers-friendly bytestring issues: Issues · haskell/bytestring · GitHub
I’m still a beginner so yes. We have only met once so far and have no final plan yet so don’t know how things will go. I’ll add you to the group and we will see together how things work out.
What is you approach to learning … books, courses, etc?