Skip to content
Kent Beck edited this page Oct 30, 2013 · 2 revisions

Prune is an experimental AST-based code editor. It is based on the premise that programmers have a mental picture of the AST and that mapping desired AST changes to text editor operations is a waste of energy. Instead, Prune offers AST operations like "send a message to the currently selected node" or "append a return statement after the currently selected node".

As the Wicked Witch of the East might say, replacing a programmer's code editor must be done delicately. Programmers invest intellect and emotion in their editors. Any alternative will be adopted slowly, if at all. To maximize the chance of adoption, Prune accepts the following constraints:

  • Fast -- be able to begin editing/searching large source files quickly
  • Portable -- likely to run on available platforms (implies a terminal-based option)
  • Parsimonious with input -- most operations should require no movement from the home row
  • Don't solve problems already well-solved by programmers -- this is the weakness of most AST-based editing

These are not constraints for Prune:

  • Learning curve -- eventual facility is more important than getting started instantly
  • Beauty -- a utilitarian tool that is used is better than a beautiful one gathering dust
  • Novice programmers -- Prune accelerates expert programmers
  • Manual formatting -- Prune will have formatting options, but not infinitely flexible
Clone this wiki locally