{"slug": "calva", "name": "Calva", "category": "browsers", "category_name": "Browsers and extensions", "description": "", "recommenders": 4, "commenters": 6, "warners": 0, "score": 3.849, "rising": -1.31, "first": "2025-12-13", "latest": "2026-06-02", "why": "the most excellent Calva extension which give me REPL-everywhere in my editing experience", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 1, "compare": 1, "warn": 0}, "spark": [0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "the most excellent Calva extension which give me REPL-everywhere in my editing experience", "kind": "", "icon": true, "domain": "calva.io", "github_repo": null, "official_url": "https://calva.io", "pricing": "", "aliases": ["Calva"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 774060176, "item_id": 48378761, "url": "https://news.ycombinator.com/item?id=48378761", "by": "veqq", "date": "2026-06-02", "version": null, "stance": "recommend", "quote": "Learning that https://calva.io/paredit/ exists and moving your cursor along the AST", "excerpt": "> What's the quintessential \"now I get it\" experience, in your mind? Learning that https://calva.io/paredit/ exists and moving your cursor along the AST or moving expressions around with nice hotkeys. Then making simple macros for infix notation and SQL and so on, which operate on the AST too. Realizing that there is no \"architecture\" because any repeated code or pattern can be easily abstracted away with a macro. Re", "context": "", "use_case": "Clojure editing with paredit", "switched_from": "", "story": "Why Janet?"}, {"id": 760525072, "item_id": 47532817, "url": "https://news.ycombinator.com/item?id=47532817", "by": "iLemming", "date": "2026-03-26", "version": null, "stance": "recommend", "quote": "Calva extension has great", "excerpt": "One doesn't need to dance around weird circles to give it a try. VSCode's Calva extension has great \"Quickstart guide\". Or you can just install Clojure, run it - it drops you into a REPL. Once you ready to get serious, grok some basic structural editing commands (grabbing an expression and moving it somewhere else would suffice) and REPL-driven workflow (Lispers typically don't type into REPL, they eval things direct", "context": "", "use_case": "Clojure REPL development", "switched_from": "", "story": "Data Manipulation in Clojure Compared to R and Python"}, {"id": 740127201, "item_id": 46257950, "url": "https://news.ycombinator.com/item?id=46257950", "by": "jhancock", "date": "2025-12-13", "version": null, "stance": "recommend", "quote": "the most excellent Calva extension which give me REPL-everywhere in my editing experience", "excerpt": "I use a modern Lisp everyday...Clojure. My dev environment is VS Code using the most excellent Calva extension which give me REPL-everywhere in my editing experience. Yes, that 70's experience was better...and it's still here, refined and built on modern tooling and runtimes.", "context": "Clojure developer", "use_case": "Clojure REPL in editor", "switched_from": "", "story": "We Lost Something: 1970s REPLs Were Better Than Modern Development Environments"}]}], "caveats": [], "who": [{"by": "jhancock", "context": "Clojure developer", "url": "https://news.ycombinator.com/item?id=46257950", "date": "2025-12-13"}], "tags": [], "use_cases": ["clojure editing with paredit", "clojure repl development", "clojure repl in vs code", "clojure repl in editor"], "compared": [{"slug": "cider", "name": "CIDER", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "gnu-emacs", "name": "GNU Emacs", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46257410", "title": "We Lost Something: 1970s REPLs Were Better Than Modern Development Environments", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48367907", "title": "Why Janet?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48076815", "title": "item 48076815", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47475930", "title": "Data Manipulation in Clojure Compared to R and Python", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46948278", "title": "I Wrote a Scheme in 2025", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 2}, "2026-01": {}, "2026-02": {"compare": 1}, "2026-03": {"recommend": 1}, "2026-04": {}, "2026-05": {"neutral": 1}, "2026-06": {"recommend": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 774060176, "item_id": 48378761, "url": "https://news.ycombinator.com/item?id=48378761", "by": "veqq", "date": "2026-06-02", "version": null, "stance": "recommend", "quote": "Learning that https://calva.io/paredit/ exists and moving your cursor along the AST", "excerpt": "> What's the quintessential \"now I get it\" experience, in your mind? Learning that https://calva.io/paredit/ exists and moving your cursor along the AST or moving expressions around with nice hotkeys. Then making simple macros for infix notation and SQL and so on, which operate on the AST too. Realizing that there is no \"architecture\" because any repeated code or pattern can be easily abstracted away with a macro. Re", "context": "", "use_case": "Clojure editing with paredit", "switched_from": "", "story": "Why Janet?"}, {"id": 769277793, "item_id": 48079862, "url": "https://news.ycombinator.com/item?id=48079862", "by": "jeremyjh", "date": "2026-05-09", "version": null, "stance": "neutral", "quote": "Simple nREPL server that seems to work with BetterThanTomorrow/calva", "excerpt": "So...you didn't ? https://github.com/nooga/let-go/tree/d9dc094822b2983ebf446048919f18da1beddb1d In 2023 he had a working Clojure compiler with: Macros with syntax quote, Reader conditionals, Destructuring, Multi-arity functions, Atoms, channels & go-blocks a'la core.async, Regular expressions (the Go flavor), Simple json, http and os namespaces, Many functions ported from clojure.core, REPL with syntax-highlighting a", "context": "", "use_case": "", "switched_from": "", "story": null}, {"id": 760525072, "item_id": 47532817, "url": "https://news.ycombinator.com/item?id=47532817", "by": "iLemming", "date": "2026-03-26", "version": null, "stance": "recommend", "quote": "Calva extension has great", "excerpt": "One doesn't need to dance around weird circles to give it a try. VSCode's Calva extension has great \"Quickstart guide\". Or you can just install Clojure, run it - it drops you into a REPL. Once you ready to get serious, grok some basic structural editing commands (grabbing an expression and moving it somewhere else would suffice) and REPL-driven workflow (Lispers typically don't type into REPL, they eval things direct", "context": "", "use_case": "Clojure REPL development", "switched_from": "", "story": "Data Manipulation in Clojure Compared to R and Python"}, {"id": 751876608, "item_id": 46992288, "url": "https://news.ycombinator.com/item?id=46992288", "by": "harperlee", "date": "2026-02-12", "version": null, "stance": "compare", "quote": "There is Calva for VS Code but the community default is emacs and cider", "excerpt": "I love clojure but the points still stand, kind-of. - There is Calva for VS Code but the community default is emacs and cider - How many programs in apt or brew are written in clojure? I'd concede that the community is great and focused on productivity, but it's so niche that you don't see much work out there made in clojure, and there is also a vestigial lisp sentiment to prefer building your own library from scratc", "context": "", "use_case": "", "switched_from": "", "story": "I Wrote a Scheme in 2025"}, {"id": 740132592, "item_id": 46258287, "url": "https://news.ycombinator.com/item?id=46258287", "by": "Hammershaft", "date": "2025-12-13", "version": null, "stance": "recommend", "quote": "", "excerpt": "I love clojure with CIDER but I have heard as a REPL experience it doesn't compare to CL with SLIME. I like emacs as a lisp machine but I know that a big ball of mutable state and functions with side effects on a single thread really doesn't live up to a proper lisp machine.", "context": "", "use_case": "Clojure REPL in VS Code", "switched_from": "", "story": "We Lost Something: 1970s REPLs Were Better Than Modern Development Environments"}, {"id": 740127201, "item_id": 46257950, "url": "https://news.ycombinator.com/item?id=46257950", "by": "jhancock", "date": "2025-12-13", "version": null, "stance": "recommend", "quote": "the most excellent Calva extension which give me REPL-everywhere in my editing experience", "excerpt": "I use a modern Lisp everyday...Clojure. My dev environment is VS Code using the most excellent Calva extension which give me REPL-everywhere in my editing experience. Yes, that 70's experience was better...and it's still here, refined and built on modern tooling and runtimes.", "context": "Clojure developer", "use_case": "Clojure REPL in editor", "switched_from": "", "story": "We Lost Something: 1970s REPLs Were Better Than Modern Development Environments"}]}