| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| $pageTitle = ""; | |
| $pageKeywords = "PHP, Python, Ruby, Tcl, JavaScript, ECMAScript, dynamic languages, scripting"; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1>Dynamic Languages Toolkit</h1> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("Dynamic Languages Toolkit"); | |
| ?> | |
| <h2>Introduction</h2> | |
| <p>The Dynamic Languages Toolkit is a proposed open source | |
| project under the <a href="/technology/">Eclipse | |
| Technology Project</a>.</p> | |
| <p>This proposal is in the Project Proposal Phase (as defined in the | |
| <a href="/projects/dev_process/"> | |
| Eclipse Development Process document</a>) and is written to declare its intent | |
| and scope. This proposal is written to solicit additional participation and | |
| input from the Eclipse community. You are invited to comment on and/or join the | |
| project. Please send all feedback to the <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology">http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology</a> newsgroup. | |
| <h2>Background</h2> | |
| Eclipse provides a flexible and extensible framework for third parties to implement solutions for authoring, editing, and building files in a particular language. Dynamic langauges is a valuable subset of programming languages but lack of support from Eclipse side. Support of dynamic languages in Eclipse Project(s) would extend | |
| Eclipse influence on non-Java world as well as dynamic languages would benefit from Eclipse Tools and Technologies. | |
| <h2>Description</h2> | |
| <p align="left"> | |
| Dynamic Languages Toolkit project goal will be to develop framework for tool vendors, researchers, and end-users who rely on dynamic languages (like TCL, Python, and Ruby). | |
| The toolkit will support of editing, code navigation, debugging, and refactoring of code in dynamic languages and | |
| must be an extensible such that new languages such as PHP and Perl could be plugged in easily. | |
| </p> | |
| <p>Also project will explore potential reuse amoung other Eclipse language projects and result in recomendations/code to push down to LTK (in addition to ltk.refactoring). | |
| </p> | |
| <h3>Proposed Components</h3> | |
| <ul> | |
| <li><b>Generic Language Model.</b> Provides common reusable base generalized from popular dynamic language | |
| models, defines API and contracts for Common Infrastructure components and extensions. | |
| Coupled with partial or full, where appropriate, implementations of source/model related services like code indexer, search engine, type evaluators Generic Language Model will help to plug-in new lanuguages easily (instead of "copy-and-paste") to reach primary goal. | |
| <p>Another goal is to make dynamic language models interoperable. While this is not the primary goal, it has an advantages for multi-language evironments like dynamic language VMs designed for wide range of languages (see Perl Foundation's <a href="http://www.parrotcode.org">Parrot VM</a>) and cross-language tools.</p> | |
| </li> | |
| <li><b>Type Inference Framework.</b> Type inference is an important task for dynamic language tools. DLTK goal is to explore Type Inference algorithms (like | |
| <a href="http://lexspoon.org/ti/">DDP</a>), and explore possibilities to build a framework for tool implementors. | |
| <li><b>Common UI Components.</b> Generic Language Model will provide services on top of which Common UI Components | |
| will be build. These UI components includes but not limited to: structural code explorer and browser, | |
| type hierarchy and call graph viewers, code outline viewer, code navigation and code search UI parts. | |
| </li> | |
| <li><b>Debugging Infrastructure.</b> Creating infrastructure for support debugging of scripting languages including | |
| common debugger protocol, implementation and extensions to Eclipse Platform Debug UI. Xdebug project's <a href="http://www.xdebug.org/docs-dbgp.php">DBGp</a> protocol is designed for scripting languages and proposed as a common debugger protocol to use in the project. | |
| </li> | |
| <li><b>Exemplary Implementations.</b> Plugged in exemplary implementations of scripting languages (Ruby, Python, TCL) will prove the Dynamic Languages Toolkit design and architecture and will be | |
| examples for technology adopters. | |
| </li> | |
| <li><b>JDT Integration.</b> Scripting languages widely used for Java scripting with pure Java scripting language interpreters like | |
| JRuby (Ruby), Jython (Python), Jacl (Tcl), Rhino (ECMAScript), etc. DLTK JDT integration component targeted to provide an integration layer | |
| between DLTK based tools and JDT. Potentially this will extend JDT with refactoring partcipants to include script code in refactoring operations as | |
| well as allow script programmer to use Java code completion on Java objects inside script, etc. | |
| </ul> | |
| <h3>Relationship with other Eclipse Projects</h3> | |
| <p>Dylamic Languages Toolkit project will be build on top of Eclipse Platform. Eclipse projects which | |
| rely on scripting languages might be interested, including WTP (JavaScript), WTP-based projects | |
| (scripting languages for web development, like PHP IDE project), Laszlo Eclipse Frameworks which rely on JavaScript and other scripting languages, etc.</p> | |
| <p>DLTK JDT Integration will also rely on Eclipse JDT project codebase.</p> | |
| <h2>Organization</h2> | |
| <p align="left">We propose this project should be undertaken as a Technology project rather than as part of the Eclipse Platform. Being a Technology project gives it room to experiment without disruption to other Eclipse Platform development work.</p> | |
| <p align="left">Finally, since Technology sub-projects are not meant to be ongoing, we foresee three possible evolutionary paths for the subproject:<br> | |
| <br> | |
| 1. The project is merged back into the mainline Eclipse Platform top-level project.<br> | |
| 2. The project is moved to a permanent state as a Tools Platform project.<br> | |
| 3. The technology proves to be insufficient for Eclipse and the work is set aside.<br> | |
| <br> | |
| These paths are not mutually exclusive. Some combination of some or all of these paths may be the result of the work done in this project. </p> | |
| <h3 align="left">Proposed initial committers</h3> | |
| <ul> | |
| <li>Andrei Sobolev - xored software, Inc.</li> | |
| <li>Andrey Platov - xored software, Inc.</li> | |
| <li>Mikhail Kalugin - xored software, Inc.</li> | |
| <li>Dmitriy Kovalev - xored software, Inc.</li> | |
| <li>Andrey Tarantsov - xored software, Inc.</li> | |
| <li>Yuri Baburov - xored software, Inc.</li> | |
| </ul> | |
| <h3 align="left">Interested parties</h3> | |
| <p align="left">The following companies | |
| have expressed interest in this project. Key contacts listed.<ul> | |
| <li>Cisco Systems, Inc. - Ed Warnicke (eaw@cisco.com)</li> | |
| </ul> | |
| <h3 align="left">Code Contributions</h3> | |
| <p align="left">xored software, Inc. is offering TruStudio Foundation PHP & Python IDE, as an initial codebase | |
| (see <a href="http://www.xored.com/trustudio">http://www.xored.com/trustudio</a>). TruStudio IDE built with | |
| proposed concepts in mind and could be used as a potential codebase for some parts of Dynamic Languages Toolkit project. </p> | |
| <p align="left">Cisco Systems, Inc. contributed TCL language support code for Dynamic Languages Toolkit project. </p> | |
| <h2>Tentative Plan</h2> | |
| <p align="left">Development is ongoing at <a href="http://www.eclipsedltk.org">www.eclipsedltk.org</a>, Plan for DLTK core and TCL exemplary tools | |
| available here: <a href="http://www.eclipsedltk.org/plan-1_0">DLTK TCL Project Plan</a> and scheduled for release on Jan, 23 2007. We plan to release DLTK 1.0 Final with exemplary tools for Ruby, Python, and TCL by the end of Q1/2007. | |
| </p> | |
| </div> | |
| </div> | |
| <?php | |
| # Paste your HTML content between the EOHTML markers! | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |