Introducing NeoHaskell: A beacon of joy in a greyed tech world

Sounds like a noble cause, I wish you the best of luck :+1:

EDIT: Correction, I wish the initiator of the project the best of luck.

1 Like

I think that’s correct. You can see how e.g. the build system section on neohaskell.org is below the “coming soon” label. It does seem a bit strange to show a terminal screenshot of software that isn’t actually available.

Please note that I am just posting links, Reddit style. I am not the initiator of this project.

3 Likes

Thanks @janus for the link:

The main goal is to create many different pieces:

  • A remarkable standard library
  • An integrated CLI tool with precise error messages
  • Templates with planned architectures
  • Documentation with a set of recipes
  • Mobile app packaging
  • Python interoperability
  • And many more

Whilst

develop[ing] an optimal programming language and ecosystem that eradicates accidental complexity, either in mental form, or in code form.

“accidental” is doing a lot of heavy lifting there. If you didn’t aim for ‘Python interoperability’, that’d eradicate quite a bit of complexity, I suspect. (Doesn’t Haskell already include ‘a remarkable standard library’? Is the Python library so much more remarkable?)

I agree. Furthermore o.p. seems to agree: " I believe that in order for a product to be successful, the design process must be centralized in a single person." And yet “Anyone interested can contribute by participating in discussions …”. Contribute how/what at this early stage?

(I feel there’s a lot of marketing bumf/buzzwords in that text, far too little substance.)

And why didn’t the dude start by kicking around some ideas here/comparing to how similar projects fared? (Usually ran out of steam rather quickly, I fear.) Rather than putting the effort into a big manifesto. (Or perhaps they have been, without revealing the grand plan?)

1 Like

I’m sure you didn’t intend it this way @AntC2, but that comes across, to me, as really very insulting and dismissive. I’ve corresponded with the individual in question and I know them to be acting in good faith. You may not like the presentation style of the linked document, and indeed anyone is welcome to express on this forum that they don’t like something, but judicious choice of words really matters. Could I encourage you to choose a different way of expressing yourself on future occasions?

EDIT: The post in question was edited slightly and it comes across as less insulting and dismissive, but I still think we can strive for better.

4 Likes

This is a very exciting and inspiring manifesto! Many of the elements are things that I would like to see in Haskell, in an effort to broadening adoption of the language. Indeed, I have been spending a lot of my own time and energy working on them.

There is clearly a lot of appetite for making Haskell more accessible: 200 people have joined NeoHaskell’s Discord already!

The road is long and hard but if this project can galvanise people into enthusiasm and energy then the road will become shorter and easier!

6 Likes

I don’t like the opening sentence

Today, I’m proud to announce a (free and open-source) project that I’ve been working on for many years:

followed by a great deal of high talk. And then only much later does it become clear the “working on for many years” has produced only a github repo with a bunch of Issues none more than 0% complete, zero Closed; and a fancy website with everything labelled ‘Coming soon’, as noted already here.

Exactly! “announce … project” when there’s only ‘thinkware’ is not a judicious choice of words. Yes it would be an “inspiring manifesto” if there were more substance behind it. So far I see only high ideals (which we could all aspire to if we weren’t aware how hard they are to deliver [**]).

The individual may believe themselves to be acting in good faith. Does that mean they understand and are capable of delivering to those ideals? Putting more effort over those “many years” into establishing feasibility; and moderating the language to distinguish the feasible vs. the aspirational would help me share the hope.

[**] Only a few months ago there was talk of another “Dream”. Did anything come of it? I’m not seeing how ‘NeoHaskell’ is going to deliver to those aspirations without another compiler, or at least severe surgery inside GHC.

8 Likes

I believe you have completely failed to engage with the substance of my post, which is about your behaviour, not the behaviour of others (who are not even present on this forum).

8 Likes

I understand your feelings @AntC2 .

I suppose one perspective, though, is that it’s nice to see enthusiasm in the Haskell space for making newbie-friendly material; and it seems the path of most kindness is to encourage it, even if we are a bit skeptical on how it will turn out, and possibly a bit burned having seen a few of these before go not as far as we wish.

I think in some sense it’s just how incremental improvements look; people have to drop them for different reasons, and people have to inspire themselves in ways they find useful; for some this might be working in silent and showing something copmlete, for others it might look like building a community of people around them to lean on for motivational energy.

In that vein, I feel similary to @tomjaguarpaw ; I hope janus (the author, edit: thanks @tomjaguarpaw) makes some progress here and it becomes a nice contribution back into the broader Haskell ecosystem that perhaps can be brought back into Haskell itself, over time :slight_smile:

9 Likes

FYI @janus just submitted the post, it’s not his project.

2 Likes

I’m confused by this being marketed extensively before work on it has commenced. Wouldn’t it make more sense to present once something substantial exists? Usually a polished website, extensive roadmap, and a discord server come after an MVP. Or at least a single line of code.

4 Likes

Thanks @silky, so you (or NeoHaskell) are suggesting Haskellers avoid making newbie-friendly material? Or discourage people contributing?

Make things as simple as possible but no simpler. Software development is hard. Business requirements are complex. The more the profession brings in tools to manage complexity, the more the business (or its competitors) amps up the complexity in the requirements. It’s never-ending.

I’d encourage everybody to scan through this month’s discussions amongst the Steering Committee on extensions lifecycle, stability, warnings – and observe the agonising about impacts on users at all levels of experience, and the compromises in trying to be friendly to as many as possible. Would anybody like to help out NeoHaskell by pointing out where is the “accidental complexity” in any of that?

