[go: up one dir, main page]

  1. 20
  1.  

    1. 24

      Required reading: https://www.haskellforall.com/2023/10/my-views-on-neohaskell.html

      My take is that the author came out of nowhere, with a grand plan, but no direction. Last I looked it was wishlist/vaporware. I wish him the best though.

      1.  

        I was also a bit skeptical, but it’s slowly producing some code and building a community. Their Discord server has a few hundred users.

      2.  

        I wouldn’t say vaporware, but its on its early days

      3.  

        Thanks. I was getting echoes of the “commercial Haskell” group and initiative that gave us Stack (and all the controversy, fragmentation, and bad feels that came along with that) but this is more ambitious in terms of UX, with less to show. I don’t expect it will go very far, sadly. It’s pulling against the current of the “Avoid Success At All Costs” culture that keeps Haskell alive with generous subsidies from academia.

        1.  

          Huh, I loved stack when it first came out, and always appreciated what the commercial Haskell people were doing (but then I only use Haskell for work). Stackage made it so much easier to avoid dependency hell. Stack made it so much easier to get projects up and running on new machines. And (like XEmacs vs gnu), we eventually got the best bits of it back into cabal. I have a feeling cabal would’ve moved much more slowly without stack showing what could be done. (Now otoh we have nix to further fragment the build/dep story..)

          I don’t get much commercial haskell vibes from neohaskell though. Not sure what to make of it. Is it a bit like an opinionated framework? Like I see https://dev.to/neohaskell/neohaskell-v040-update-with-concurrency-fixes-and-architectural-improvements-267b which talks about event queues and workers and such. What if today I need to write a cli tool to parse a json file and make a frequency table, is neohaskell then not the right thing to use? (Do I need to depend on http-conduit for that? Am I wrong for worrying about unnecessary dependencies if I use neohaskell?)

          1.  

            I definitely appreciated what the commercial-haskell people did but I also noted a lot of tension in the community at the time. It was certainly “disruptive” and contentious, but perhaps a stagnant community needs a little competition sometimes. As for the “a nix on both your houses” response to the cabal-vs-stack struggle… well, I think it ends up looking better for Nix than for Haskell at large. But that’s neither here nor there.

            To be clear, I expect neohaskell to have less of an effect on Haskell at large than commercial-haskell did. I only see a parallel here because neohaskell seems to want primarily to make things easier for newbies and doesn’t mind breaking with the existing Haskell community to do so. I say “seems” because I don’t really see much to evaluate about neohaskell besides the goal statements. I’ll venture to predict that it will live or die based on how it handles the relationship between its proposed new ecosystem and the existing Haskell package ecosystems. Your concern over dependency management is an example of the many latent issues here.

    2.  

      This is great. A modern, easy to use Haskell with good tooling is what I’ve been yearning for for years. So far my hopes have been on Roc, but the more the merrier :D

    3. 4

      This seems to be to Haskell what Elixir was to Erlang. I wonder what kind of emigration will it get. For instance, Rust is the refuge for C++ developers; where would NeoHaskell adopters be coming from?

      1. 5

        I liked the Simple Haskell proposal of sticking to a set of curated language extensions. IMHO, that addresses the main problem with Haskell. Everyone is coding on a different dialect, and often adding unnecessary complexity. NeoHaskell seems to be aiming at something similar.

        So, potentially, some developers might come from Haskell. And perhaps from other FP languages without good adoption. Plus, it seems that NeoHaskell is aiming at good Python interop, so it could always be a complementary language for devs with Python experience looking for a faster and safer language.

        1.  

          Hopefully something like Simple Haskell or NeoHaskell catches on. Haskell is a really neat language, but “everyone is coding on a different dialect” is why I stopped coding in Haskell. I would often run into an issue or would be looking at someone’s code only to find the “best practice” was an import that changed Haskell syntax and required reading a whitepaper to understand. I can’t read a new paper every time I want to solve a problem, especially while still learning a language.

          1.  

            Do you have examples of this? It sounds like you were burned by something (arrow syntax?) a few times, but I haven’t really had this experience. I acknowledge the wealth of syntactic changes offered by pragmas, but I don’t really think the ones I’m used to require whitepapers (I’m thinking of the myriad attempts to fix record syntax, view patterns, multiwayif, monad comprehensions maybe?, there are others probably I can’t remember).

            I will cede that some implementations of code are arcane and may require reading the equivalent of a whitepaper. And there indeed is a nontrivial amount of Haskell written that way. So if you roll up to an implementation and see a Fix datatype defined and some *morphisms, then yeah I can see why you would be deterred.

            (typical disclaimer: not a Haskell expert)

    4. 3

      https://neohaskell.org/docs/getting-started/intro#a-batteries-included-language

      NeoHaskell is a language, a framework, and ecosystem that tries to aid in software development for a wide range of fields.

      A language. Like, a sub-language or dialect, “Haskell: The Good Parts”?

      A framework? Like the Elm’s Architecture?

      An ecosystem! Like, with its own packages? Where do they come from? Who maintains them? How difficult is it to hop over the fence into the wilds of Hackage?

    5. 3

      As someone that doesn’t really know Haskell, it looks pretty much like Haskell. Maybe I didn’t catch it with a cursory glance, but it would be helpful to have a side by side comparison of a snippet of code in Haskell vs NeoHaskell.

      1. 7

        It claims to be a Haskell dialect, but I think it’s just GHC Haskell + a custom prelude + some command line utilities. Essentially a rebranding.

        1.  

          To me, that would be fun, so long as there are guardrails to prevent accidentally circumventing the changes. Like, don’t let me accidentally import something from the greater Haskell ecosystem and, ideally, make it easy to tell which parts of that ecosystem are “OK”.

      2.  

        Yeah, I’m pretty sure the code examples are all base Haskell. My impression is they’re there as a sales pitch to non-Haskellers.

    6.  

      Not even open for 2 seconds & I got a screen-takeover pop-up to say join the proprietary Discord chat room. This is off to a terrible start for welcoming devs…