{"slug": "core-async", "name": "core.async", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.058, "rising": -0.98, "first": "2025-12-15", "latest": "2026-05-08", "why": "", "why_is_quote": false, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 1, "compare": 0, "warn": 0}, "spark": [0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "", "kind": "", "icon": true, "domain": null, "github_repo": null, "official_url": "https://github.com/clojure/core.async", "pricing": "", "aliases": ["core.async"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 768991104, "item_id": 48061944, "url": "https://news.ycombinator.com/item?id=48061944", "by": "TacticalCoder", "date": "2026-05-08", "stance": "recommend", "quote": "I was heavily using it and it worked", "excerpt": "> fun fact: clojurescript had support for asynchronous paradigm through core.async library (CSP style) long before async/await landed in javascript itself. Definitely. I was heavily using it and it worked: a few quirks but we did have async/await since more than a decade. I think I discovered it after watching a talk by David Nolen. Since then I moved to minimal JavaScript on the front-end: SSE is one-way and that is", "context": "", "use_case": "async programming in ClojureScript", "switched_from": "", "story": "ClojureScript Gets Async/Await"}, {"id": 768978928, "item_id": 48061183, "url": "https://news.ycombinator.com/item?id=48061183", "by": "embedding-shape", "date": "2026-05-08", "stance": "recommend", "quote": "using-promises-with-core-async", "excerpt": "You're still able to do so, as we've been able to in ClojureScript land for many years already, since ultimately they're just Promises! I don't think that's going away with this new function hints. https://clojurescript.org/guides/promise-interop#using-promises-with-core-async", "context": "", "use_case": "", "switched_from": "", "story": "ClojureScript Gets Async/Await"}, {"id": 740365920, "item_id": 46272870, "url": "https://news.ycombinator.com/item?id=46272870", "by": "jwr", "date": "2025-12-15", "stance": "recommend", "quote": "great concurrency primitives, core.async", "excerpt": "Clojure is just better than CL in pretty much every respect. Excellent and well designed standard library, great concurrency primitives, core.async, built-in transducers (CL has SERIES which does a kind-of similar thing, but isn't as well designed and integrated) and the dominant immutability all let me write more maintainable code. Also, I can re-use model code on the client side (ClojureScript), so there is lots of", "context": "", "use_case": "", "switched_from": "", "story": "AI agents are starting to eat SaaS"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["async programming in clojurescript"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48059662", "title": "ClojureScript Gets Async/Await", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=46268452", "title": "AI agents are starting to eat SaaS", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 1}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {"neutral": 1, "recommend": 2}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 768991104, "item_id": 48061944, "url": "https://news.ycombinator.com/item?id=48061944", "by": "TacticalCoder", "date": "2026-05-08", "stance": "recommend", "quote": "I was heavily using it and it worked", "excerpt": "> fun fact: clojurescript had support for asynchronous paradigm through core.async library (CSP style) long before async/await landed in javascript itself. Definitely. I was heavily using it and it worked: a few quirks but we did have async/await since more than a decade. I think I discovered it after watching a talk by David Nolen. Since then I moved to minimal JavaScript on the front-end: SSE is one-way and that is", "context": "", "use_case": "async programming in ClojureScript", "switched_from": "", "story": "ClojureScript Gets Async/Await"}, {"id": 768978928, "item_id": 48061183, "url": "https://news.ycombinator.com/item?id=48061183", "by": "embedding-shape", "date": "2026-05-08", "stance": "recommend", "quote": "using-promises-with-core-async", "excerpt": "You're still able to do so, as we've been able to in ClojureScript land for many years already, since ultimately they're just Promises! I don't think that's going away with this new function hints. https://clojurescript.org/guides/promise-interop#using-promises-with-core-async", "context": "", "use_case": "", "switched_from": "", "story": "ClojureScript Gets Async/Await"}, {"id": 768971665, "item_id": 48060729, "url": "https://news.ycombinator.com/item?id=48060729", "by": "jwr", "date": "2026-05-08", "stance": "neutral", "quote": "This is actually a much wider problem and not specific to core.async", "excerpt": "> has no inherent error model I'll pitch in here, as I've been doing a lot of thinking about this issue and ended up writing my own (tiny) tools for handling anomalies, modeled on the very well thought-out https://github.com/cognitect-labs/anomalies categorization. This is actually a much wider problem and not specific to core.async. Handling anomalies is difficult. It used to be that you would have exceptions and er", "context": "", "use_case": "", "switched_from": "", "story": "ClojureScript Gets Async/Await"}, {"id": 740365920, "item_id": 46272870, "url": "https://news.ycombinator.com/item?id=46272870", "by": "jwr", "date": "2025-12-15", "stance": "recommend", "quote": "great concurrency primitives, core.async", "excerpt": "Clojure is just better than CL in pretty much every respect. Excellent and well designed standard library, great concurrency primitives, core.async, built-in transducers (CL has SERIES which does a kind-of similar thing, but isn't as well designed and integrated) and the dominant immutability all let me write more maintainable code. Also, I can re-use model code on the client side (ClojureScript), so there is lots of", "context": "", "use_case": "", "switched_from": "", "story": "AI agents are starting to eat SaaS"}]}