@mchilvers: "The only thing that seems odd in our API is that 'run' seems more suited to 'batch' style programs (i.e. those without an event loop). I think in TasksApplication we should override 'start' to start the event loop etc, and 'stop' to close any open windows (of course if the user is stopping the application by closing the last open window there won't be any of those!). Then any 'Exit' or 'Quit' action in the UI simply calls application.stop..."
-- enthought/envisage#8 (comment)