Labs/Bespin/Roadmap: Difference between revisions

From MozillaWiki
< Labs‎ | Bespin
Jump to navigation Jump to search
No edit summary
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
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. The goal of this document is that you should see the vision of Bespin and where we want to take it, but also the short term needs of the project.
= Bespin Roadmap =


By the end of the year, we would be thrilled to see Bespin used by many developers to create compelling Open Web products in a productive way, having fun while doing so.
The future of Bespin is up to ''you'' and the other users of Bespin, because of Bespin's new plugin architecture. The plans listed on this roadmap are features we (the Bespin core team) have committed to adding, but we hope to see all kinds of new features come from everywhere. Note that the list below is not comprehensive. These are simply the features that are specifically scheduled for release.


Version 0.1 was our initial launch release, and now we are moving on to new themes.
== Bespin 0.8 (Cheviot) ==


== Roadmap Themes ==
Planned release: early June, 2010


We currently have a few themes in which to group the future releases:
On the client, Cheviot is a significant step toward stabilizing the APIs as the foundation for the GUI is set up. This is the first themeable release of Bespin since the "reboot". Cheviot is a both an infrastructure and feature release for Bespin.


* '''Usable''': We need to eat dogfood, and from time to time we will come back to releases that rein in the innovation and make sure that the whole experience is highly usable
== Bespin 0.8.x ==
* '''Extensible''': We want to make sure that Bespin gets easier and easy to extend
* '''Productive''': We want to make sure that we create features in Bespin that make developers more productive
* '''Fun''': If it isn't fun to use Bespin, then why are we doing this!


== Current Focus ==
Planned release: June, 2010


The current focus of April is the "Usable" theme. We want to sprint to make the Bespin editor a usable tool for developers!
We expect to launch of the Bespin Plugin Gallery on the web sometime during the month of June, with a minor client/server update to support the new web-based gallery.


What is part of the first burst in this theme?
== Bespin 0.9 (Edison) ==


* Solidify / clean up UI on all features
Planned release: late June, early July 2010
** toolbar
** Outline / syntax checker
** Polish scrollbars (usability of last line, painting)
** Go through defaults
** Background / Progress bar notification
* Convert to Th
** Move themes over from themes.js to white.css, black.css etc
* VCS Integration
* [[Labs/Bespin/DesignDocs/Collaboration|Collaboration]]
** backend functionality and scalability
** UI changes
** Undo / redo (server side and client side)
* Rock solid keyboard support
* Help system that helps
** New design that does more than list a growing list of commands
* Search (in file, in project)
* Dashboard
** dashboard features: create new files, delete files, show open file, etc.
** Rethink dashboard / editor integration
* Command Line
** save the history
** multi-level completion
** Re-think which commands should be default?
** Get popup right / move to history viewer?
* Stretch: VCS Candy
** smart support for diff, status, overlay


This theme will likely result in a number of releases:
The Edison release will add JavaScript code completion to Bespin, plus other features and fixes. This will be the last major release with the Python server.


* 0.2 - VCS Release
== Bespin 1.0 (Max) ==
* 0.3 - Collaboration teh Social Release
* 0.4 - Tasty Dogfood (Once we get the other features to a point where the editor is full usable. Bug fix bug fix bug fix)


== Future Themes ==
Planned release: late summer 2010


Let's also look at what other themes and features are on the horizon to whet the appetite. If people implement any of these we will certainly take them!
The Max release will represent a stabilization of the client API and the introduction of the JavaScript server. The server will likely go by a name other than "Bespin".


==== Extensible Theme ====
== Bespin 1.1 (Blank) ==


* Initial [[Labs/Bespin/DesignDocs/PluginAPI|Plugin API]] (NOTE: This will actually get rolled into a Usable release)
Planned release: early fall 2010
* Public vs. Private API
* Clean up multi-instance editor vs. one instance
* Plugin repository (AMO?)
* [[Labs/Bespin/DesignDocs/UbiquityIntegration|Ubiquity Integration]]
* Embed component at a place where we can have people use it a la YouTube


==== Productive Theme ====
Re-introduction of collaboration features, now implemented as a federation of independent Bespins.
 
