Line-level code analysis.
Copilot leverages data flow annotations (extensible, but starting with Clojure spec) and runtime analysis to help find problems while you're writing code. It can find many things that you would normally miss until runtime.
This leads to a system that has many of the benefits of a static type system without the same constraints. Experience a development cycle where you get better error messages, and are more protected from subtle regressions, oversights, and just plain typos while continuing to enjoy Clojure's dynamic and data-first design.
Copilot is close to an initial release, and is undergoing internal refinement and testing. We're very excited to release it, but also want to make sure it works well for early adopters. We expect to do a limited invite-only alpha release soon.
Nothing! We love Clojure and Clojurescript. We use them every day in production environments and find them to be a great for solving the kinds of software problems we work on; however, nothing is perfect. The dynamic, concise, and non-annotated nature of Clojure leads to a number of challenges:
Those of us that have worked in statically typed languages know the benefits they bring like improved optimization, refactoring ease, and freedom from certain classes of problems. Those of us with enough experience also recognize that code using static type systems: