Low-hanging fruits in the Haskell ecosystem

Migrating a thread where @visortelle describes low-hanging fruits he sees in the Haskell ecosystem

For enterprises, the long-term stability of a platform with a clear releases schedule is very important.
Recently funded GitHub - haskellfoundation/stability: Issues and proposals related to the HF Stability Working Group is trying to solve this issue. :grapes::cloud::grapes:

Yes, agreed.

Commercial support is very important for many companies and if I understand it right, there is no such option for Haskell. Probably it has the sense to show that there are people in the community who would be able to fill this gap for money if needed. Register a company, create a website, and actively promote it. It won’t have clients from start, but the existence of such an option would help to pass one of important filters for corporate users. :grapes::cloud::grapes:

Hmm, are you familiar with Well Typed, Tweag, Obsidian, Serokell, Typeable, Platonic Systems? (There are probably many others than I don’t know about.) Or were you thinking of something else?

OK, we still don’t have ready to use framework to take and use for enterprise or startup project. Under the word “framework” here I mean a set of libraries written in more-less consistent style and that work well together.
Such framework may be not too flexible, but I belive that web framework with “All batteries included. Don’t think too much, just take this and that.” approach is a main key for mass language adoption. :grapes::cloud::grapes:
Ruby is a great success-story example here.

Are you familiar with IHP?

It’s important to have a strong leader who can help to develop a roadmap for such framework and help developers to follow it. I very much see Michael Snoyman in this role.

I agree that strong and visionary leaders are important. Michael has a lot on his plate at the moment so I hope there are others who will step up to lead too!

I read some Haskell Foundation’s discussions regarding hopes to attract volunteers. In my opinion, free volunteering won’t solve any problems. You can volunteer for a month or two, but most developers maybe want to help but are too tired after the day at the main job to contribute effectively. I know people who are bored of working on enterprise projects at a primary job, want to contribute to open-source and learn new stuff.

That’s very interesting feedback, thanks.

Probably for Haskell Foundation it has the sense to hire 2-5 full-time contributors in relatively cheap locations to live like Poland, Georgia some Asia countres, and others where you can live quite well for 1000-1500$ netto per month. :grapes::deciduous_tree::grapes: I’m sure there are experienced devs (without family and kids yet) who would prefer personal interest over high salary.

Great idea, thanks for sharing,

Regarding closer fruits that I’m thinking about:

Loads of great ideas, thanks very much!

5 Likes

I volunteered to help. But instead of a carefully considered set of tasks, I was told about a Github site - and that’s it. So, it didn’t go anywhere.

I am considering starting a programming blog - but don’t know where to start.

1 Like

Sheesh… I think this is the single most important topic atm (stability, especially in GHC)… but not really a low-hanging fruit.

Sheesh… I think this is the single most important topic atm (stability, especially in GHC)… but not really a low-hanging fruit.

That’s why these grapes are on clouds, not on trees. :slight_smile:


Hmm, are you familiar with Well Typed, Tweag, Obsidian, Serokell, Typeable, Platonic Systems? (There are probably many others than I don’t know about.) Or were you thinking of something else?

Under “Commercial support” I mean something like Oracle provides for Java.

You can find some use-cases here:

https://www.oracle.com/java/java-se-subscription/

and pricing here: Product Details - Oracle Java SE Subscription (On-Premises)

Such subscriptions give enterprise clients confidence to make it easier to sleep at night. The client’s thinking, in this case, is quite simple:

“- If we pay money for technical platform support, then in case of security issue or a critical for us bug in the platform, we can count on a quick solution to the problem.”

And if it’s needed, then there are pool of developers with competency in GHC that ready to support GHC 8.x.x for the next 10 years for some crazy amount of money.

I know the companies you mentioned above, but I don’t know, do they have and provide such services. If yes, then it’s great. :slight_smile:

Are you familiar with IHP?

I heard about it, but not familiar. Will play with it in my free time.

Probably it’s a framework I’m talking about, just need more marketing. :slight_smile:

I agree that strong and visionary leaders are important. Michael has a lot on his plate at the moment so I hope there are others who will step up to lead too!

Yeah, people who have great technical skills and can effectively lead others are rare and important.

Loads of great ideas, thanks very much!

I hope so. In fact, it’s easier for me to do something than to tell, so I hope that will be able to make and show something in the near future.

:slight_smile:

1 Like

At the risk of starting yet another topic, I’ve been having trouble trying to understand what is meant by “stability”. There’s API stability, i.e. whether code written against an earlier version of the API works against the a later version one[1]. There’s also “stability” in the sense that the software doesn’t crash, or more broadly behaves as it should. So what do we mean when we talk about “stability” in the Haskell ecosystem?

I can think of some examples of where a GHC release has broken my code

  • template-haskell (boot library change, happened many times, almost always required CPP for a backwards-compatible fix)
  • Simplified subsumption (language change, the fix is backwards compatible)

Is this the kind of thing that people mean when they talk about GHC stability? Could we collect some more examples?

[1] and if “language” is considered an API then “language stability” could fit under this banner

Sure, but that’s an extremely high bar. Oracle is one of the world’s largest tech companies, and it owns Java. Is there something similar for Python, for example? My guess is not, there are just a number of independent contractors of different sizes, same as for Haskell (but fewer and smaller).

it’s easier for me to do something than to tell

I know the problem! Thanks for doing, but thanks for telling here too.

1 Like

Is there something similar for Python, for example? My guess is not, there are just a number of independent contractors of different sizes, same as for Haskell (but fewer and smaller).

Probably not, but I found other examples:

Currently, there are very few GHC versions that work well on all platforms. Either there are issues on windows, darwin M1, darwin x86 or FreeBSD.

If there are no platform issues, there may be serious bugs (e.g. correctness bugs).

To safely rely on a GHC version, you need to either ask people who deal with those issues every day or do considerable research. There’s a reason why both ghcup and stack still stick to 8.10.7.

If you want GHC on windows, there’s a long history of issues you need to navigate through, some of which are only fixed downstream (e.g. manually in chocolatey, but not upstream).

But we’re not pausing language feature development to fix all those issues. Both things move fast at the same time and you’ll be forced to test large changes to the compiler and the language in order to get improved platform support.

So yes, it’s about API, about release management, about priorities and the idea of LTS releases.

7 Likes

It sounds like these issues are to do with the “reliability” aspect of stability, is that right?