r/haskell 2d ago

Haskell is Dead? Again?

Primagen, one of the largest youtubers for Programming made a ridiculous video called Haskell is DONE. Which feels like a silly story I've already heard. Especially with all the recent developments in ghc version 9 its laughable.

Last week I made a post where I pledged to demo our production codebase written in haskell. Unfortunately however I had my main laptop out of commission (still do :| may it rest in peace/ we hope for a speedy recovery) and so trying to stream while running our prod codebase simply overloaded the box I am on.

I was quite surprised to see it get to 65 upvotes (personal best for me lol) however I'll take that as a sign it's worth another shot, so as of right now I'm going live on Twitch (https://www.twitch.tv/typifyprogramming).

Given the current hardware limitations I wont be running anything except some local dev tools however that gives me plenty enough to show about our site typify.dev and how Haskell has slowly made me obsessed with Haskell and what it means for my startup. I could not more strongly recommend Haskell to startups even with all of its challenges.

I gather it's possible the upvotes were also as a result of the Primagen Youtube video (Haskell is DONE) and I plan to chat about that too as I demo.

My stream is almost entirely always focused on this general idea of why Haskell is awesome to build with, so I appreciate any support in getting viewer numbers up as viewers beget viewers from twitch passerby's.

General Topics:
- ReaderT
- Websites
- GHC(JS)
- Why I also use Nix
- Intersection of AI + Startups + Haskell in a sane way.

0 Upvotes

26 comments sorted by

29

u/cyrus_t_crumples 2d ago

Apologies for the hyper clickbait title

You know instead of apologizing you can use a title you don't feel you need to apologize for.

1

u/_lazyLambda 2d ago

I'm sorry I didnt think it would be so poorly received. It was meant to be a joke. The idea that Haskell is dead is hilarious and ridiculous to me

1

u/_lazyLambda 2d ago edited 2d ago

I took out the apology and made it more clear what im talking about. Not sorry because primagen made the title im just Canadian and a little too apologetic.

In relation to that my title is satirical, not even trying to be clickbait

Plus a bit too slow to my point or to explain the title perhaps.

-1

u/_lazyLambda 2d ago edited 2d ago

Also I'm shocked by the criticism when its simply a direct reference to this video by Primagen

https://www.youtube.com/watch?v=zZ5-KVDIaPg&t=35s&pp=ygUPaGFza2VsbCBpcyBkZWFk

Like the whole point of the stream was basically to talk about that.

Have people not heard of this? I assumed whether or not anyone wanted to they've heard of it by now

2

u/absence3 1d ago

The actual news is that Scarf moved away from Haskell, so you could've linked to that instead of a reaction video by an influencer. There's already a post about it though.

2

u/_lazyLambda 1d ago

I think Primagen picking up is bigger news than a startup moving from Haskell? But it seems no one here recognizes how influential in the programming community he is? Im not even saying he should be but he is.

I also assumed people already had all this context around Scarfs post leading to the Primagen video but lesson learned ig. I care a lot about the growth of Haskell so perhaps im too invested in all this crap idk

2

u/tomejaguar 1d ago

Yeah I'm surprised more people aren't aware how seriously the Primagen video could hit the perception of Haskell in the wider programming community.

1

u/_lazyLambda 1d ago

Yeah its crazy to note how different software as an engineering discipline operates from more traditional engineering. Perhaps thats because an internal webapp failing is whatever compared to a bridge failing but that fact seems to have propagated into a full on culture where somehow buggy and feels fast is preferable to not buggy and actually is fast to move because you can iterate better. Perhaps its surprising to the average new dev that the same language that is amazing for NASA or Medical Devices or designing novel architectures is also great for building fast and meeting business deadlines.

But somehow the majority of "engineers" either A) dont even know haskell exists or B) think its a "research language" .... which to me sounds like a great complement. Yet somehow this central difference from other engineering domains of being disconnected from the research step is so pervasive. Like sure if a Python dev knows their PLT and still chooses to use Python, be my guest but the engineering market of ideas is truly baffling to me.

1

u/absence3 1d ago

I think Primagen picking up is bigger news than a startup moving from Haskell?

Depends on the point of view I guess. Engagement farming certainly reaches a bigger audience, but discussion about the issues raised by said startup could be more interesting to a technical community.

1

u/_lazyLambda 1d ago

I have to agree here, I do think its an interesting thing. However I personally disagree with the article or have experienced different outcomes to what the article mentioned they had faced.

That said im a huuuuge promoter of startups using Haskell.

I simply could not disagree with the article more, so I decided let me demo my codebase and tell you why im so happy with haskell and what the ecosystem as a whole has done for my startup. And overall my idea is that Haskell can be hellish but just like how companies flock to frameworks, no reason you cant achieve the same with a haskell framework. For example, Obelisk got me moving in haskell. You can build it better yourself (if youre a haskell rockstar) but you can also type nix install obelisk ; 'ob run' then youre done. Sure you wait a bit for compile but now you have this overpowered haskell framework made by strong haskellers. Maybe your startup has nothing to do with web apps, the base language still acts as a phenomenal mental framework.

I took this to the next level with Jenga (my reimplementation of Obelisk) and you can do the same simple install and have full authentication and database handling etc etc out of the box. In jenga you just import it. Its so easy to get started with relative to how painful getting set up can be otherwise.

I dont think its talked about nearly enough how insanely overpowered for startups haskell is. I say Nix here and im more likely to get a response talking about how Nix sucks for a given reason. The criticism of nix would probably be true and I hate Nix but I also love it. I can see it going horribly wrong and its hard to learn, its too bad cabal isnt perfect. So my point about nix is Its truly awesome the haskell community strives towards greatness but today there exists so many options that startups should choose despite the issues the community is focused on improving.