* Dashboard showing project metrics
* Code completion
* Code folding
* Code linking -> go to a declaration from a call
** explore fun ways to keep track of context as you drill into code
* Auto declaration popup
** When you mouse over a function, a gesture pops up the declaration of that method (a cousin to a gesture that takes you to the code directly)
* [[Labs/Bespin/DesignDocs/OfflineSupport|Offline Support]]
* Mobile version
** E.g. iPhone, Palm Pre.... interesting quick key access to coding
 
==== Exciting (or Goofy, you decide!) Theme ====
 
* Collaboration "Follow Brendan" and "screencast" mode
* Fun dashboard concepts
** See what other people are doing
** Commit, commit!
* Built-in chat per file
* Integrate Bespin with jslint
* Heatmap
* Emacs / VI key modes
* Visual function debugger
* Templating
** Easy to include JS libraries
** createproject foo rails -> load up a Rails project
** Smart grokking of JS libraries
* Gaming and coding experiments
* Deployment
** App Engine
** AWS
* Timeline / tree for a file
** braaanches
** blame info
* 3D Pixel Shader editor
* Visual diffing
** on a changeset, or per file
* Submit patches to queue
** e.g. reviewboard + visualizations
* Snippets a la TM
** Including smart conditional editor
* Find usages
* Support for a documentation format
* Smart comments
** Have areas in the comments that are shown, and others than are hidden unless you ask for them to save space
* Word wrap
* Code Freshness (so fresh and so clean!)
** since the comment was made, how much code has changed
** show which code in the project / file is oldest / newest, etc.
* Code Isolation
** pick a function and play with it, seeing visually how internal data mutates and what side-effect changes are made
** tie into server-side recording of last run information
** integrate with auto test creation
* Code Memory
** create an infrastructure for recording information about code state across executions (and figure out how this is even possible)
** "Code Isolation" uses this to show past values of arguments for past executions
** "Code Hotspots" uses this to show which parts of code are executed the most
** Interface latency report may be related to this
* Abstracting Code Style from On Disk
** "I want to see this file in foo {} but my company format is foo\n{"
* Automatic test creation
* Most Common Path View
** De-emphasis code paths that aren't as common (e.g. error paths, wrong side of an if check)
* Safe Invocation
** Takes chained invocations and changes them to be safe
    e.g. foo.bar().baz() -> if (foo && ....)
* Pie Menu
** Mobile: Make it sane to input code via mobile interface
** Desktop: Make into an a12y feature by making it huge on desktops
** Audible: Make sure voice recognition packages can drive it on desktop
* CSS Selector Helper
** visualize selections on HTML page
* Rich Accessibility / Internationalization support
 
==== Infrastructure Theme ====
 
* Create test suits for Bespin code
* Auto report on interface latency

Latest revision as of 12:18, 2 June 2010

Bespin Roadmap

The future of Bespin is up to you and the other users of Bespin, because of Bespin's new plugin architecture. The plans listed on this roadmap are features we (the Bespin core team) have committed to adding, but we hope to see all kinds of new features come from everywhere. Note that the list below is not comprehensive. These are simply the features that are specifically scheduled for release.

Bespin 0.8 (Cheviot)

Planned release: early June, 2010

On the client, Cheviot is a significant step toward stabilizing the APIs as the foundation for the GUI is set up. This is the first themeable release of Bespin since the "reboot". Cheviot is a both an infrastructure and feature release for Bespin.

Bespin 0.8.x

Planned release: June, 2010

We expect to launch of the Bespin Plugin Gallery on the web sometime during the month of June, with a minor client/server update to support the new web-based gallery.

Bespin 0.9 (Edison)

Planned release: late June, early July 2010

The Edison release will add JavaScript code completion to Bespin, plus other features and fixes. This will be the last major release with the Python server.

Bespin 1.0 (Max)

Planned release: late summer 2010

The Max release will represent a stabilization of the client API and the introduction of the JavaScript server. The server will likely go by a name other than "Bespin".

Bespin 1.1 (Blank)

Planned release: early fall 2010

Re-introduction of collaboration features, now implemented as a federation of independent Bespins.