Eclipse and Its Corona: Inside a Large Scale Open Source Project
Total Page:16
File Type:pdf, Size:1020Kb
Eclipse and its Corona Inside a Large Scale Open Source Project - What Can we Learn From Open Source Aldo Eisma Consulting IT Specialist IBM Global Services [email protected] © 2004 IBM Corporation What is Eclipse? © 2004 IBM Corporation What is Eclipse? • Eclipse - an open extensible IDE for anything and nothing in particular… + out-of-box function and quality to attract developers a development environment for itself + endorsement (i.e, products) by some major tool vendors + open-source and supports open source development ¾ industry standard tools platform © 2004 IBM Corporation Why Should You Care? • as a tool developer… – seamless tool integration – you no longer have to start from scratch – everybody can become a tool smith ¾ Eclipse changes the way tools are built • as a Java developer… – you get a state-of-the-art Java IDE that you can tweak ¾ but Eclipse is more than a Java IDE • as a user… • you get tools from different suppliers to make a tool environment the way you want it ¾ freedom of choice © 2004 IBM Corporation The Way to Eclipse 1997 1998 19992000 2001 2002 2003 2004 VisualAge/Java VisualAge Micro Edition Eclipse June Oct Nov June March June Tech 1.0 Open 2.0 2.1 3.0 Preview Source announcement © 2004 IBM Corporation Goals • Provide open platform for application development tools – run on a wide range of operating systems – GUI and non-GUI • Language-neutral – permit unrestricted content types – HTML, Java, C/C++, JSP, EJB, XML, GIF, … • Facilitate seamless tool integration – add new tools to existing installed products • Attract community of tool developers – including independent software vendors (ISVs) – capitalize on popularity of Java for writing tools © 2004 IBM Corporation Why Open Source? • Full life cycle tool support requires contributions from partners • Options: 1. proprietary APIs 2. defined APIs plus Open Source • Partners want Open Source – less dependency on IBM – freedom of action for partners: • complement IBM products • implement their own products ¾ Platform rule: the more ISVs - the more relevant is the platform © 2004 IBM Corporation eclipse.org • Eclipse Project – builds the Platform – adapt, evolve to meet needs of the community • Eclipse Tools Project – best of breed tools • Eclipse Technology Project – research, incubation, education • Web Tools Platform Project – build tooling for enterprise applications © 2004 IBM Corporation – just forming… eclipse.org • Eclipse Project Project – Platform – JDT: Java Development Tools Subprojects – PDE: Plug-in Development Environment • Eclipse Tools – GEF: Graphical Editing Framework – EMF, VE, UML2: Modeling frameworks and tools – Hyades: Test, Trace and Monitoring tools – CDT, Cobol: programming tools • Technology – AJDT: Aspect-oriented Java development tools – Equinox: new more dynamic plug-in architecture © 2004 IBM Corporation – … Eclipse Community • Open Source is a “community thing” – an active community is the major asset of an OS project • OS project gives and takes: – OS developer gives: • listen to feedback and react • demonstrate continuous progress • transparent development – OS developer takes: • answer user questions so that developers do not have to do it • report defects and feature requests • validate technology by writing plug-ins • submit patches and enhancements • Give and take isn’t always balanced – community isn’t shy and is demanding © 2004 IBM Corporation Community (Cont’d) • Increase the knowledge-level of the community • Requires intense communication – mailing list, newsgroups • news group now mostly self supporting – user maintained wiki • Community events – code camps – work with committers on your projects – “sprints” – committers meet to work on the OS project – EclipseCon – tech community conference © 2004 IBM Corporation Growth of a Community • Vendors are committing to Eclipse –Over 175 vendors including significant commitments from Rational, TogetherSoft, Serena, QNX, Merant – C/C++ IDE plug-in for Linux being led by QNX with RedHat, Rational, and MontaVista •Over 600 open source or freeware plug-in projects available – 450+ plug-ins at: www.eclipse-plugins.info – 150+ plug-ins at: www.eclipse-workbench.com • 50 Eclipse Innovation Grants Approved © 2004 IBM Corporation Open Source Questions • Impact of transition to Open Source? • Is Open Source chaotic? • What are the contributions? • Open Source and quality? • Planning an Open Source project? • Open Source and business? © 2004 IBM Corporation Transitioning to Open Source • Challenges – transparency • the community has to be able to observe what is going on to participate – educate community ¾ this takes time and conflicts with the IBM “shipping software” goal • not all developers enjoy Open Source exposure – loss of the product support “firewall” • developers interact with customers directly ¾ initial slow-down due to community engagement but increased transparency © 2004 IBM Corporation Adopting Open Source Tools • Open Source projects use a common set of tools • Software development: – version configuration management: CVS – build system: Ant – unit testing: JUnit ¾ Integrate OS tools into Eclipse • Collaboration: – bug tracking: Bugzilla – newsgroups/mailing list – user collaboration: Wiki Web •FAQ © 2004 IBM Corporation Open Source Tools (Cont’d) • Open Source tools are Open Source – high quality – validated for distributed development • Transition to OS tools was (surprisingly) smooth © 2004 IBM Corporation Chaotic? • OS projects are highly structured – with explicit rules • Commit right rules: public “meritocracy” – only a small number of developers can modify the source base – key architecture defined by a small team of lead developers – peer pressure among committers – continuous reviewing – contributions from outside (patches) have to be reviewed by committers © 2004 IBM Corporation Contributions? Who is Reporting Bugs? • Eclipse 2.1 (6 months) – Consortium organizations: 7100 defects (= 1185 / m) month) • 341 reporters – Open source community: 3560 defects (= 595 / m) • 1212 reporters © 2004 IBM Corporation Contributions? Code • Eclipse 2.1 – 42 contributions • Expectation level for contributions is high – platform contributions have to have product quality – conforming to all the conventions is difficult • Larger contributions usually start as independent plug-ins • Products can introduce certification process for external plug-ins – Example: “Ready for WebSphere Studio Software plug-in ” © 2004 IBM Corporation Quality? Continuous Integration • Fully automated build process – Ant based • Build quality verified by JUnit tests – for a successful Eclipse build > 10’000 JUnit tests have to pass • Staged builds – nightly builds, weekly integration builds, monthly mile stone builds • “Eat your own dog food” © 2004 IBM Corporation Planning Product requirements suggest improvements Eclipse Products Committers commit to plan Project Management Committee posts draft plan ¾plans start in embryonic form PlanPlan and are revised throughout the Community release cycle ¾milestones/time boxes enhancements are fixed early on feature requests bug votes © 2004 IBM Corporation Business? • Business opportunities – support – services and education – enhancements, e.g., easy install, better documentation – customization • Who are those guys? – BCG study of 678 Open Source Developers • 58% professional IT programmers • 30% Open Source is their job! © 2004 IBM Corporation Extending Eclipse for Fun and Profit… Commercial Development Environments IBM SAP Websphere Studio family NetWeaver Developer Studio Eclipse SDK Eclipse SDK Commercial Add-Ons IBM SAP Websphere Studio family NetWeaver Developer Studio Eclipse SDK Eclipse SDK © 2004 IBM Corporation Instantiations, Borland, Sitraka, SlickEdit… Business? Complementary Products Generate Revenue Enterprise Developer • Enterprise XDE development Rational Rational Application Developer – Integration Edition organizations • Advanced • Web services J2EE based Application Developer developers enterprise modernization • J2EE • Flow developers composition • Enterprise Site Developer modeling and • Visual • Relational RAD • Professional Web, Java, and DB tools adapter Device Developer creation Web services developers • Embedded • Java, XML, Rich media, and WebSphere • Business Web services Application rule support Server WebSphere Studio Workbench IBM’s commercially supported version of the Eclipse Workbench © 2004 IBM Corporation Is it Paying Off? • Internal: tool strategies have aligned – all IBM tools build on top of Eclipse • Perception: Eclipse has a significant impact – “IBM is cool” • Products: a complete set of integrated tools is now available – enterprise application development – modeling (Rational) –C/C++ IDE ⇒ not built by IBM ¾ 175 tool vendors are providing plug-ins for Eclipse • Community: a growing asset – testing, feedback, contributions • Costs: fixed cost ⇒ IBM needs such a platform anyways© 2004 IBM Corporation So? (easy…) • Join the Eclipse community and use Eclipse as… – … your tools platform • vendor support available if desired • “now any Joe Engineer can take the Eclipse product and be productive” – CIO Magazine Apr 15 ¾listen to your top developers – … a platform for building your own products • CPL license allows shipping commercial products • freedom about adding to WS studio or build your own tools –… a Rich Client Platform for your own applications • leverage the proven Eclipse architecture and UI for your own rich client applications ¾ don’t be afraid of Open Source products © 2004 IBM Corporation