Copilot Workspace and the birth of Task-Oriented Programming

In 2023 we at GitHub Next invented an early form of task-oriented programming in a system called Copilot Workspace. Copilot Workspace was the world's first implementation of human-guided, task-oriented software development. It was the first interactive, structured AI-for-Code experience with the Task --> Specification --> Plan --> Code pathway. It had flaws, which I'll mention … Continue reading Copilot Workspace and the birth of Task-Oriented Programming

Origins of Copilot Workspace

Originally published at https://github.com/githubnext/copilot-workspace-user-manual/blob/main/origins.md, April 29, 2024 At GitHub Next we work in phases: ideation, build, ship, learn. Every phase is about learning. In May 2023, after launching Copilot-X, our ideation around the SpecLang project led to new explorations of how to incorporate natural language — and user edits to natural language — into the … Continue reading Origins of Copilot Workspace

The Max-Abstraction Impulse, and Everything Else Wrong with Type-Level Genericity

These were my comments on RFC-1124 from F# 7.0, Interfaces With Static Abstract Methods, in the "Drawbacks Section". It forms an essay on everything wrong with this particular form of Statically Constrained Genericity, and many of the things wrong with all the other forms. Drawbacks This feature sits uncomfortably in F#. Its addition to the … Continue reading The Max-Abstraction Impulse, and Everything Else Wrong with Type-Level Genericity

My Position on Type Classes

This is the most thumbed-up suggestion in fslang-suggestions and is over 7 years old. Is there any hope this will ever happen? From https://github.com/fsharp/fslang-suggestions/issues/243#issuecomment-916079347 My position is pretty clear. I'll recap it here. The utility of type classes for the kind of "functions + data" coding we aim to support in F#, in the context … Continue reading My Position on Type Classes

On Computation expressions, ‘do’ notation and List comprehensions

Originally published in October 2020 Notes based on a discussion with Phillip Wadler, 10/01/2020. This document is a work in progress. Please leave comments or send feedback. I may have made mistakes, please send a PR to correct. Computation expressions (CEs) are a syntactic de-sugaring of language elements like for x in xs ... to … Continue reading On Computation expressions, ‘do’ notation and List comprehensions