Labs/Bespin/Roadmap
The Bespin project is a dynamic area where the community decides the direction. However, there are large pieces that we are all working on and this is a good place to share the high level roadmap:
Full Editor Implementation
The 0.1 release had a lot of editor functionality, but is missing basic editor functionality. We will have an ongoing amount of work to clean up and add in this functionality. Some examples include:
- Firming up navigation
- Adding project and session data into the UI, so you can easily get between files
- Implementing the Apple-T "Go to file" Textmate use case
- Implement "go to declaration" so you can jump from a method name to where it was declared
- so so so much more.
Internationalization
We need to sweep through and abstract out and fix the i18n problems that we have.
Search
Search throughout the entire project and give jump of points. The server does the hard work here.
Collaboration
SubEthaEdit on the Web. We've put some effort into designing the social side - that is the mechanics of sharing your projects with others, allowing editor sharing and protecting privacy. You can see the social side of the design work.
As for the technics of sharing bits, Neil Fraser's excellent work looks like it will come in very handy.
Revision Control Integration
We want to pair Bespin to revision control. You should be able to easily edit and fork code, and we need nice merge tools and the like to make this really fun and snappy. Want to make sure that this is an open architecture that people can plugin to various rcs backends (e.g. git/hg/svn/...)
Ubiquity Integration
We love command lines, and Ubiquity is the mother of them all. Social features built in. We made the Bespin command line as close to Ubiquity as possible to allow for us to fully integrate them two.
Imagine being able to:
- Subscribe to peoples commands
- Have a place to find commands at the Herd
- run Ubiquity commands directly from within Bespin?
This is exciting indeed for us.
We also want to research using the same Ubiquity parser to make it super smart. Completion is key, and we only have one layer right now. A short term project it to get multi-level completion.
AST on the server
We want to experiment by having the server grind and create AST that is shared with the clients on a project
Offline support
We all love being connected, but we want to have access to our code when we are on the go. We have a few use cases here that we want to pursue as a community:
- VCS Integration: When we have VCS integration, then at least you can do an update/clone/checkout to your system and you can run local editors on that. This is similar to Gmail before it got offline support.... you could download the email via IMAP and look at it if you needed too in another client. Not ideal at all.
- HTML5 Offline Support / Gears: We would like to have as much functionality as possible available when offline without having to do anything. We use the offline store to cache the web resources of Bespin, and a DB API to store local work.
- Bespin Local: You can run a local application that runs a Bespin server instance and serves up the data. This has the pros and cons of running locally.
Would you like to help build a Prism/Fluid/Adobe AIR wrapper on Bespin? We could use your help. The key is that the embedded Gecko/WebKit engine has to support Canvas and Canvas text support. To test this you can use our canvas text test page.
It is trivial to have a wrapper shell on bespin.mozilla.com, but we want to go further than that.
With Prism, we want to tie into the scripting APIs to give us local file access, clipboard support etc]. Ditto for Adobe AIR.
Actual Roadmap
Above are the high level features, but what is coming soon? It feels like the next versions will be:
- 0.2: Version control release
- 0.3: Collaboration release