Although most of the effort in Orion today is in the basic development tool plumbing you can already get elsewhere, Orion committers are starting to see more “Aha” moments where we get a glimpse of the deeper implications of web-based tooling. Some examples from the past couple of weeks:
- Two team members were talking on the phone about some layout ideas for an Orion preference page. After struggling to verbally explain what he was doing, one participant realized that since his launched “test” application was on the web, he could just send the URL to the other participant to look at it directly. Not only that, his current editor state was also on the web, so he could send a link to his current editor contents, down to the current line position, to his colleague as well. They were then able to tweak the code together and both immediately see the result on the running application.
- One team member got her private Git repository into a funny state where she couldn’t push changes. After some futile attempts to resolve it she pinged some other committers for ideas. Another committer was immediately able to log into her account, poke around with the private repository, and figure out and resolve the problem.
- A team member got a new treadmill, and during his first run he realized the treadmill display was actually driven by a WebKit browser. Before the end of the run he had logged into his Orion account, pulled the latest changes into his workspace, and even attempted some simple code edits.
By themselves these are not world changing examples, and there are certainly existing technologies that could help out in similar situations. You can use a topic branch to share unfinished work with a colleague, and you can use screen sharing or web conference software to show others what you are working on. You could plunk your laptop down next to your treadmill if you really wanted to. The difference is that the existing technologies lack the sense of immediacy, of being able to provision your entire development tool infrastructure to any device within seconds without any kind of advance planning.
Think of how long it can sometimes take to get your development tool environment set up precisely as you want it. All the tools you need, the source code checked out and compiled, the target platform configured just so. Now think of the billion PC’s out there, the billion smart phones, and the hundreds of millions of tablets, car displays, and other browser-enabled devices. Imagine any one of those devices on the planet could be running your exact development tool environment, down to the last character you typed, in the amount of time it takes to type in a password. What kind of tools could we build in such a world? On the Orion team we are only taking the first baby steps into this world, and we have no idea where it will take us, but we can’t wait to find out!
Developing on my cars in-dash display…. hum, I wonder what BC’s Driving & Texting law says about that ;-).
In all seriousness, do you envision integration with Google (Apache now I guess) Wave for collaborative editing?
Collaborative editing would be a natural thing to add. There are lots of possibilities there. I would love to see situational awareness where I could see what files or lines are currently being modified by another team member so I could ping them and avoid complicated merges.