At JavaOne, I met John Rizzo from JavaBlackBelt and he mentioned to me that they had an Eclipse RCP exam. JavaBlackBelt uses a community based approach for developing certification exams of various Java related technology. It looks like an interesting model for creating certifications. The Eclipse RCP exam is still in beta but it is nice to see that it is on the list. Maybe some people from the Eclipse community can help complete it.
Creating Micro-platforms
May 23, 2006Eclipse has been very successful in developing a common platform for development tools integration. In fact, I believe one of the strengths of Eclipse is the large ecosystems of vendors, individuals and organizations that are building on top of the Eclipse platform. However, Eclipse is not unique in creating this type of platform, for example Microsoft Windows, eBay, Linux, are all considered platforms with strong ecosystems. I think it is interesting to observe why Eclipse and these other platforms have become so pervasive and successful. Can we also learn from these success and begin to create micro-platforms that enable smaller focused ecosystems.
In this, rather long post, I layout some ideas about what it means to be a platform, characteristics of a successful platform, the dynamics of the ecosystem around a platform and finish with how people could develop micro-platforms. I’d be interested in people’s comments and thoughts on the content.
What is a platform?
First, what is a platform? I would define a platform as a technology that dramatically increases in end user value as the number of different participants (suppliers) develops new and interesting content and applications for the platform. For example, MS Windows by itself is not very interesting but add in all of the applications you can get to run on Windows and that is the real value. Similarly, eBay with no sellers makes a pretty boring auction site. The important point is that a wide variety of different suppliers of content and applications contribute to the overall value of Windows and eBay.
Eclipse is example of a platform for developer tools. At the core is a component model based on OSGi but by itself is not very interesting. However, millions of developers are using the Eclipse platform and the gain increase value from the vast ecosystem of developer tools plug-ins that are available.
Characteristics of a Platform
Every technology will not become a platform or even should aspire to be a platform. However, there are some characteristics that indicate their potential success.
1. Commodity / Standard
In most cases the platform is often an implementation of technology that the end consumer realizes very little direct value. In the case of Windows, a desktop operating system is not very useful to end consumers if there are no applications. An eBay auction site with no seller is of little use to the buyers. Similarly, the Eclipse plug-in model is of no use to the developers if no plug-ins are available.
In essence the opportunity to differentiate between different implementations is often low. Therefore, organizations can derive little profit from competing with different implementations.
2. Significant Potential for Downstream Suppliers
A key component of a platform is that significant value is created by downstream suppliers of content and applications. Therefore, the platform must be enabling a community of suppliers that see the opportunity to add their unique value. If the platform is too specialized or presents to the end user a complete solution, the supplier community will not see the opportunity.
3. Exemplary Application
A platform needs to capture a significant portion of the population to appeal to the supplier community. To encourage user adoption, the platform needs to provide a ‘killer application’. Eclipse has gained pervasive adoption in the Java community by providing a Java IDE. Microsoft Windows has Office. Linux has LAMP.
The Ecosystem of a Platform
We can think of three main actors in a platform: platform provider, user/consumers and suppliers. The interaction and relationship between the actors is what defines the ecosystem for the platform. Each actor has a role in the ecosystem and a natural tension between the actors will dictate the health and growth of the ecosystem and platform. Understanding and managing the actors and the dynamics is critical to the success of a platform.
Role of the Platform Provider
The platform provider is the organization that governs the based platform technology. The behavior of the platform provider in relations to the other actors will establish the success of failure of the platform. There are two of key characteristics that a successful platform provider follows:
1. Encourages a profitable ecosystem. The Platform Provider needs to create an environment that allows for suppliers to be profitable. If the Platform provider extracts too much profit, ex. in terms of royalties or license fees, the supplier community will not flourished. Similarly, if the Platform Provider begins to compete, in terms of functionality, with its supplier community, then the health of the ecosystem will be damaged.
Ebay is a good example that has achieved a balanced between reasonable selling fees and a profit model to satisfy its shareholders. Eclipse and other open source communities, ex Linux and Apache, has the advantage of providing royalty free software.
2. An Architecture of participation.
Tim O’Reily coined the term ‘Architecture of Participation’ and described it as:
“architecture of participation” that includes low barriers to entry by newcomers, and some mechanism for isolating the cathedral from the bazaar. This architecture of participation allows for a real free market of ideas, in which anyone can put forward a proposed solution to a problem; it becomes adopted, if at all, by acclamation and the organic spread of its usefulness.
A platform provider must enable an architecture of participation. This is from a technology and governance perspective. If the platform provider is determined to exercise too much control, then the ecosystem will not develop. In my opinion, this has been one of the challenges the Mac community has experienced, when compared to Windows.
In the architecture of participation, you win by letting go. The platform provider gives up control of who participates, what gets built and how it is sold. In place of a vendor controlled strategy, a market economy and ecosystem develops based on the user community wants and needs.
Users / Consumers
For the most part, users or consumers view the platform as being a means to access the content and applications. Initially what attracts the users is a ‘ killer app’. However, overtime they begin to appreciate the value the platform brings in terms of integrating different applications from different suppliers. They also begin to realize the value of choice of suppliers supporting the platform. For instance, the vast number of Eclipse plug-ins for code management system allows individual developers to chose the one the best suits their requirements.
The more sophisticated users also see the potential of actually extending the platform to add value themselves. I can imagine many e-Bay buyers turn into eBay sellers. Similarly, a lot of Eclipse JDT users create their own plug-ins and some find their way back into the community.
To be successful a platform needs to be pervasive with a user community. In fact, I would suggest a platform needs to have more than 50% of a user community before a vibrant ecosystem emerges. The reason being is that until this threshold is meant, the supplier community will remain fragmented.
Suppliers
The Suppliers are who create the incremental value and thus create the healthy ecosystem. The suppliers typically view the platform from different perspectives:
1) A market opportunity based on gaining access to the user community.
2) A mechanism to reduce their development costs by leveraging the investment in the platform.
3) Simplifying their product configurations. Let’s face it; many ISVs appreciate just providing support for Windows, since it reduces their R&D costs.
4) An integration point with other vendors that participate in the platform
The critical success of any platform is the diversity and number suppliers. A successful platform will rally a vendor community. For instance, what Eclipse has done in the Java tools market and the embedded tools market or Windows has done for the desktop market. The diversity is important since it gives the user choice and hence increased value.
Creating Micro-Platforms and Ecosystems
Platforms do not need to be technology that is deployed to millions of users or developers. The concepts and benefits are applicable to other areas, such as large enterprise development organizations, vertical market industries and other functional technology areas. In fact the idea of creating, micro-platforms is becoming easier due to a better understanding of building extensible architectures using SOA and web services and specifications like OSGi. Also, better collaboration tools and open source communities are making it easier to understand how groups can collaborate to build micro-platforms.
It is important to first understand the benefits of building micro-platforms. From a consumer perspective the benefit seems to be choice and integration. They are able to select the content and applications that best meet their requirements from an ecosystem of different suppliers. From a supplier perspective, the main benefit seems to be efficiency of resources; efficiency in terms of supporting just one platform, reusing common implementations and ease of integration with other suppliers. The benefits to the micro-platform provider will depend on the type of organization creating the platform.
1. Micro-Platforms for an Enterprise
Large enterprise IT development organizations have often struggled with how to improve the efficiency of their organizations and integrate different applications that are created by different teams. For example NASA is working on an internal framework, called Ensemble, to share common implementations and integrate applications across the operations team for the Mars Rover command and control system. To me this appears to have some characteristics of a micro-platform.
2. Micro-Platforms for an ISV
Large ISVs often have the problem of delivering to their customers, different products and functionality developed by different development teams. By developing a micro-platform for the product suite, the ISV could reuse common components but more importantly provide common platform that allows their customers to integrate the different products. In addition, the platform can be used to allow third party business partners to integrate with the product suite, enabling a wider ecosystem.
IBM is adopting this strategy for their IBM Rational tools and SAS is adopting a similar strategy for their product line.
3. Functional Micro-Platforms
At Eclipse, a number of ‘functional’ micro-platforms are emerging. Consider the Eclipse Business Intelligence and Reporting Tools (BIRT) project, it is providing a framework for building reports but more importantly allow others to extend and customize the report, via templates. It is still very early stages but you can envision an ecosystem of template suppliers emerging around BIRT. Similarly the TPTP project, enabling testing and profiling tools to integrate around a common platform for managing test cases.
4. Industry Vertical Micro-Platforms
Probably the most exciting area to me is the potential of creating micro-platforms for industry verticals. In fact we are starting to see the emergence of vertical micro-platforms. Gumtree is an open source project that is creating a micro-platform for scientific experiments. It aims ‘to create a highly Integrated Scientific Experiment Environment (ISEE), allowing interconnectivity and data sharing between different distributed components such as motors, detectors, user proposal database and data analysis server.’ Bioeclipse is visual platform for chemo- and bioinformatics.
Micro-platforms for vertical industry may provide an efficient way for organizations, governments, etc to collaborate and innovate around specific industry standards. At a minimum, it seems to be a more efficient way of building vertical applications.
Conclusion
I believe platform and micro-platforms is an interesting perspective of how the software industry is changing. They are a number of large well established macro-platforms, such as eBay, Windows, Linux and Eclipse. The next step seems to be the creation of micro-platforms. I believe the technology and organizational structure to make micro-platforms a reality are in place.
Btw, a lot of the ideas and concepts about platforms have been written about in a variety of publications. Some good ones include a book called ‘The Keystone Advantage’, that provides an interesting perspective of platform providers. An excellent blog post on the success of Microsoft as a platform.
Invitation to practitioners from Jon Udell
May 23, 2006Jon Udell is a well respected blogger and analyst at InfoWorld. He does a lot of screencasts and is looking for volunteers to participate in a screencast experiment. He essentially wants to ‘look over the shoulder’ of a developer creating an application. I must admit, I boldly suggested doing a demo of building an Eclipse RCP application but he rightly pushed back, saying he didn’t want a ‘vendor demo’.
He is calling for practitioners to participate in the experiment. If you think you would be interested, and hopefully using Eclipse and/or Eclipse RCP, send Jon an e-mail to jon underscore udell at infoworld dot com.
Announcing Eclipse Webinars
May 23, 2006In the lead up to the Callisto release, we have decided to run a series of webinars about some of the projects that are included in the Callisto release. The intention is to help educate people on what you can do with the different Eclipse projects. To get things started, we have scheduled a series of 3 webinars during the month of June:
- Buidling Data Centric RCP Applications on June 5
- Developing and Profiling Web Services on June 12
- Using the Eclipse Modeling Frameworks on June 19
More information about the webinars can be found here. To register, you will need to send an e-mail to the appropriate e-mail address.
I’d like to thank the Eclipse project committers for voluneteering to particiapte in the webinars. Also, I’d like to thank Adobe for contributing time and access to their webinar facility, Macromedia Breeze.
Eclipse related announcements at JavaOne
May 18, 2006There have been a number of Eclipse related announcements this year at JavaOne. I thought it might be useful to do a summary; so in no particular order:
- Borland lays out their JBuilder roadmap.
- Sybase announces next version of their Workspace product.
- Nokia announces new mobility initiatives based on Eclipse
- Terracotta’s tools are based on Eclipse.
- Oracle’s participation and leadership in Eclipse projects
- JackBe’s developer tools support for Eclipse
- BEA announcing new beta of the Weblogic server and Eclipse based tools
- Backbase announced tight integration with Eclipse
- Ericsson announce new developer tools for IMS applications
- Vidiom announced Eclipse based tools for set-top box development
- Google announces GWT
I apologize if I have missed any announcements, please feel free to add a comment.
Eclipse Shirts and the Thirsty Bear
May 18, 2006
It was a fun day yesterday at JavaOne. We ran out of Eclipse shirts around lunch time. Jackie Yao from the World Savings Bank took away the last shirt. Unfortunately we only had XXL and Jackie was an obvious small. I hope she has a big friend.
The party at the Thirsty Bear was a big success. Lots of people, beer was great and food was pretty good too. I hope we get to make this an annual event.
Btw, I’d like to thank the sponsoring companies for making the party and shirts possible. The great thing about the Eclipse community is that we pool resources to do some cool and fun stuff. Thanks again to Actuate, Adobe, Agitar, BEA, Borland, Business Objects, Codign, Compuware, Exadel, Fawcette, IBM, Instantiations, Ivis, Nokia, Oracle, Serena, Sybase.
Welcome to EPIC
May 14, 2006The second announcement we are making at JavaOne (here is the first) is the launch of Eclipse Plugin Central (EPIC). Many of you already know EPIC; in fact it has been in existence since 2004. The new news is that the EPIC Alliance (Innoopract, Instantiations and Genuitec) has contributed the existing EPIC portal to the Eclipse Foundation. We will be running EPIC as a component of the open source Phoenix project and the three founding companies will remain actively involved.
So you might ask ‘why the change’? In my opinion, the Eclipse ecosystem is a key factor in the success of Eclipse. Although sometimes difficult to count, there are over 1000 product/plug-ins, 950 Eclipse related projects on SourceForge and I would estimate over 200 ISVs using Eclipse as the platform for their products. So how can we best promote this ecosystem and make it easy for users to find high quality, relevant plug-ins that meet their needs. Having a portal and central repository of all Eclipse products is one way to accomplish this task.
By making EPIC a part of the eclipse.org web site, we hope to drive additional ‘eye-balls’ to the portal and encourage our members and the entire community to post their products and services on EPIC. We also plan to invest some of the Foundation’s resources, mainly Nathan, Donald and myself, to compliment the existing resources from the EPIC Alliance, and help operate and expand the EPIC site. Finally, since we will be operating it as part of Phoenix, we hope we will get help/advice and feedback from the community.
I would like to say a big THANK YOU to Instantiations, Genuitec and Innoopract for making this happen. These three companies have been long time supporters of Eclipse and continue to contribute their own time and resources to make Eclipse a better community.
So, if you have an Eclipse product and it is not listed, make sure you take the time to list it now. If you are looking for an Eclipse product, check out EPIC.
New Eclipse Modeling Project
May 12, 2006Next week at JavaOne, we are doing a press releases announcing the new top-level Eclipse Modeling project. (A preview of the release can be found here) I really believe the Eclipse modeling projects are understated; in particular the EMF project which is consistently one of the most popular downloads and is used by everyone (ok a bit of hyperbole), but gets very little recognition. Therefore, I think it is great to see the creation of this top-level project to focus on this area.
Ed Merks and Rich Gronback are the co-leaders of the project. I thought it might be interesting to do a quick Q&A with them on their views and thoughts about modeling at Eclipse. These guys are really passionate about the project and it will be exciting to watch them grow their community.
==============================
Q. Why was the modeling top-level project created?
Richard: The project was created in order to unify those projects related to modeling with the goal of facilitating collaboration and interoperability. With a dedicated PMC, the direction and roadmaps of these projects can be brought into better alignment and bring stronger and expanded modeling capabilities to the Eclipse community.
Ed: This dedicated focus will make it easier to promote the creation new projects that will build layers of functionality on the foundation frameworks available today, e.g., EMF and GMF, and will help encourage the growth of those foundation layers to address emerging requirements.
Q. When should people considering using the Eclipse modeling project?
Ed: Since 2002, Eclipse has provided a modeling framework with a pragmatic focus on providing the types of capabilities that developers actually require in their tools. A large part of the reason for that pragmatic focus was because the technology was actually used to develop the technology itself. Capabilities, such as the ability to persist any instance without having to write any code to do so are a life saver for a small project with big goals. It’s clear that many of our tasks as programmers are repetitive and hence unskilled. When those repetitive things can be automated, there is more time left for the interesting things. An early example of this idea in action was the development of the XSD model: 100,000 lines of code written by one developer in less than 6 months would not be possible without a framework that generates a complete and consistent scaffolding in which to write those parts of the code that require human creativity.
Richard: While projects such as EMF are in wide use today, it is hoped that a more comprehensive set of Modeling project deliverables will be available in the next major release of Eclipse. For the Callisto release, some of the projects that are transitioning to Modeling will be delivered under the ‘Models and Model Development’ category of the update site.
Q. What standards are you following and implementing?
Richard: The UML2 project implements the OMG’s UML2 specification, the EMFT OCL project is an implementation of the OMG’s OCL (Object Constraint Language) specification, while EMF is closely aligned with the OMG’s MOF specification. In the future, we plan to have projects that provide QVT (Query, View, Transformation) and MOF2Text implementations in order to round out the MDA set of capabilities for Eclipse.
Ed: A full implementation of the XML Schema specification, i.e., the XSD project, supports analysis and synthesis of the standard grammar language of the web. In many ways, the modeling project helps to unify seemingly unrelated standards like UML2 and XML Schema by providing a mapping onto a simple core model that in turn has a straight forward realization in Java. This allows one to realize in Java, i.e., to generate, the all models described by UML2 and by XML Schema. This unification has exciting possibilities for the future because it allows the other technologies, such as GMF, to be applied for anything that can be mapped on this common core model.
Q. People have suggested that this project can be used for domain specific languages (DSL). Can you explain?
Richard: Although there are many definitions and opinions about what DSLs are and how they can be utilized, we definitely see an opportunity to provide DSL capabilities for Eclipse, at least with respect to domain modeling and generative techniques. EMF provides strong abstract syntax development capabilities today, with GMF offering concrete (graphical) syntax development tooling. We are also planning to bring a textual notation capabilities to Eclipse for DSLs as well.
Ed: Given that the modeling technology is already being used to specify models for Java, SQL, WSDL, J2EE, SDO, and so on, it’s very clear that it’s generally applicable to anything that can be models and certainly DSLs are just models that can be supported the same way.
Q. What is the vision or strategy for the project? Are you looking for new contributors?
Richard: The vision is to provide a more comprehensive set of modeling capabilities to Eclipse in an effort to promote more model-driven development techniques within Eclipse and to the broader community. We are absolutely looking for new contributors, and is a primary task facing the new PMC. We have a lot of work to do, so the more contributors and community involvement we get, the sooner we can deliver.
Ed: We’d like more people to realize that modeling isn’t just for documenting architecture with beautiful diagrams or just to save time by generating code. It’s definitely good for those things. The fundamentally important goal is to provide unifying vision that recognizes common underlying similarities in the problems that are solved again and again, but each time in slightly different ways. It’s certainly great to have a very specialized solution for each problem, but when you have 1000 problems, it’s also very nice for the solutions to have a commonality that brings order to the chaos. The technology we develop needs to do both.
JAX Innovation Award Winners
May 12, 2006The winners of the JAX Innovation Awards were announced this week at the JAX and Eclipse Forum Europe conference. Of course it is great to see 3 out of the 5 winners were Eclipse based platforms.
The bioeclipse platform looks really interesting and I think it reflects a trend for vertical oriented platforms to start emerging; for instance, Gumtree and the Open Healthcare Framework.
It is also interesting to see E-Chalk is based on OSGi. They seem to use the Oscar framework, instead of Eclipse Equinox, but I think demonstrates OSGi is gaining acceptance as a component model for software development.
Different Language Support for Eclipse
May 10, 2006With JavaOne coming up, I thought it would be appropriate to remember that Eclipse is much more than just Java. I thought it might interesting to map the Eclipse support of popular computer languages. Based on this ranking of computer languages, it looks like 15 out of the 20 languages have Eclipse support.
- Java – I think it is pretty obvious
- C – Eclipse CDT
- C++ – Eclipse CDT
- PHP – PHPEclipse and the Eclipse PHP IDE project
- Visual Basic – I couldn’t find anything
- Perl – EPIC project
- C# – Product from Improve Technolologies
- Python – TruStudio
- Javascript – there seems to be many, including Web Tools Platform, MyEclipse
- Delphi/Kylix – I couldn’t find anything
- SAS – nothing; to be honest I have not heard of this language
- PL/SQL – seem to be lots of options including jsqleditor
- Visual Fox Pro – I am amazed people still use this
- Lisp/Scheme – Schemeway
- COBOL – Eclipse Cobol project
- Cold Fusion – cfeclipse
- VB .Net – nothing
- ADA – Aoinix ADT
- D – DDT
- Ruby – RDT and RadRails
We can also include Fortran, Flex, and I am sure many others. Feel free to leave a comment for any languages that I am missing.
UPDATE: One of the comments pointed at an EclipseCon presentation about different language support. If you are interested in more details I highly recommend looking at this presentation, especially the Excel spreadsheet that provides a summary of support for each language.
Posted by Ian Skerrett
Posted by Ian Skerrett
Posted by Ian Skerrett