Jump to: navigation, search

Difference between revisions of "Technology/Ten Eclipse Projects You Haven't Heard Enough About"

(...that produces executable processes)
(...that produces executable processes)
Line 149: Line 149:
 
===...that produces executable processes===
 
===...that produces executable processes===
  
[[Image:JWT_Transfos.png|thumb|right|400px]]
+
[[Image:JWT_Transfos.png|frame|right|400px]]
  
 
* A growing set of transformations
 
* A growing set of transformations

Revision as of 12:59, 9 April 2009

This page is intended to be run as a slide show using the Eclipse Slideshow Example.

Description:

.You probably know about Eclipse Java development tools. You may even know about plug-ins, the community and ecosystem, and some of the other excitement around Eclipse. But do you know about the many projects at Eclipse targeting everything from tools and frameworks, to runtimes and systems engineering? During this talk, we will present ten projects that you may not know very much about, but probably should.

Adding slides is easy. Every heading tag contains a slide title. Level 1 headings are for "title" slides and level 2+ headings are for content. The contents follow that. Bullets are prefixed with a star (just like standard MediaWiki format). You can also add images using the standard MediaWiki tags. Don't worry about formatting; Slideshow is supposed to take care of that for you (it'll automatically position graphics and such for you).

Everything after the Contents section below will render as slides.

{Copyright:Copyright © 2009 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0}

Ten Eclipse Projects You Haven't Heard Enough About

Wayne Beaton, Eclipse Foundation, Evangelist

Agenda

Survey projects that you probably haven't heard enough about

  • Runtime Technology
  • Frameworks
  • Tools

Eclipse Examples Project

Eclipse Business Expense Reporting Tool

EBERT-RCP.png

  • Capture Expense information
  • Works on RCP, eRCP, and RAP
    • Many common components
    • Some platform-specific components

Technologies at Work

  • Eclipse RCP, eRCp, and RAP
  • Dependency-Injection using Equinox/OSGi Declarative Services
  • Nebula Widgets
  • User state
  • View Model

Eclipse IDE for Education

  • Eclipse-based IDE streamlined for students
    • Tasked to make the adoption of Eclipse technologies easier for first time adopters
    • Primarily targeting undergraduates
  • Streamlined Java development tools
  • Scheme, Prolog language support
  • Assignment workflow
    • Obtain/hand in assignments directly from environment

Eclipse IDE Meta-tooling Platform (IMP)

Motivation for IDE Meta-tooling

  • Many languages still don't enjoy full-featured IDE support in Eclipse.
  • Modifying existing concrete IDEs (like the JDT) not cost-effective.
    • They're huge, and not designed for extensibility.
  • Other existing frameworks (DLTK, xText) make assumptions about the type of language or its AST (Abstract Syntax Tree) representation.
  • Other frameworks tend to produce a "one-size-fits-all" (lowest-common-denominator) experience.
    • Provide little opportunity for customizing the IDE behavior to suit the language.

Enter: Eclipse IMP Technology Project

  • Eclipse-based meta-IDE for building feature-rich language-specific IDEs
  • Support for many IDE features: syntax highlighting, source code folding, outlining, source annotations, hover help, source hyperlinking from references to declarations, content assist, context-specific help, occurrence marking, incremental building with dependency tracking, auto-edit strategies, rule-based source code formatting, refactoring (in progress)
  • Implement support for the IDE features you most want
    • IMP will do the most it can with whatever you've implemented
  • Supports extensive customization of the IDE appearance and behavior - not a one-size-fits-all experience for your IDE's users
  • No bias toward any particular kind of language
  • Use any parsing/compiling technology you want (including rolling your own)
  • Already in use for nontrivial languages with a wide variety of purposes:
    • Grammar specification
    • Domain-specific languages (DSLs)
    • Modeling
    • General-purpose programming languages (X10, COBOL, etc.)
  • We eat our own dog food: we've built several IDEs using IMP that are in daily use as part of IMP

Eclipse GEF3D

GEF3D-screenshot-transformationchain.png

  • 3D extension of GEF, enables full-featured 3D editors
  • existing 2D editors can easily be adapted to be used in a 3D scene
  • GEF and Draw2D programming style preserved (only little or even now 3D programming knowledge is required)
  • custom 3D figures and shapes can be created using an OpenGL like API
  • use cases:
    • visualization of inter-model relationships, e.g. mappings (see example screenshot)
    • annotation of 2D diagrams using the 3rd dimension, e.g. metrics
    • 3D notations for domain specific languages

Spatio-Temporal Epidemiological Modeler

STEMUSA.png

  • Extensible, collaborative, framework for creating computational models for the spread of infectious disease.
  • Extensive data sets
    • Geographic and demographic data for entire planet
    • Transportation infrastructure
  • Geographic visualizations
  • Models can be composed, shared and reused
  • Built-in components
    • Sophisticated mathematical models
    • Scenarios for every country
  • Can be used for other kinds of modeling
    • Real-time situation awareness
    • Disaster planning

Eclipse Linux Tools Project

RPM .spec editor

LinuxToolsSpecEditor.png

  • Outline, folding, colourization, quick outline
  • Hover help and completion
    • Macros (%patch)
    • Requires/BuildRequires
  • rpmlint integration
  • Would love to see similar .deb tooling

RPM Stubby

LinuxToolsRPMStubby.png

  • One of our major project goals is to bring Eclipse technology to Linux distribution users
  • Transforms an Eclipse feature to an RPM .spec
  • Again, would love to see similar .deb tooling

GNU Autotools integration

LinuxToolsConfigureACEditor.png

  • Builds on CDT's builders to seamlessly call appropriate Makefile generators
  • Editors for configure.ac and Makefile.am
  • Potential contribution: a form editor!

OProfile integration

LinuxToolsOProfile.png

  • Call profiling
  • Plans include code colourization of hot spots a la Eclemma

Valgrind integration

LinuxToolsMemcheck.png

  • memcheck: check for memory errors
    • ex. malloc with no free
    • Link with source editors which have markers
    • Potential contribution: quick fixes

LinuxToolsMassif.png

  • massif: heap usage
    • Table of snapshots
    • Chart of usage
    • Linking with source editors
  • Upcoming tool in 0.2.0 release: cachegrind
    • Cache hits and misses

Java Workflow Tooling

An extensible business process modeler...

JWT Views.png

  • Extensible set of views (UML, Tech, EPC...)
  • Extensible meta-model (aspects)
  • Customizable UI

...that produces executable processes

JWT Transfos.png
  • A growing set of transformations
    • XPDL
    • BPMN
    • jPDL (incubating)
  • Incubating runtime API to facilitate development of automated tasks
  • Incubating workflow administration and monitoring component

A welcoming project

JWT Welcome.png

www.eclipse.org/jwt