Changes

Jump to: navigation, search

Labs/Bespin/Roadmap

2,738 bytes removed, 19:57, 7 October 2009
no edit summary
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.High Level Roadmap =
By As of October 2009, Bespin has come a long way since the end initial release. It's come so far, in fact, that there are already people depending on it and looking to build bigger things on top of it. Because of the yearthis, we would be thrilled to see 're changing a bit about how we build Bespin. The "Bespin used by many developers to create compelling Open Web products in Core" is the part of the system that we're treating like a productive wayproduct, having fun while doing sorather than an experiment. We'll be developing additional functionality as experiments on top of this core. Successful experiments will gradually move into the Bespin Core.
Version 0.1 was our initial launch release, We expect to see quite a bit of innovation and now we are moving on to new themesdevelopment outside of this roadmap in terms of both plugins and core developments from throughout the Bespin community.
== Roadmap Themes ==Dates and release numbers are intentionally left off of this version of the roadmap as we work out staffing plans within Mozilla. This is basically a map without distances -- it just shows the direction we're heading. It is worth noting, though, that this roadmap consists solely of near-term objectives and nothing from the longer term.
We currently have a few themes in which to group the future releases:== Bespin Core Roadmap ==
* The first phase of work on Bespin Core is what we've been calling the "Reboot" -- taking what we''Usable''': We need to eat dogfood, and from time ve learned over the past few months to time we will come back to releases that rein in build up the innovation core infrastructure and make sure that the whole experience is highly usable* '''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 it ready for more productive* '''Fun''': If it isn't fun to real world use Bespin, then why are we doing this!.
== Current Focus ==* New Developer's Guide documentation* New unit testing infrastructure* New Bespin Embedded** Documentation on how to use it** Initial build tool to generate a custom, embeddable editor component with a specific set of plugins.* New login/first time user experience* Ability to add in more features in Bespin Embedded that previously were only available on bespin.mozilla.com* Edit Bespin plugins within Bespin* Manage your installed plugins* Install new plugins* Keyboard manager** Plugins can define keyboard shortcuts that work within specified scopes** Bespin users can redefine those shortcuts** Shortcuts are applied as broadly as possible (eg the keys used for navigating and manipulating text in the editor can work in the command line)* Improved sense of context in the editor** Syntax highlighters will be contextual, rather than file-based** Contexts can be layered. For example,plugins can know that the cursor is positioned in a string in JavaScript in an HTML file that is also a Django template.* New command line that can be docked at the bottom of the screen or positioned in the popup window* New file manager with more options for working with files and better keyboard support.** Under the hood, Bespin's file support will allow plugins to keep tabs on changes that take place in the file system* New quickopen window that is offered as a plugin and provides a better search and results experience* git support in the vcs commands
The current focus of April is the "Usable" theme. We want to sprint to make the == Bespin editor a usable tool for developers!Experiment Roadmap ==
What is part of the first burst in this theme? * Solidify / clean up UI on all JavaScript language features** toolbarSyntax checking** Outline / syntax checkerCode completion** 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 These are currently unsupported pieces that helps** New design that does more than list a growing list of commands* Search (are in file, in project)* Dashboard** dashboard features: create new files, delete files, show open file, etcthe main repository.** 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 They will likely result in a number of releases: * 0.2 - VCS Releasebecome supported experimental plugins* 0.3 - Collaboration teh Social Releaseimprovements* 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 == 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! ==== Extensible Theme ==== * Initial [[Labs/Bespin/DesignDocs/PluginAPI|Plugin API]] (NOTE: This will actually get rolled Visibility into a Usable release)* 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 ==== * 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 doingworking on** Commit, commit!* Built-in chat per Live filehistory feature* 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 More GUI support for a fileversion control system features** braaanchesFile manager integration** blame info* 3D Pixel Shader editor* Visual diffing** on a changeset, or per file* Submit patches Graphical enhancements 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 changedother commands** 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 serverServer-side recording of last run informationJavaScript plugins** integrate with auto test creation* Code Memory** create an infrastructure for recording information about Plugins can implement 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 that runs on the most** Interface latency report may be related to this* Abstracting Code Style from On Disk** "I want server to see this file in foo {} but my company format is foo\n{"* Automatic test creation* Most Common Path View** De-emphasis code paths perform tasks that aren't as common (e.g. error paths, wrong side of an if check)* Safe Invocation** Takes chained invocations and changes them are not efficient 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 perform 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 latencythe client
Canmove, confirm, emeritus
1,093
edits

Navigation menu