vision: -extensible - web technology - built-in syntactic awareness - github integration - can serve as a community sponsor / focal point -real time collaboration - github has made coding social, but it' like email - now we can make coding social like campfire, real time - scenario 1: (collaborating) you're on a team. in your editor you see your teammates and can effortlessly join them in their working copy - can message someone for help, lower barrier of interruption - fluid pairing... easily transition from soloing to working together, without unplugging keyboards or changing desks - benefits of pivotal, digitized - scenario 2: (learning / sharing) imagine two haskell programmers, or authors of a library you are pairing on, and allow you to come watch them... think of what you could learn from their conversation - imagine search for commits involving the work "Riak" that are broadcast, now you see it working - code instant replay... don't just read a commit, watch a commit - mud vs mmorpg analogy example: - cascading keymaps - command-t - extension, example of ckm (up and down) - vim theory: parsing expression grammars and doing it in real time (NS) -------- why do we need another editor? - ease of extensibility - javascript / web tech web is new lingua franca has emerged in the last decade... a common language / set of patterns for application dev - many current extensible editors are older than us - syntactic awareness: middle ground between vim/textmate and eclipse/intelli-j/visual studio - collaboration deep github integration... github is async collaboration... this would be synchronous replaying the actual keystrokes of code being written or a pairing session to understand why it was done that way -------------- pair programming: pros: raid array for team knowledge reduced ego, a sense of collective ownership learning opportunity... someone can add value on day 1 explaining your thinking can make it clearer continuous code review cons: handcuffed to your pair because you're using one computer friction between starting and stopping simple/wrote tasks might not need a pair, but how do you transition between pairing and soloing? same physical location at the same time