I think this is a really interesting comparison to Github’s Copilot. Where Copilot is a sort of probabilistic copilot built on a deep learning model, Wingman uses an advanced tactics engine with knowledge of the language’s type system to perform program synthesis to aid the developer.
Yeah, I’d have much more confidence in something like Wingman than in Copilot. And the fact that it runs offline is very important too.
More fun synthesis stuff: Synquid, based on refinement types, which are more expressive than just vanilla Haskell ones.
Sandy Maguire’s Wingman is an amazing tool that saves me time everyday at work.
Wingman helps when I’m working in an unfamiliar section of our codebase. I can work my way from the edges of what I know I need, slicing off pieces I know how to implement and improving my understanding as I get closer to filling in that last puzzle piece.
For more familiar parts of the codebase I can often drop in a hole, ask for it to be filled, and get most of what I need right away.
I wrote a step by step demo for an older version of Wingman. That demo shows you how to re-implement applyMaybe from a type signature and choosing the right Wingman actions. While I showed the steps to demonstrate Wingman usage, an easier approach is to uncomment the first step and choose “attempt to fill hole” and you will get the right thing!
Is that you, Idris?