Skip to main content
  1. Blog/

After 7 Years in Production, Scarf Has Reluctantly Moved Away from Haskell... to Python

Oral Ersoy Dokumaci
Author
Oral Ersoy Dokumaci
AI and ML systems for labor markets. Python developer. Former quant.

On July 10, Avi Press published a post titled After 7 years in production, Scarf has reluctantly moved away from Haskell. Press is not a casual Haskell user; he has been writing Haskell for 15+ years. He serves on the Haskell Foundation board and the Haskell.org committee, and built his company on Haskell.

The post went viral, partly because someone who loves Haskell was suddenly criticizing how things are going for Haskell in the age of AI. But another big part is that he said they are moving to Python, not TypeScript, Go, Rust, or anything else people might find more suitable.

Haskell is the type-obsessed language, whereas Python is dynamically typed. On paper this reads as trading away everything Haskell people signed up for. But the reasons should be clear to anyone who is writing Python in production, and puzzling to anyone who is not.

Batman slapping Robin meme, Robin gets cut off saying “Python is a scripting-”

Summary of Migration Reasoning
#

Scarf provides usage analytics for open source projects. For seven years its backend was Haskell, and the company was one of the language’s reference production users. The post announces that new development now goes into a Python API server running next to the Haskell backend. So, the Haskell footprint will shrink gradually.

The core argument is about AI changing the economics of a development loop:

If an LLM can produce a working implementation in a few minutes, but your compile step takes dramatically longer, then your language and build system have become a bottleneck in the development loop.

Press adds two other reasons: ecosystem friction in an AI era where other ecosystems are accelerating, and a community where a strong cohort openly rejects AI-assisted workflows while Scarf’s actual operations moved the other way.

The Reaction
#

The post hit the Hacker News front page. Lobsters filed it under the tag vibecoding, which should tell you the tone there. The Haskell Discourse thread ran to many replies with Press answering questions inside it. The Register covered the aftermath under the headline “Prominent Haskell defector pilloried by anti-AI purists”, where even the Haskell Foundation’s executive director urged the community to stop the pile-on. Prime reacted to it with “Haskell is DONE”; check the comments section if you want to see some action. For a language migration post, this is about as polarizing and viral as it gets.

The most common objection from outsiders inverts the article’s logic (which is how Press says he used to think about errors too): LLMs produce a lot of junk, so you want a stronger type system to catch it, and moving to Python throws away the safety net when you actually need it. A related camp accepts the premise that agents need fast feedback but argues the destination should have been Go or TypeScript, fast compilers plus static types, rather than Python.

There are counterexamples in both directions. An engineer at Bitnomial, a financial exchange running Haskell, reported that Haskell plus modern agents is a productive combination because compiler feedback makes the agent converge faster. The founder of Cachix mentioned in the thread that they moved on from Haskell about two years ago. The Haskell Discourse thread was less technical and more hurt.

Maybe I missed it, but I didn’t find anything on how the Python community reacted to this.

Why the Switch to Python Makes Sense
#

The silence on the Python front could be because, if you write Python for a living, there’s nothing really confusing about the move. I can easily give a few reasons:

  1. Python has rich static typing support, and it keeps growing. The Hacker News objection treats Python as the untyped language of 2010. Production Python in 2026 is type-hinted and checked by your favorite type checker in CI. The type system is expressive and getting richer with every release. Typing is one of only four topics that get a dedicated index on peps.python.org, with nearly 60 PEPs in it and counting.

  2. The Python ecosystem. Much of Press’s post is about ecosystem friction and stagnating growth, whereas Python has one of the largest ecosystems and developer pools in existence, if not the largest.

  3. AI writes Python better than it writes anything else. There is an enormous amount of public Python on the internet, and models are a function of their training data. The gap will probably shrink over time as models get better at rarer languages, but today an agent iterating on Python has seen more of your exact problem than it has in any other syntax.

  4. Python can be made fast where it matters. The standard Python playbook is: profile, find the hot path, and move it to native code like C, C++, or Rust. CPython itself is also getting faster with each release, there is an experimental JIT, and free threading (no GIL) is officially supported. Scarf’s own migration follows the same logic. So far they have kept Haskell for the performance-critical gateway and moved the ordinary API work to the language that iterates fastest.

Is This the End of Haskell?
#

The current problem is that a loud chunk of the Haskell community won’t touch AI with a ten-foot pole, and I doubt that will change soon. If you’re an academically inclined language, and you’re also adopting AI slower, you’ll lose more people to other languages for production work, that’s for sure. Haskell’s community is probably going to get smaller too. Yet, I’m pretty confident they will survive all four seasons of AI because their focus is more like a giant research project than writing software for production. Honestly, it should be more surprising to people that there are real companies writing real software with Haskell.

I just said a bunch of things about Haskell, a language I have never written at all, let alone for production. It’s possible that I’m ignorant of certain things about the language, much like when someone who has never written Python says “Python is a scripting language, not for production.” The difference is that I can see that Haskell’s popularity is going down, whereas Python has consistently been the most wanted language in developer surveys. Do they really think people keep choosing Python because they love writing scripts with it?