Thanks @silky, so you (or NeoHaskell) are suggesting Haskellers avoid making newbie-friendly material? Or discourage people contributing?

I’m genuinely unsure what part of my message you’re quoting that has me suggesting that? I’m not associated with NeoHaskell; but indeed, I’m suggesting the exact opposite of your quote above, if I understand you correctly?

2 Likes

I would like to invite the developer to Haskell Discourse, but nobody would be happy to enter in a thread where people are flinging mud to each other, would they?

Let us all try to be considerate meanwhile, Discourse is as welcoming and as unwelcoming as we users are!

13 Likes

As I dimly recall, I first saw the phrase “accidental complexity” here:

Out of the Tar Pit (2006)

…and it’s thought-provoking! So if NeoHaskell is inspired in some way by that article, it could be rather interesting. But considering the reasonable level of detail in that article…to not see even a basic (e.g. CLI-based) prototype seems peculiar at best.

1 Like

I think judging people’s tone too harshly on an internet forum should be avoided. People talk differently and come from different internet backgrounds. For instance, I don’t read anything in this thread as especially rude. But I come from an internet background where people will give raw opinions about stuff like this and generally avoid pleasantries and couching.

On the topic, my opinion on this NeoHaskell stuff is that I’ll believe it when I see it, and so far I see nothing (and I read the github issue tracker entirely, which is all that exists afaict).

I’ve been using Haskell to do real things for a while, and I never found learning it hard. I also haven’t found teaching it hard, and I continue to see people learn it fine. So I personally don’t see any use for NeoHaskell.

And to be somewhat cynical, it feels like one goal is some sort of community fork with no good reason.

Luckily, I really don’t see NeoHaskell becoming big enough for the forking nature of it to affect me, so that’s good.

^ I wouldn’t say any of that is mud-slinging fwiw

11 Likes

Shared with the permission of NeoHaskell author:

17 Likes

I think this idea has its merits but what I dislike about the presentation of it is how the haskell community is portrayed:

… a community primarily focused on resolving theoretical academic and mathematical challenges, often overlooking pragmatic solutions, which can be overwhelming for newcomers.

Sure, there are a lot of haskell developers working fervently to get some very cutting edge features implemented in the language (e.g dependent Haskell), but if I’ve learned anything from hanging out in the ghc channel, it’s that the developers are concerned with far more than academics.

I often see discussion of platforms like Apple or Windows doing weird things that break the compiler and the devs figuring out ways to resolve these issues. HLS, GhcUp, Cabal, Stack, VsCode Haskell, Ormoulu/Fourmolu, etc; are amazing tools that have come a long way towards improving the user/newcomer experience. And then there’s the push to make ghc webassembly capable as well!

These are important and complex issues that are useful and completely practical, but they take time. The Haskell Foundation has also worked very hard to make sure these issues are addressed as well

The issue is, that documenting technology is easy, changing the minds of an entire community is not.

Seeing quotes like this makes me think the author of the article maybe isn’t well enough acquainted with the community.
I think it’s easy to assume the community doesn’t care about making things more pragmatic because the change happens (probably) a lot slower than we want it too, but all of the efforts I’ve seen seems to indicate that everyone cares about these things, and we’re moving in that direction.

The way I see it, the solution isn’t to create competing projects, but to join in with the efforts of the other devs and help influence the change you want to see.

16 Likes

Thank you @cookE (and @f-a for reaching out), yes I think that’s sensible.

Better to put your efforts into moving from ‘thinkware’ (nobody here said ‘vapourware’) to some prototyping or deliverables, so we can understand better what we might get excited about.

2 Likes

Nick;

I recommend reading the first few sections and the conclusion of A history of Haskell - it may help you to understand why some of those solutions weren’t chosen for Haskell, and possibly why those new to Haskell (but having prior experience with more-imperative languages) can find the transition to be challenging.

I also recommend reading Why functional programming matters to better understand why we, as its users, believe that learning Haskell is worth the challenge.

4 Likes

The main thing I see here is people having strong opinions on:

  • how to engage contributors
  • how to market your ideas
  • whether the ideas are beneficial or harmful to the existing ecosystem (both is a possibility and must be openly discussed)

As such, it is important to share this feedback as early as possible. But it’s hard to share concrete disagreements, since those are still just ideas and they seem to be in flux even.

So far, the project has caused excitement, but also confusion.

As an analogy: if you’d announce on discourse that you’re going to fork GHC, possibly with proper funding, a lot of people will be anxious and a lot of people excited. You’re essentially creating an event horizon. This has happened before in our community and the results were mixed. Or: if you write a CLC proposal to ditch base for an alternative Prelude, you’ll probably get very mixed responses as well.

So, if you come up with grand and novel ideas, you should be prepared to be challenged. If you’re not, why are you going public with it?

In the end, this is a tech community.

It is ok to have strong opinions (as a proposer and as a challenger). It shows engagement. While we should value that people spend so much time on thinking about Haskell, we should also be aware that it doesn’t guarantee good decisions.

In my experience, sourcing opinions from the wider Haskell community is a tricky thing. In the past I was a big fan. Today I’m not, unless it’s about something very specific, like use cases for a feature. The noise and misunderstanding is often more draining than the actual valuable criticism.


I can’t say whether this project has merit or not. I find it hard to judge at this point. So I’ll just keep an eye out for it. Maybe it’ll take off at some point and surprise us all.

But if the original author thought this will be a walk in the park without controversy, I think they will also have to adjust their expectations.

While we should promote respectful speech, we should also be very careful to not discourage each other from voicing strong opinions, unless we’re ok to lose diversity of thought.

16 Likes