Bespin proposes an open extensible web-based framework for code editing that aims to increase developer productivity, enable compelling user experiences, and promote the use of open standards.
Based upon discussions with hundreds of developers, and our own experience developing for the Open Web, we’ve come up with a proposed set of features along with some high-level goals:
- Ease of Use — the editor experience should not be intimidating and should facilitate quickly getting straight into the code
- Real-time Collaboration — sharing live coding sessions with colleagues should be easy and collaboratively coding with one or more partners should Just Work
- Integrated Command-Line — tools like vi and Emacs have demonstrated the power of integrating command-lines into editors; Bespin needs one, too
- Extensible and Self-Hosted — the interface and capabilities of Bespin should be highly extensible and easily accessible to users through Ubiquity-like commands or via the plug-in API
- Wicked Fast — the editor is just a toy unless it stays smooth and responsive editing files of very large sizes
- Accessible from Anywhere — the code editor should work from anywhere, and from any device, using any modern standards-compliant browser
Using Collaboration
As part of collaboration we need to notion of connections between people and access control. A few new commands give you access to this information:
follow/unfollow: allow you to decide whose shared projects you want to see in your project navigator. As we evolve Bespin this will become a way to get all sorts of information about the people you are working with group: allows you to put the people you are interested in into groups to make it easy to manage sharing share: allows you to export your projects read-only or editable to individuals, groups, or to everyone
To get started quickly, you can jump in to a public shared project that Joe has setup. Once logged in to Bespin follow the steps:
- Press CTRL+J/CMD+J to open the command line.
- Type follow joewalker to get someone to share files with. I’ve shared a project called pubproj globally.
- Type project list. You should see joewalker+pubproj in your list of projects.
- Type set collaborate on to turn on shared editing.
- Open a shared file by typing open /joewalker+pubproj/example.txt.
- Useful things, but nothing compared to what you can do if you have more than text. We ended up following a pattern where, if you don’t put in the right command line parameters, you get prompted. This isn’t the same as having the command program itself ask you, as you can declare it in the command and the prompt can be as rich as you want. For example, here is the
vcs clone command. In theory we could make the command take a bunch of options: vcs clone --url https://svn.mozilla.org/... --project myproj --username user --password pass ...or we could ask for it (and allow browser history to kick in and help): -
Bespin Collaboration from Joe Walker on Vimeo.
Get Involved
Mozilla Labs is a virtual lab where people come together online to create, experiment and play with Web innovations for the public benefit. The Bespin experiment is still in its infancy and just getting started. There are many ways to join the team and get involved:
– Ben Galbraith and Dion Almaer, on behalf of the Bespin development team
84e7a61c-08ad-4e5f-8f78-44eb949ddd1d|0|.0
vcs, svn, collaboration