Eclipse Way

259 views

Published on

Presented @ Eclipse Demo Camp 2009 in Krakow

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
259
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Eclipse Way

  1. 1. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedThe Eclipse WaySzymon Brandys Pawel Pogorzelski Tomasz ZarnaPlatform Workspace TeamIBM Poland2009-06-27The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  2. 2. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedAgenda1 What Is Eclipse2 Growth Path3 How We Are OrganizedThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  3. 3. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedHow We Got HereEclipse ArchitectureEclipse Based ProductsHow We Got HereJava strategic technology for IBMNeed to compete with MS VS and other Java IDECreated in 1998 by IBM/OTI teams responsible for VisualAgeproduct familyIn 2001 given opened to open source to increase exposure andaccelerate adoptionIn 2004 Eclipse Foundation was createdEclipse already well regarded tooling platformIn mid 2004 Eclipse 3.0 ships, now based on OSGiEclipse becomes more and more an RCP platformThousands of Eclipse based products on the market, from ST tofully loaded IDEsThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  4. 4. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedHow We Got HereEclipse ArchitectureEclipse Based ProductsEclipse ArchitectureThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  5. 5. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedHow We Got HereEclipse ArchitectureEclipse Based ProductsEclipse 3.5The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  6. 6. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedHow We Got HereEclipse ArchitectureEclipse Based ProductsIBM Rational Software Architect 7.0.0The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  7. 7. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedHow We Got HereEclipse ArchitectureEclipse Based ProductsIBM Lotus Notes 8The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  8. 8. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedHow We Got HereEclipse ArchitectureEclipse Based ProductsTivoli R Common Agent ServicesThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  9. 9. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedKeeping It BigModularityDeclarative ExtensionsStable APIsKeeping It BigHow can you build something that can last 10 years and be:Industry leadingExtendableConstantly evolvingWell, you need to have those:ModularityScalabilityStable APIsThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  10. 10. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedKeeping It BigModularityDeclarative ExtensionsStable APIsJVM ClassloadingApplication wide classpathjava -classpath./a-1.5.0.jar:./b.jar:./c.jar:./a-2.1.0.jar./bin:com.vendor.AppNot possible to use the same library in two versionsClassnames conflictsAll entries has to be searched which results in performance hitNo need to declare dependencies explicitlyThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  11. 11. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedKeeping It BigModularityDeclarative ExtensionsStable APIsOSGiClasses and charts aren’t enough, you need components. OSGiprovide those in form of bundles:Explicit dependencies managmentImport-Package: org.osgi.framework;version=1.2Export-Package: org.osgi.service.cm;version="1.2.1"No sea of classes, no exhibitionismApplication wide classpathModularity that OSGi gives enables evolution.The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  12. 12. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedKeeping It BigModularityDeclarative ExtensionsStable APIsDeclarative extensionsExtension points are the places where you expect functionality to beextended. Extensions are features that plug-in into extension points.Simple and powerfulDon’t load code until it is neededExplicit points where you can plug-inLazy loadingLazy loading given by Extension Registry gives scalability.The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  13. 13. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedKeeping It BigModularityDeclarative ExtensionsStable APIsStable APIsStable APIs are critical to sustain growth. Clients can add featuresinstead of updating to new API. So, it has to be:Consistent and wiseAny decision made today will impact where you can go tommorowAPI compatibility is a huge commitment so we take a defensiveapproach:Don’t add until there is at least one clientExhibit less rather then moreExpose more if neededThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  14. 14. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedKeeping It BigModularityDeclarative ExtensionsStable APIsAPI TensionAPI needs iteration and clients to work. But we need to have stableAPIs for widespread adoption. So, we:Develop API and client at the same timeDon’t commit API before it’s timeAPI changes within release to accomodate new requirements andexperienceIt also gives us early feedback on API violation. Just because it worksdoesn’t mean it’s API compliant.The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  15. 15. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedKeeping It BigModularityDeclarative ExtensionsStable APIsAPI LayersWhat if we want add new, more feature rich mechanizm?1 Add a new functionality2 An API layer that maps the old API to new implementation3 Remove the old implementation4 Deprecate the old API5 After a few years we might drop itBinary compatibilityWe tend to have more than stable API. Binary compatibility is what matterssince users will not rebuild a plug-in.The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  16. 16. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedKeeping It BigModularityDeclarative ExtensionsStable APIsAPI ToolsAPI Baseline defines the state you want to compare your developmentagainst. Tools check:Usage problemsBinary compatibilityBundle version numbersMaintanance tag @sinceOther tags:@noimplement@noinstantiate@noextendKnown problems can be marked appropriately and filtered.IntegrationTools make API violations are perceived as natural as language constraints.The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  17. 17. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedPlanningContinous IntegrationCyclesThe CommunityPlanningComminity inputDiscuss propositions on bug reportsCommitted, proposed itemsWe drop items to maintain scheduleThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  18. 18. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedPlanningContinous IntegrationCyclesThe CommunityContinous IntegrationReleases - e.g. R3.4; stable, tested, lack the lates featuresStable - e.g. 3.5RC4; latest features, valuable and timelyfeedbackIntegration Builds - e.g. I20090611-1540, run weeklyNightly Builds - e.g. N20090426-1232; often major problems,useful to Eclipse Project developersAlways betaWe work on nightly builds so we try to keep them running.The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  19. 19. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedPlanningContinous IntegrationCyclesThe CommunityMilestonesThere is 7 milesontes, each takes 6 weeksShipping is hard, that’s why we do it 7 times a releaseCustomers can rebase more frequentlyPlan, develop, test, release, retrospectiveWe play all the rolesNew and NoteworthyFeed the communityMake people move to milestone buildsFewer completed than more in progressThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  20. 20. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedPlanningContinous IntegrationCyclesThe CommunityThe Convergence ProcessM6 - API freezeM7 - feature freezeRC1 - another commiter, PMC for API changesRC2 - two commitersRC3 - two commiters, compoment leadRC4 - two compoment leads, any lead can vetoCommiting Into RCsRelease Candidates time is when you never want to have a buildbrake.The Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18
  21. 21. eclipse-logoWhat Is EclipseGrowth PathHow We Are OrganizedPlanningContinous IntegrationCyclesThe CommunityCommunityInital investmentCommunity grows and becomes self supporting, we don’t have togrowEarly feedbackOpen technical discussions, even more important than open bugsTransparency, good for distributed teamsThe village effectThe Eclipse Way Copyright c IBM Corp., 2009. All rights reserved. | 2009-06-18

×