• No results found

Eclipse for Smalltalkers

N/A
N/A
Protected

Academic year: 2021

Share "Eclipse for Smalltalkers"

Copied!
23
0
0

Loading.... (view fulltext now)

Full text

(1)

Eclipse for

Eclipse for

Smalltalkers

Smalltalkers

Eric Clayberg

Eric Clayberg

Sr. Vice President of Product Development

Sr. Vice President of Product Development

Instantiations, Inc.

Instantiations, Inc.

July 14, 2003

July 14, 2003

clayberg

clayberg

@instantiations.com

@instantiations.com

http://www.instantiations.com

http://www.instantiations.com

978

978

-

-

750

750

-

-

3621

3621

What a difference a year makes!

(2)

Who Am I?

Who Am I?

z First used Smalltalk in late ‘80s; full-time since 1991; First used Java in 1996; Eclipse in 2000

z Co-Founder of (the original) ObjectShare in 1992;

V.P. of Product Development for ParcPlace-Digitalk 1996-97 V.P. of Product Development for Instantiations since 1997

z Developer & Chief Architect of WindowBuilder Pro and over a dozen other commercial Smalltalk add-on products (VA Assist Pro, WidgetKits, etc.)

z Multi-faceted Software Company - founded in 1997

(out of the ashes of ParcPlace, Digitalk and ObjectShare)

z Advanced Tier IBM Business Partner;

Winner of the 2001 IBM Solutions Excellence Award for “Cool Tool”

(for a product built with Smalltalk)

z VisualAge Smalltalk product line: VA Assist Pro, WindowBuilder Pro,

WidgetKits, VSE to VAST Translation Tool, GF/ST; Also known for: JOVE, VA Assist/J, jFactor, jKits, CodePro Studio for WebSphere & JBuilder

(3)

Agenda

Agenda

z

What is Eclipse?

z

Eclipse Mechanics

(4)

What is Eclipse?

What is Eclipse?

The Eclipse Project is an open source software

development project dedicated to providing a robust, full-featured, commercial-quality, industry platform for the development of highly integrated tools.

The Eclipse Platform is an open extensible IDE.

“Eclipse” provides building blocks and a foundation for constructing and running integrated software

development tools. It is composed of three primary sub-components: Platform, Java Development Tools (JDT), and Plug-in Development Environment (PDE).

“An IDE for anything, and for nothing in particular”

(5)

What is WebSphere Studio

What is WebSphere Studio

Workbench?

Workbench?

IBM WebSphere Studio Workbench is based on the Eclipse platform and is fully supported by IBM. This is the basis for all of IBM’s Eclipse-based commercial tools

IBM WebSphere Studio Application Developer is a J2EE application development tool optimized for the WebSphere software platform. Application Developer represents the next generation of IBM offerings and is the successor to VisualAge for Java Enterprise.

(6)

Eclipse Overview

Eclipse Overview

z

Created by OTI & IBM – the same folks who brought you

ENVY

and

VisualAge Smalltalk

z

The technology is organized around a

workbench

into which any

number of

tools

can be installed.

z

The workbench provides the

run-time

context in which these

tools run.

z

Tools generally operate on the tree of

resources

managed by the

workbench.

z

Resources are regular files and folders, arranged into larger units

called

projects

.

z

The

desktop

is built on top of the platform to provide a

general-purpose graphical user interface (GUI) to the

workbench

and its

resources.

z

Tools

integrate seamlessly into the platform by contributing

(7)

Key Components

Key Components

z

Platform Services

z Resource Management

z Team Programming Model

z Interoperability with non-WebSphere Tools

z Debugging

z Extensibility Mechanism

z

Common Frameworks

z Standard Widget Toolkit (SWT)

z User Interface Framework (JFace)

z Source Editing Framework (SEF)

z Graphical Editing Framework (GEF)

z

Platform Extensions

z Desktop

z Java Tools

(8)

Eclipse Mechanics

Eclipse Mechanics

z

User’s Perspective

z General Characteristics

z Multi-Pane, MDI Interface

z Standard IDE Features

z Semantic Searching

z Refactoring

z

Developer’s Perspective

z General Characteristics

z Extension API

z Workbench Extension Points

(9)

User’s Perspective

User’s Perspective

(10)

General Characteristics

General Characteristics

z

Eclipse is a state-of-the-art IDE…for any language

Every change saved forever (ENVY) Configurable “local history”

Change Tracking

ENVY, StORE, etc. CVS, PVCS, ClearCase, etc.

Repository

Everything Windows, Linux, Mac, Solaris, QNX, AIX

Platforms

Incremental with hot code replacement Incremental or batch, decent hot code

replacement with JDK 1.4

Compilation

Excellent Good, especially with hot code replacement

Debugger

Virtually unlimited for a moderately skilled developer

Limited to exposed preferences and plugin points

Customization

Problematic (IDE dependent) Easy, well defined

Deployment SUnit JUnit Testing Smalltalk Java, HTML, XML, C++, C#, etc. Languages Multi-window Single window, MDI-like

UI Style

Classes & Methods, very OO Mostly File based with some nice OO views

Navigation

Smalltalk IDE Eclipse

(11)

Multi

(12)

Standard IDE Features

Standard IDE Features

z Eclipse includes most “modern” IDE features like drag/drop, syntax coloring, code assist, etc. Various commercial and open-source GUI builders are

available.

z Eclipse also includes most “standard” Smalltalk IDE features like true semantic searching (e.g., senders & implementors with various scoping options)

Great choices IBM JVE, SWT Workbench,

Many Open Source Projects

GUI Builder

Yes Yes (some scoping issues)

Workspace/Scrapbook Yes Yes Macros Limited Excellent Code Assist Yes Yes Formatter

Yes (IDE dependent) Yes

Syntax Coloring

Very powerful, semantic-based, easily Very powerful, semantic-based,

Searching

Yes (IDE dependent) Yes

Drag & Drop

Smalltalk IDE Eclipse

(13)

Semantic Searching

Semantic Searching

z

Declaration and Reference searches for types, methods and fields

(14)

Refactoring

Refactoring

z Eclipse includes extensive built-in

refactoring capabilities with a comprehensive API

z The Refactoring Browser is available for most Smalltalk dialects and

includes a very nice scriptable replacement engine Both Both Encapsulate/Inline InstVar Both Both

Pull Up/Push Down InstVar/Method

Rename, Add Rename, Add,

Rearrange

Modify Method Parameters

Both Both

Extract/Inline Method

Both Both

Inline/Extract Local Variable

All All

Rename Class/InstVar/Method

Smalltalk IDE Eclipse

(15)

Demo

(16)

Developer’s Perspective

Developer’s Perspective

(17)

Highly coupled, easy for one plugin to kill entire IDE, easy for tools to collide Very little, good isolation provided,

no chance of collision Plugin Coupling Excellent Moderate Reflection Tends to be monolithic Highly Modular, dynamically built

based on available plugins

Modularity

All classes are visible Controlled by plugins and special

class loaders Visibility Full Source Full Source Source Access Image-Based File-Based Structure Smalltalk IDE Eclipse

General Characteristics

General Characteristics

z

Eclipse is a well-designed, well-factored, OO environment

z

Its few weaknesses are due to Java language restrictions

(18)

Extension API

Extension API

Easy, Ad-hoc, Unlimited Rigid, Formal, Well defined, Limited

Extensibility

Startup hook available Startup hook available

Plugin Activation

Smalltalk Java, XML

Extension Language

Unlimited access, fully public Nearly unlimited access (some is

marked private or internal)

API Access

Native or Emulated (Dialect dependent), no LCD Native, SWT, JFace, ActiveX, no LCD

UI Library

Smalltalk IDE Eclipse

z Eclipse provides a full-featured API

z Plugins are written in Java and integrated via XML

z Plugins aren’t activated until actually needed (a startup hook is available just in case)

<objectContribution

objectClass="org.eclipse.core.resources.IFile"

nameFilter="*.java“ id="com.foo.openMyJavaEditor"> <action label=“Edit File“ icon="images/my_editor.gif"

id="com.foo.openMyEditorAction" class="com.foo.OpenMyEditorActionDelegate" enablesFor="1“ menuBarPath="additions" helpContextId=“my_editor_action_context"> </action> </objectContribution>

(19)

Workbench Extension Points

Workbench Extension Points

z Workbench

z Action Sets - used to add menus, menu items and toolbar buttons to the common areas in the workbench window

z Editors- used to add new editors to the workench

z Editor Actions - used to add actions to the menu and toolbar for editors

z Export Wizards - used to register export wizard extensions

z Import Wizards - used to register import wizard extensions

z New Wizards - used to register resource creation wizard extensions

z Perspectives - used to add perspective factories to the workbench

z Perspective Extensions - used to extend perspectives

z Popup Menus - used to add new actions to pop-up menus

z Preference Pages- used to add pages to the preference dialog box

z Property Pages - used to add additional property page for objects of a given type

z Views– used to define additional views for the workbench

(20)

Other Extension Points

Other Extension Points

z Workspace

z Builders - The job of a builder is to process a set of resource changes

z Markers - A marker is a kind of metadata (similar to properties) which can be used to tag resources with user information

z Natures - A nature associates lifecycle behavior with a project

z Compare – content viewers, merge viewers

z Ant – objects, tasks, types

z Targets (Repositories)

(21)

Demo

(22)

Conclusion

Conclusion

z Eclipse is a state-of-the-art IDE that is as good as or better than almost anything found anywhere in the world (it is certainly the best “popular” IDE available)

z Smalltalk still has a slight edge in building highly reflexive and extensible tools

z Java, the language, is Eclipse’s weakest link, but this weakness is minimized by the strength of the Eclipse architecture

z The Java IDE world has (finally) caught up and continues to move forward

z Eclipse is powerful enough to support the creation of almost any IDE tool or facility (including a Smalltalk IDE!)

z High quality semantic searching and refactoring capabilities are no longer unique to the Smalltalk world

z Smalltalk vendors should not rest on their laurels and assume that Smalltalk IDEs will always be better…

(23)

Eclipse Resources

Eclipse Resources

z Eclipse & WebSphere Studio

z Eclipse.org Home Page

http://www.eclipsecorner.org/ z Downloads http://www.eclipsecorner.org/downloads/ z Technical Articles http://www.eclipsecorner.org/articles/ z Mailing Lists http://www.eclipsecorner.org/mail/ z FAQ http://www.eclipse.org/eclipse/faq/eclipse-faq.html z IBM WebSphere Studio Family

http://www-3.ibm.com/software/ad/adstudio/ z Eclipse Plugins http://eclipse-plugins.2y.net/ z Newsgroups news://www.eclipse.org/eclipse.platform news://news.software.ibm.com/ibm.software.websphere.studio.application-site-developer z Other

z Instantiations’ Web Site

References

Related documents

Through the annual budget process, the Urban Renewal Agency Board (Agency) has approved the WSRAB recommendations to reserve funds for the design and construction of 2 nd Street

Application and Information Assets What’s new ƒ IBM WebSphere Business Modeler ƒ IBM WebSphere Integration Developer ƒ IBM WebSphere Process Server ƒ IBM WebSphere

Supporting this result, cultures containing marine ANME-1 and ANME-2 were shown to incorporate carbon derived from labelled methane into archaeol, monounsaturated archaeol

Purcell, Melissa UCLA Medical Malpractice – General Negligence San Francisco County Superior Court. Reiterman, Jadon, a minor UCD Medical Negligence and Loss of Consortium

Abcam’s Annexin V-FITC Apoptosis Detection Kit is based on the observation that soon after initiating apoptosis, cells translocate the membrane phosphatidylserine (PS)

woningbouwvereniging is opgenomen dat bij uittreden van een huurder uit de ver- eniging een bepaald bedrag aan de woningbouwvereniging moet worden betaald. Afgezien van het feit dat

Miguel and Satyanath (2011) argue that the results of the rainfall growth specification show that civil conflict risk is significantly higher following falling

The focus of this new DAU offering is to provide the Defense Acquisition Workforce significant insight into how our industry partners function and support DoD materiel