ghostwheel

Hassle-free clojure.spec, automatic generative testing, side effect detection, and evaluation tracing for Clojure(-Script) – https://github.com/gnl/ghostwheel
genekim 2018-11-20T15:16:17.002900Z

@clojurians.net Quick and maybe wildly uninformed question: is there an easy way to convert all the specs that ghostwheel generates, and use them with core.typed or any of the things that @ambrosebs has been working on? https://www.patreon.com/ambrosebs I’m absolutely loving ghostwheel, and using it almost every time I write anything new. But I’m finding that the number of parameter typing errors I make are so high, I think I’d benefit from compile-time checking. (I’ve never actually even used core.typed before.). Thank you!!!!

claudiu 2018-11-22T08:22:14.014Z

@genekim Yep, but clojure is dynamic. Asking cause this things seem like are not much of a issues for me since I switched to cursive (guess you can get the same with emacs and some plugins/config). & also the repl development flow seems to help there once embraced.

gnl 2018-11-22T16:04:33.014200Z

@genekim No pressure, whenever you have the time / feel like it. 🙂 Plus maybe wait for the new release (~this week), cause there'll be some additions to the documentation as well. @claudiu Clojure is dynamically typed, but there are a number of efforts out there that show it's flexible enough for a type system to be retrofitted to some extent: https://github.com/typedclojure https://github.com/arohner/spectrum https://github.com/clojure/clojurescript/wiki/Compile-Time-Type-Checking There's basic experimental WIP support for the latter in Ghostwheel. As for how common/problematic those types of errors are – I'd say while you're writing the code – it depends, but when you reach a certain level of complexity and start doing major rewriting/extending/refactoring it becomes a much more common problem that can bite you in the arse in all kinds of nasty ways. Personally I feel that a solid type system is the one thing Clojure is missing, even with spec and gen-testing, so I'm really looking forward to seeing where Ambrose takes core.typed. And Cursive is absolutely fantastic, whenever the editor/IDE topic comes up I'm pushing it to everyone like I'm getting a commission.