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!
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
Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 3
AgendaAgenda
What is Eclipse?
Eclipse Mechanics
Eclipse Demo
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
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.
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.
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
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
Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 9
User’s PerspectiveUser’s Perspective
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
Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 11
MultiMulti--Pane, MDI InterfacePane, MDI Interface
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
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
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
Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 15
DemoDemo –– User’s PerspectiveUser’s Perspective
Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 16
Developer’s PerspectiveDeveloper’s Perspective
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
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>
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
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
Eric Clayberg - Instantiations, Inc. July 14, 2003 Eclipse for Smalltalkers - 21
DemoDemo –– Developer’s PerspectiveDeveloper’s Perspective
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…
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]