Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

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

(Eclipse is a Runtime Framework)
 
(4 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
Everything after the Contents section below will render as slides.
 
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}
+
'''Thank you to everybody who contributed. I've moved this into my workspace. I'll make it available after I've massaged it a bit.'''
 
+
=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==
+
[[Image: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 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==
+
[[Image: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 (STEM)=
+
==Spatio-Temporal Epidemiological Modeler==
+
[[Image:STEMUSA.png|400x400px]]
+
* 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===
+
[[Image: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===
+
[[Image: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===
+
[[Image: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===
+
[[Image:LinuxToolsOProfile.png]]
+
* Call profiling
+
* Plans include code colourization of hot spots a la Eclemma
+
 
+
===Valgrind integration===
+
[[Image:LinuxToolsMemcheck.png]]
+
* memcheck:  check for memory errors
+
** ex. malloc with no free
+
** Link with source editors which have markers
+
** Potential contribution:  quick fixes
+
[[Image: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...===
+
 
+
[[Image:JWT_Views.png]]
+
 
+
* Extensible set of views (UML, Tech, EPC...)
+
* Extensible meta-model (aspects)
+
* Customizable UI
+
 
+
===...that produces executable processes===
+
 
+
[[Image:JWT_Transfos.png|thumb|right|400px]]
+
 
+
* 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
+
 
+
=Nebula=
+

Latest revision as of 16:23, 16 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.

Thank you to everybody who contributed. I've moved this into my workspace. I'll make it available after I've massaged it a bit.

Back to the top