Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Technology/Ten Eclipse Projects You Haven't Heard Enough About
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}
Contents
- 1 Ten Eclipse Projects You Haven't Heard Enough About
- 2 What is Eclipse?
- 2.1 Eclipse is a Java IDE
- 2.2 Eclipse is an IDE Framework
- 2.3 Eclipse is a Tools Framework
- 2.4 Eclipse is a Application Framework
- 2.5 Eclipse is a Runtime Framework
- 2.6 Eleven Top Level Projects
- 2.7 Eclipse is an Open Source Community
- 2.8 Eclipse is an Eco-System
- 2.9 Eclipse is a Foundation
- 2.10 Eclipse is all these things…
- 3 Eclipse Examples Project
- 4 Eclipse IDE for Education
- 5 Eclipse IDE Meta-tooling Platform (IMP)
- 6 Eclipse GEF3D
- 7 Spatio-Temporal Epidemiological Modeler (STEM)
- 8 Eclipse Linux Tools Project
- 9 Java Workflow Tooling
- 10 Nebula
Ten Eclipse Projects You Haven't Heard Enough About
Wayne Beaton, Eclipse Foundation, Evangelist
Agenda
What is Eclipse? Survey projects that you probably haven't heard enough about
- Runtime Technology
- Frameworks
- Tools
What is Eclipse?
Eclipse is a Java IDE
- Language-aware editors, views, …
- Refactoring support
- Integrated unit testing and debugging
- Incremental compilation and build
- Team development support
Eclipse is an IDE Framework
- Eclipse + JDT = Java IDE
- First class framework for Java, language aware editor, incremental build, integrated debugging, ...
- Eclipse + CDT = C/C++ IDE
- First class framework for C/C++, language aware editor, refactoring, search
- Eclipse + PDT = PHP IDE
- Eclipse + JDT + CDT + PDT = Java, C/C++, PHP IDE
- Ruby, TCL, JavaScript, ...
Eclipse is a Tools Framework
- Plug-ins make Eclipse whatever you need it to be
- Platform of frameworks and exemplary tools
- Tools extend the platform using bundles/plug-ins
- Business Intelligence and Reporting Tools, Web Tools
- Project, Data Tools Project, Eclipse Modeling Framework
Eclipse is a Application Framework
- Remove the IDE elements; you’re left with a general-purpose application framework
- Linux, Windows, Mac OSX, UNIX, embedded
- Rich widget set, graphics
- Native-OS integration (drag and drop, OLE/XPCOM integration)
A platform for rich clients
Eclipse is a Runtime Framework
- Equinox generally useful component model
- Headless applications, servers
- Application Server on Equinox
- IBM WebSphere Application Server
- Oracle Weblogic Event Server
Eleven Top Level Projects
Eclipse Tools Web Tools Platform Test & Performance Tools Platform (TPTP) Business Intelligence and Reporting Tools (BIRT)
Eclipse is an Open Source Community
All Eclipse projects are available for free download ~1 million downloads/month Contributors number in the thousands Committers number in the hundreds Hundreds of plug-ins provided by commercial companies, organizations, and individuals Enthusiastic blogger community Numerous Eclipse portals, etc…
Eclipse is an Eco-System
Eclipse is focused on nurturing the eco-system to complement, and enhance the Eclipse Platform Hundreds of organizations build Eclipse plug-ins Companies collaborate on Eclipse projects Companies compete with products based on Eclipse technology Many members, including major Java, Enterprise, Linux, and Embedded vendors http://www.eclipse.org/membership/
Eclipse is a Foundation
The Eclipse Foundation Manages and directs the ongoing development Provides IT infrastructure required by development teams Independent not-for-profit Foundation formed in 2004 Does not directly employ developers for Eclipse projects
Eclipse is all these things…
A Java IDE An IDE framework A tools framework An application framework Runtimes
Eclipse Examples Project
Eclipse Business Expense Reporting Tool
- 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 IDE for Students
- 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
Eclipse GEF3D
- 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 (STEM)
Spatio-Temporal Epidemiological Modeler
- 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
- Outline, folding, colourization, quick outline
- Hover help and completion
- Macros (%patch)
- Requires/BuildRequires
- rpmlint integration
- Would love to see similar .deb tooling
RPM Stubby
- 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
- 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
- Call profiling
- Plans include code colourization of hot spots a la Eclemma
Valgrind integration
- memcheck: check for memory errors
- ex. malloc with no free
- Link with source editors which have markers
- Potential contribution: quick fixes
- 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...
- Extensible set of views (UML, Tech, EPC...)
- Extensible meta-model (aspects)
- Customizable UI
...that produces executable processes
- A growing set of transformations
- XPDL
- BPMN
- jPDL (incubating)
- Incubating runtime API to facilitate development of automated tasks
- Incubating workflow administration and monitoring component
- http://www.eclipse.org/jwt