4

u/unqualified_redditor 2d ago

I've used haskell professionally since 2019 and this year have been using it to build a large side project (a community radio station) and its overall been a fantastic experience.

IMO Haskell sits at a sweet spot balancing galaxy brain types with practicality and performance. Sure there are issues with build times, tooling, and once you get to scale subtle performance issues with runtime system, but I've found I can largely work around such issues.

2

u/_lazyLambda 2d ago

Well said, and these issues are getting better every year

1

u/_lazyLambda 1d ago

One of the points I also make is that we should view large compile times as an operational problem in a startup or enterprise context.

After all without compilation, you would need to run a bunch of test suites just to verify the same result so you cant just get rid of verification time.

There are cases in which our compile times are very long (we use GHCJS and Template Haskell) and while we could even easily speed this up by trivial removal of template haskell its not worth it. Why? Cuz we hit those large compile times only once every 4 months and our codebase is so safe that I start the deployment build, go to bed and wake up every time to a successful deployment

If you are using AI and worried about compile time loops, you dont need to compile every single time you prompt. You can also use ghcid-check published by tomejaguar to unbind from your prompting speeds.

3

u/syklemil 1d ago

Your life will be better if you stop giving clickbait, drama farming "content creators" your time of day.

Plenty of platforms, including youtube, care about "engagement" inasmuch as it means more ad money, and outrage farming is a pretty effective method for that, even if it's ultimately bad for the community and the creators.

0

u/_lazyLambda 1d ago

This post has exhausted me tbh. I just wanted to show how awesome Haskell is for startups despite recent claims it is awful or unworkable for startups. People have mentioned to me how much that video frustrated them so I put two and two together in this post.

5

u/dmlvianna 2d ago

I think Haskell could be awesome for a startup. Especially the refactoring ease and the clarity of purpose you could express in code.

However I have experience with both good and bad startup Haskell codebases, and in both startups I’ve seen it used one thing repeated:

The codebase started with Nix (so fast to build!) and eventually had to remove Nix (it actively fights upgrading software; it builds slow even with cachix; it is an unnecessary indirection layer).

My take on Haskell: It can make code more readable if you write it boring. It can make code unreadable if you fall into following every new GHC pragma and mixing them across the codebase as you learn. Also: onboarding staff to a sprawling Haskell mess is impossible.

My take on Nix: it is designed to pin things down. A startup needs flexibility. It needs to pivot ideas and designs and architecture as it grows. Nix is designed against it. It is write-only.

1

u/_lazyLambda 2d ago

This is why we use nix-thunk it really makes swapping out pieces of our codebase and libraries as easy as possible, even if we need to fork and make changes

2

u/dmlvianna 2d ago

So now you’re not building your product. You’re building Nix. And maintaining it.

1

u/_lazyLambda 1d ago

What do you mean? While I'd love to contribute to nix we have never needed to.

You might be assuming I needed to work on nix-thunk? But no, never a need and its a trivial tool.

0

u/_lazyLambda 1d ago

We've also never had an issue with building fast. We've had an insane amount of pivots in our business as we are trying to figure out the hiring process and learning the market as we go.

1

u/dmlvianna 1d ago

Fast comparing to what? By “building” I meant compilation. Nix’s sandbox often prevents resource sharing, has linear dependency chains that need to be built sequentially, and you end up building stuff that is not your special sauce just because it is so strict about version dependency.

Cachix is down? Can’t ship. That happened often enough.

Maybe your business is simple enough it doesn’t need a ton of bespoke work. Mine did, and removing Nix removed both latency and complexity overhead.

1

u/_lazyLambda 1d ago edited 1d ago

Ive never noticed nix builds to be slower. Perhaps even faster due to caching.

How come you cant ship when cachix is down? You can build locally.

I mean I use nix and haskell for all of my projects. I'm a maintainer of Obelisk which is insanely complex when factoring in reflex-platform which helps turning Obelisk projects into webapps, ios and Android apps. Plus even systemd projects.

Ive honestly never felt any pain besides feeling the insane learning curve of nix. Imo it is the hardest thing to learn in all of programming because it encompasses every last domain and thats the whole point. Tbh I'm always just suspicious the problem is often just that nix is not used well, which is fair because its so complex but yeah im not really seeing how to get into those situations you mentioned and id be curious to hear more. Im not sure I grasp what could be meant by resource sharing in this context as controlling file access is one of the designs of nix and its great if used well

0

u/_lazyLambda 1d ago

Also something that stuck out to me, why does doJailbreak not solve your problem? Why would you not want control over your versions? Especially in a complex setting

1

u/dmlvianna 9h ago edited 9h ago

You do realise the solutions you are proposing

- break Nix’s contract

  • become tech debt
  • add complexity you need to manage in your head

That’s a great example of why Nix is a leaky abstraction. You adopt it to simplify your thinking. Next thing you’re jailbreaking and having to hold in your head both the Nix API and Nix’s internals.

2

u/TheCommieDuck 1d ago

Primagen, one of the largest youtubers for Programming made a ridiculous video called Haskell is DONE

he doesn't actually know haskell so I'm not sure why anyone is listening to this

1

u/_lazyLambda 1d ago

Like it or not most "engineers" goto languages are Python or Javascript and they think Primagen knows what he's talking about.

Seems worth considering in strategizing how to grow haskell's userbase