Hacker Newsnew | past | comments | ask | show | jobs | submit | linter's commentslogin

I recommend [Celery](https://docs.celeryq.dev/en/stable/). Celery is a simple, flexible, and reliable distributed system to process vast amounts of messages, while providing operations with the tools required to maintain such a system.

BTW its free.


How many people tried to pitch their own tool in this thread? We love that the article, discussions and the process has taught us more about what might need to be incorporated into the OSS version for Py. Once a feature is out there you can't retract it. It's v0.5 for this reason!

Free is good. We choose better. Free waits or competes with initial work priorities. We strive for zero open issues and real humans responding when you can't ship.


I believe the OSS part of this oban library covers a lot of the celery feature set and is free as well. You can run multiple nodes and knock yourself out without needing more infra than the existing postgres.

Oban has been a free and OSS project in Elixir for ages. There are some more advanced bits that are paid and that sustains the people that make it.

If you like Celery. Great. This is a different take. I didn't enjoy celery last I needed it but never got super familiar.


Lacking documentation. Take a look at Django if you want to learn how to write your documentation.


Most of the documentation is in mandarin, since it was developed in China.


Great, But \ is ugly


That's just what I was thinking too haha. Honestly I really like the rest of the syntax though. (And of course, the type system features look neat but it's easier to have an opinion on syntax.)


Your username matches your comment!

Also, I agree but I'm not sure what I would propose as a better token. Maybe another colon?

def printAndInc(x: Int32): Int32 \ IO =

becomes:

def printAndInc(x: Int32): Int32 : IO =

Or maybe, since functions need something after the \, even for pure functions, we just drop the \ and use the last argument?

def printAndInc(x: Int32): Int32 IO =


Why not something human readable? pure vs mut?

Other languages already have readable keywords in the function definition; extends, raises, where, having, Optional, and so on. They don’t feel unnecessarily verbose.


Because they’re working on algebraic effects so obviously IO won’t be the only effect out there. Also because “mut” is even more misleading as it doesn’t capture everything an “IO function” can do, in comparison to a pure function.


”mutates IO”? Anything is better than /{}. I don’t know, maybe one gets accustomed to it after a while? It would be rather verbose to write “returns Foo” everywhere. I’m just looking at this with fresh eyes and this aspect of the language is a token-soup. Other parts look neat though.


And so are forA and forM!


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: