Top Banner
Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 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! What a difference a year makes!
23

Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Sep 25, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 1

Eclipse forEclipse for SmalltalkersSmalltalkers

Eric ClaybergEric ClaybergSr. Vice President of Product DevelopmentSr. Vice President of Product Development

Instantiations, Inc.Instantiations, Inc.July 14, 2003July 14, 2003

[email protected]@instantiations.comhttp://www.instantiations.comhttp://www.instantiations.com

978978--750750--36213621

What a difference a year makes!What a difference a year makes!

Page 2: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 2

Who Am I?Who Am I?First used Smalltalk in late ‘80s; full-time since 1991;First used Java in 1996; Eclipse in 2000

Co-Founder of (the original) ObjectShare in 1992;V.P. of Product Development for ParcPlace-Digitalk 1996-97V.P. of Product Development for Instantiations since 1997

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

Multi-faceted Software Company - founded in 1997(out of the ashes of ParcPlace, Digitalk and ObjectShare)

Advanced Tier IBM Business Partner;Winner of the 2001 IBM Solutions Excellence Award for “Cool Tool”(for a product built with Smalltalk)

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

Built some of the very first Eclipse demos used by IBM

Eclipse consortium board member

Page 3: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 3

AgendaAgenda

What is Eclipse?

Eclipse Mechanics

Eclipse Demo

Page 4: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 4

What is Eclipse?What is Eclipse?

The Eclipse Project is an open source softwaredevelopment project dedicated to providing a robust,full-featured, commercial-quality, industry platform forthe development of highly integrated tools.

The Eclipse Platform is an open extensible IDE.“Eclipse” provides building blocks and a foundation forconstructing and running integrated softwaredevelopment tools. It is composed of three primarysub-components: Platform, Java Development Tools(JDT), and Plug-in Development Environment (PDE).

“An IDE for anything, and for nothing in particular”Eclipse Platform Technical Overview, OTI 2001

Page 5: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5

What is WebSphere StudioWhat is WebSphere StudioWorkbench?Workbench?

IBM WebSphere Studio Workbench is based on theEclipse platform and is fully supported by IBM. This isthe basis for all of IBM’s Eclipse-based commercialtools

IBM WebSphere Studio Application Developer is aJ2EE application development tool optimized for theWebSphere software platform. Application Developerrepresents the next generation of IBM offerings and isthe successor to VisualAge for Java Enterprise.

Page 6: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 6

Eclipse OverviewEclipse OverviewCreated by OTI & IBM – the same folks who brought youENVY and VisualAge Smalltalk

The technology is organized around a workbench into which anynumber of tools can be installed.

The workbench provides the run-time context in which thesetools run.

Tools generally operate on the tree of resources managed by theworkbench.

Resources are regular files and folders, arranged into larger unitscalled projects.

The desktop is built on top of the platform to provide a general-purpose graphical user interface (GUI) to the workbench and itsresources.

Tools integrate seamlessly into the platform by contributingbuttons, menus, viewers, and other GUI elements to the desktop.

Page 7: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 7

Key ComponentsKey Components

Platform ServicesResource ManagementTeam Programming ModelInteroperability with non-WebSphere ToolsDebuggingExtensibility Mechanism

Common FrameworksStandard Widget Toolkit (SWT)User Interface Framework (JFace)Source Editing Framework (SEF)Graphical Editing Framework (GEF)

Platform ExtensionsDesktopJava ToolsWeb Tools

Page 8: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 8

Eclipse MechanicsEclipse MechanicsUser’s Perspective

General CharacteristicsMulti-Pane, MDI InterfaceStandard IDE FeaturesSemantic SearchingRefactoring

Developer’s PerspectiveGeneral CharacteristicsExtension APIWorkbench Extension PointsOther Extension Points

Page 9: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 9

User’s PerspectiveUser’s Perspective

Page 10: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 10

General CharacteristicsGeneral CharacteristicsEclipse 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

EverythingWindows, Linux, Mac, Solaris, QNX, AIXPlatforms

Incremental with hot code replacementIncremental or batch, decent hot codereplacement with JDK 1.4

Compilation

ExcellentGood, especially with hot code replacementDebugger

Virtually unlimited for a moderately skilleddeveloper

Limited to exposed preferences and pluginpoints

Customization

Problematic (IDE dependent)Easy, well definedDeployment

SUnitJUnitTesting

SmalltalkJava, HTML, XML, C++, C#, etc.Languages

Multi-windowSingle window, MDI-likeUI Style

Classes & Methods, very OOMostly File based with some nice OO viewsNavigation

Smalltalk IDEEclipse

Page 11: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 11

MultiMulti--Pane, MDI InterfacePane, MDI Interface

Page 12: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 12

Standard IDE FeaturesStandard IDE FeaturesEclipse includes most “modern” IDE features like drag/drop, syntax coloring,code assist, etc. Various commercial and open-source GUI builders areavailable.

Eclipse also includes most “standard” Smalltalk IDE features like truesemantic searching (e.g., senders & implementors with various scopingoptions)

Great choicesIBM JVE, SWT Workbench,Many Open Source Projects

GUI Builder

YesYes (some scoping issues)Workspace/Scrapbook

YesYesMacros

LimitedExcellentCode Assist

YesYesFormatter

Yes (IDE dependent)YesSyntax Coloring

Very powerful, semantic-based, easilyscripted by user

Very powerful, semantic-based,extensible via plug-in points

Searching

Yes (IDE dependent)YesDrag & Drop

Smalltalk IDEEclipse

Page 13: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 13

Semantic SearchingSemantic Searching

Declaration and Reference searches for types, methods and fields

Additional Read and Write Access searches for fields

Page 14: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 14

RefactoringRefactoringEclipse includes extensive built-inrefactoring capabilities with acomprehensive API

The Refactoring Browser is availablefor most Smalltalk dialects andincludes a very nice scriptablereplacement engine

BothBothEncapsulate/Inline InstVar

BothBothPull Up/Push DownInstVar/Method

Rename, AddRename, Add,Rearrange

Modify Method Parameters

BothBothExtract/Inline Method

BothBothInline/Extract Local Variable

AllAllRename Class/InstVar/Method

Smalltalk IDEEclipse

Page 15: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 15

DemoDemo –– User’s PerspectiveUser’s Perspective

Page 16: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 16

Developer’s PerspectiveDeveloper’s Perspective

Page 17: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 17

Highly coupled, easy for one plugin tokill entire IDE, easy for tools to collide

Very little, good isolation provided,no chance of collision

Plugin Coupling

ExcellentModerateReflection

Tends to be monolithicHighly Modular, dynamically builtbased on available plugins

Modularity

All classes are visibleControlled by plugins and specialclass loaders

Visibility

Easy, ad-hocStructured, must build pluginExperimentation

Full SourceFull SourceSource Access

Image-BasedFile-BasedStructure

Smalltalk IDEEclipse

General CharacteristicsGeneral CharacteristicsEclipse is a well-designed, well-factored, OO environment

Its few weaknesses are due to Java language restrictions

Based on the concept of layered, dependent plugins

Page 18: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 18

Extension APIExtension API

Easy, Ad-hoc, UnlimitedRigid, Formal, Well defined, LimitedExtensibility

Startup hook availableStartup hook availablePlugin Activation

SmalltalkJava, XMLExtension Language

Unlimited access, fully publicNearly unlimited access (some ismarked private or internal)

API Access

Native or Emulated (Dialect dependent), no LCDNative, SWT, JFace, ActiveX, no LCDUI Library

Smalltalk IDEEclipse

Eclipse provides a full-featuredAPI

Plugins are written in Java andintegrated via XML

Plugins aren’t activated untilactually needed (a startup hookis 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>

Page 19: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 19

Workbench Extension PointsWorkbench Extension PointsWorkbench

Action Sets - used to add menus, menu items and toolbarbuttons to the common areas in the workbench windowEditors - used to add new editors to the workenchEditor Actions - used to add actions to the menu andtoolbar for editorsExport Wizards - used to register export wizardextensionsImport Wizards - used to register import wizardextensionsNew Wizards - used to register resource creation wizardextensionsPerspectives - used to add perspective factories to theworkbenchPerspective Extensions - used to extend perspectivesPopup Menus - used to add new actions to pop-up menusPreference Pages - used to add pages to the preferencedialog boxProperty Pages - used to add additional property page forobjects of a given typeViews – used to define additional views for the workbenchView Actions - used to add actions to the menu and toolbarfor views

Page 20: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 20

Other Extension PointsOther Extension PointsWorkspace

Builders - The job of a builder is to process a set of resource changesMarkers - A marker is a kind of metadata (similar to properties) whichcan be used to tag resources with user informationNatures - A nature associates lifecycle behavior with a project

Compare – content viewers, merge viewers

Ant – objects, tasks, types

Targets (Repositories)

Help

Page 21: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 21

DemoDemo –– Developer’s PerspectiveDeveloper’s Perspective

Page 22: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 22

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

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

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

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

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

High quality semantic searching and refactoring capabilities are no longerunique to the Smalltalk world

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

Page 23: Eclipse for Smalltalkers - Instantiations · Eclipse Platform Technical Overview, OTI 2001. Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 5 What is

Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 23

Eclipse ResourcesEclipse ResourcesEclipse & WebSphere Studio

Eclipse.org Home Pagehttp://www.eclipsecorner.org/Downloadshttp://www.eclipsecorner.org/downloads/Technical Articleshttp://www.eclipsecorner.org/articles/Mailing Listshttp://www.eclipsecorner.org/mail/FAQhttp://www.eclipse.org/eclipse/faq/eclipse-faq.htmlIBM WebSphere Studio Familyhttp://www-3.ibm.com/software/ad/adstudio/Eclipse Pluginshttp://eclipse-plugins.2y.net/Newsgroupsnews://www.eclipse.org/eclipse.platformnews://news.software.ibm.com/ibm.software.websphere.studio.application-site-developer

OtherInstantiations’ Web Sitehttp://www.instantiations.com/Me ;-)mailto:[email protected]