VJET: JavaScript Toolkit

This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process) and is written to declare its intent and
scope. We solicit additional participation and input from the Eclipse
community. Please send all feedback to the Eclipse
Proposals Forum.

Background

VJET JavaScript IDE aims to provide the best and most productive
JavaScript functional and multiple-library development tools for
JavaScript developers for the Eclipse platform. In different JavaScript
libraries, the typing concepts are manifested through classes, mix-ins,
modules, interfaces, enumerations where you want to have excellent type code
assist, validation and searching for these types. In addition, there
are also many native JavaScript concepts where VJET solves code
completion for advanced features such as mixed typing,
overloaded functions, function call-backs, and typed object literals.
VJET is currently an open source project on ebayopensource.org and the project
plans on moving the code to the Eclipse Foundation to work closer with the
Eclipse ecosystem and the projects VJET depends on and forks.

Scope

VJET JavaScript IDE's focus is a general purpose toolkit for the
JavaScript language which can be extended to understand different
JavaScript libraries. VJET is meant to help JavaScript developers to
code with simple JS code to more complex class/type libraries.

Out of Scope

While we understand there are other efforts for JavaScript editing in
the Eclipse foundation, the VJET JavaScript IDE does not plan on
replacing the 2 other known JavaScript projects: the JavaScript
Development toolkit or JSDT project and Orion. We do however plan on
collaborating with the JSDT and Orion projects.

Description

VJET JavaScript IDE is a set of Eclipse plug-ins and core foundation
that provides a fully integrated development environment for JavaScript
- from authoring, to execution/test, and debugging.

Type library support using VJET VJO - ability to extend VJET
using JavaScript

Java to JavaScript type - Java to JS provides a way for Java
types to be translated to JavaScript which can either be authored in
Java or switched to source in JavaScript.

Execution/Debugging - provide a way to run and debug directly
in Eclipse, integration between JDT debugger and VJET debugger is
also available.

Why Eclipse?

VJET is primarily an Eclipse plug-in and it is our long term goal to work with the well established and
well known foundation for managed open source projects for eclipse plug-ins to help grow the community.

Based on community feedback we realized that we needed to work closer with the web tools project. To collaborate with
other JavaScript related projects. For example the browser firebug debugger that JSDT has we would like to work
closer so that we can both use this module.

To help VJET project benefit from the large eclipse end-user and plugin developer community. We want to enable more developers to
use VJET capabilities as well as help them extend those capabilities for libraries.

Initial Contribution

The initial contribution will be from eBay software foundation.

The initial contribution will contain the following components:

VJET core modules which do not depend on eclipse packages which act as back-end for VJET capabilities.

The initial contribution will include the following modified open source dependencies:

a forked version of JSDT JavaScript AST parser. (EPL)

a forked version of DLTK editor toolkit (EPL)

a forked version of Rhino JavaScript runtime. (Apache)

What is the extent of each fork?

For the DLTK project we added back JDT toolkit features to this project that were not part of DLTK original design goals such as typing concepts which are part of JDT project which DLTK pulled out.

For the JSDT project this fork is a cherry pick. We pulled out the parser package and removed the inferencing components.

For the Rhino project, we modified the runtime to handle obfuscation bugs and runtime bugs which support VJET Java and JavaScript integration.

What is the goal to resolve forks?

VJET has a goal of eliminating forks of eclipse.org project code and get things to a point where you could just extend the projects.
In the long term, the project we modify we would like to work together to help them to be at the right level of extensibility so we can resolve our forks and inturn help the community.

Legal Issues

Committers

The following individuals are proposed as initial committers to
the project:

Justin Early, eBay

Justin is a committer on the VJET ebayopensource project where he has
made significant contributions over many years. He will be
contribute to all VJET JS IDE functionality in this new project.

Dr. Ashvin Radiya, Avantsoft

Ashvin and his team has provided significant contributions to the
existing code base. They will contribute extensions to VJET functionality in
this new project.

We welcome additional committers and contributions.

Mentors

The following Architecture Council members will mentor this
project:

David Carver

Chris Aniszczyk

Interested Parties

The following individuals, organizations, companies and projects
have expressed interest in this project: