Eclipse


Tasktop and Protecode are two interesting startups I ran into at EclipseCON 2008. They are very different businesses, aimed at very different audiences. However, both are made possible by Eclipse ecosystem….It would be very interesting to estimate the revenue opportunity that the Eclipse Foundation has opened up for vendors of all shapes and sizes.

Tasktop is based on Eclipse. The makers of Tasktop are many of the guys behind the Eclipse Mylyn OSS project. Mylyn is a task-focused UI for developers using Eclipse. Mik and team realized that the task-focused nature of Mylyn could be extended to support everyday use (outside of developers). Tasktop is able to group documents, emails and websites based on tasks you’re working on. So, for instance if I was working on a customer issue for work, researching for a blog post and writing a paper for school, I could switch between these three tasks and Tasktop would open/close the appropriate files, emails, webpages etc. based on the task I’m working on. Searching for files becomes simpler because they are associated with tasks. Also, Tasktop tracks how much time I’ve spent on a given task. I suspect there is a way to prevent Tasktop from tracking how long I spend reading FSJ and Dilbert ;-) It does a lot more, so watch this demo. While Mylyn is pure OSS, Tasktop is a commercial product for $60/year.

Protecode on the other hand has a really useful Eclipse plugin that tracks the pedigree of your code. It does so whether you import a file into Eclipse, or paste text from clipboard. The tool works unobtrusively while the developer is working away. As a result, the developer doesn’t have to remember the pedigree of a file or snippet of code 6 months later when the lawyer comes knockng. Companies can also set policies to restrict the code that can be brought into the project based on the license type (i.e. restrict GPL code usage). If you bring in code that doesn’t have a license attached to it, Protecode is able to check the code against its constantly updated collection of OSS software code. This occurs over a network connection. If there isn’t a network connection, the code is marked as “Unknown” and the developer, manager or lawyer can act on identifying the code when there is a network connection. As the use of OSS grows in the enterprise, so to does the worry of IP infringement. A tool like Protecode could become just what IT managers have been looking for. BTW, the guys at Protecode are in the midst of updating their website, so don’t let that get in the way of trying Protecode. The product is actually very cool and I can see it helping companies (and lawyers) get more comfortable with using OSS to develop their own products.

I’ll be posting interesting news from EclipseCON this week; as it happens and as I happen to hear it ;-)

The first piece of news that Ian Skerrett and Mike Milinkovich shared was the introduction of a new runtime initiative at the Eclipse Foundation. “A runtime project at Eclipse? I thought Eclipse was a home for tooling stuff.” That’s what I would have thought if I wasn’t previously aware of the Eclipse Rich Client Platform (RCP). RCP is the foundation for some IBM Lotus client-side products. Back in the day, folks at Eclipse realized that under the Eclipse tooling environment was a fairly robust client runtime environment. This client runtime had historically been used to run a tooling environment (i.e. a Tooling app). Supporting general purpose client-side applications was a natural next step.

The news today is a little different as it focuses on the server-side. The Eclipse Runtime project (Eclipse RT) is a new top-level project that will use the OSGi-based Eclipse Equinox runtime at the core of the top-level project. The Eclipse RT project will host several sub-projects that deliver runtime infrastructure based on Eclipse Equinox. The Project Management Committee (PMC) for Eclipse RT will be driven by Code 9, Innoopract, Sopera, Oracle and IBM.

OSGi is core to this announcement. OSGi is used to build several enterprise software products. I know that WebSphere Application Server v6.1 was built using OSGi, and I’ve read that BEA’s microkernel leverages OSGi. I know Oracle uses OSGi, but I can’t remember in what fashion. However, all of these uses of OSGi have been in the building of products, not the support of a new programming model. It will be interesting to see what traction OSGi gets as a programming model, and how Eclipse RT can help raise the profile of OSGi. If you’re using OSGi or interested in using OSGi, drop a comment with with you’re doing and how you think Eclipse RT can help. Better yet, get involved!

BTW, Eclipse Equinox is going up against Apache Felix, another OSGi-based runtime. I only mention it because Apache & Eclipse have been pretty complimentary (for the most part) in the past…but hey, competition is good for everyone. ;-)

Okay, I do not speak for IBM in any way (read full disclaimer here). But after reading the following from Matt Asay’s post today, I couldn’t resist.

“IBM uses Apache/BSD to burn boats…everyone else’s. :-) The company builds its software business on proprietary software and its services and hardware businesses on open source software (as well as its proprietary software.) This is classic Martin Fink-type thinking, i.e., open source your complements which also happen to be your competitors’ core competencies. The problem is, they’ll likely do the same. Or, more pertinently, an open source competitor will come along that doesn’t have the same need to keep sacred any proprietary software. How do you compete with someone that can drive all software value to $0.00?”

Let’s dig into Matt’s statement:

MA: “IBM uses Apache/BSD to burn boats…everyone else’s. :-)”
How many open source projects does IBM contribute developers, hardware and/or fund to? Let’s take the example of Apache HTTP Server. Long ago, (the royal) we decided that web serving was a commodity and it didn’t make sense to build our own web server to use inside of WebSphere Application Server. Fancy thing was that BEA and Oracle made the same decision. Does IBM get more than it gives to the Apache HTTP project? Yep, that’s what you’d expect from an open community project. But we have a team that is works on the Apache HTTP project day in and day out. What about Apache Geronimo? Yep, it’s the base for WAS Community Edition and yes we have a sizable number of IBMers who work on Geronimo as their day jobs. What about Linux (let’s throw in a GPL project), again, yes, IBMers work inside the Linux community as their day job. Eclipse, check. OSGi, check. OASIS, check. I could go on….

MA: “The company builds its software business on proprietary software and its services and hardware businesses on open source software (as well as its proprietary software.)”
Umm, so yes, IGS will work with OSS based on client needs. But heck, they’ll work with IBM products, Microsoft product, Oracle products or any software the client seeks. Next, does Linux help drive hardware sales? Sure, but remember we spend resources inside the Linux community, so we’re not taking without giving. While IBM may drive $1B (or whatever it was in 2006) from Linux-based software, hardware and services, it is a small portion of our total $90+ billion in revenue. I’d suggest you want to rephrase the statement to read “(as well as open source software)” in brackets.

MA: “Or, more pertinently, an open source competitor will come along that doesn’t have the same need to keep sacred any proprietary software. How do you compete with someone that can drive all software value to $0.00?”
Umm, we’re competing and winning quite well. Thanks for asking :-)

Anywho, aside from this paragraph on IBM that I take exception with, Matt’s post is well worth the read. He hits the nail on the head when he summarizes with:

“Net net: burning the boats is the right thing to do, but which boats to burn…?”

Indeed…Which boats, when and how does lighting the fire help customers? That customer angle is very important and likely the reason that we’ll see OSS and traditional software (happily) coexisting. (Much more on this in a later post)

I haven’t posted in a little while due to travel (who says offline RSS readers aren’t necessary) and my attention being elsewhere. But I’ve been catching up on some reading.

First I read this very interesting post from Shaun Connolly from JBoss in response to my questions about JBoss community.

Shaun says:

“Open source communities extend beyond those who interact directly on the open source projects, mailing lists and forums, and include the users, customers and partners in a wide variety of ways. In my opinion, there are neighborhoods within the larger community that have their own perspectives and ways of interacting with the larger community.”

I really like the neighborhood approach that Shaun suggests - I’ll need to think more about this one. I’m just not sure how or why third party users, customers and partners would be differently motivated than third parties who “interact directly on the open source projects”. Aren’t third party contributors users or partners, or don’t they sit inside of a customer shop?

The point that Shaun makes about how Red Hat serves expands and recognizes their community could very well have been written by IBM, Oracle, Microsoft or any other traditional software vendor. Not surprising considering how Red Hat tracks with traditional software vendors in many aspects of their business.

Then I read “My thoughts on communities backed by companies” from Jordi Mas, (linked via Matt’s Infoworld blog). Jordi poses a few questions to rate how community driven your development is (regardless of whether you’re open source or not, because, as Jordi points out, Microsoft and other traditional vendors also have strong user communities).

Jordi poses questions like

“Is the product roadmap publicly available?” or “Do developers from outside your company have privileges to make changes on the code base based on their knowledge? (Meritocracy) Or are they second class citizens?”.

I like the questions, but what’s missing (and likely always will be) is a way to assign an importance rating for each question. So, what if the product roadmap isn’t publicly available, but commit privileges are dolled out based on merit? Does that make the company in question less, the same, or more “community driven” than a company with a public roadmap that only gives commit access to employees?

But clearly there is a difference between a community found at Apache, Eclipse or PHP.net than other communities. It’s just not easy to define.  But, that doesn’t mean we shouldn’t try.

I purposely didn’t write about the Exadel partnership when it was announced as I wanted to get some more details on it. A week has passed and little has been written that furthers my understanding. And I must apologize for not emailing someone at JBoss to get some clarification (it’s been busy here). As such, I ask you to read the comments before finishing this post, in case one of my JBoss readers writes in to correct my take on the deal.

Here is the quote from the TSS discussion on this deal:

Sacha Labourey: “The Red Hat and Exadel partnership is twofold. First, Exadel will open source its commercial products — Exadel Studio Pro and RichFaces — at JBoss.org as Red Hat Studio Developer and JBoss RichFaces, respectively. Exadel is also moving its popular Ajax4jsf project, currently hosted on java.net, to JBoss.org, where it will become JBoss Ajax4jsf. Second, Red Hat and Exadel will continue developing the three projects going forward, including integration with existing JBoss platform technologies such as JBoss Seam. This ongoing development will be done under JBoss’s leadership.”

Then, JBoss/RH’s Gavin King comments:

“….. Seems like their (i.e. Exadel - added for clarity by Savio) business has actually worked out pretty damn well, given that we just paid them a whole bundle of money to get this deal done. ;-) This is not a typical case of a commercial vendor deciding to give away a product they couldn’t sell, in a last-ditch attempt to get users. Rather, this is an acquisition of successful technology, for money. It follows the model of JBoss Transactions, which was acquired from Arjuna, and JBoss ESB, which was acquired from Aviva. …..”

Am I off in left field when I think that this is little more than JBoss/RH acquiring technology from Exadel for a price? That the “….decided to open source the products at jboss.org” parts of the announcement are more about the cash that changed hands and less about validation of any community site? Reading Gavin’s comments leads me to think as much.

Don’t get me wrong, there is absolutely nothing wrong with that, acquisitions are a way of life in the software industry.

What doesn’t sit well with me is that the TSS Q&A with Sacha and the JBoss/RH Q&A about the deal don’t really clarify if:

  • (A) Exadel decided to open source their products and choose the JBoss/RH community because of its strategic fit with Exadel goals or for whatever reason that Exadel would feel that one ‘community’ is better than another ‘community’
  • (B) Exadel was paid to transfer their copyrights to JBoss/RH, and the open sourcing of Exadel products at JBoss/RH was part of the deal

I’m not the expert, but I don’t think that the Apache Software Foundation or Eclipse ever paid a 3rd party to decide to open source a product into the Apache or Eclipse community. When IBM acquired Gluecode, (which was building products on top of Apache Geronimo), we positioned the deal as what it was, an acquisition. Nice and clear.

Can anyone at JBoss/RH shed some light on who owns the copyrights to the code going forward? Because that should be a simple way of knowing if this was a 3rd party endorsing the JBoss/RH community or a 3rd party selling their IP to JBoss/RH.

Either way, it’s a business decision. But I don’t think it’s cool to paint an acquisition of technology as a partnership that endorses a community/external development site.

When this launches in June, Jazz.net is going to be quite cool!

Jazz is an open source project, kicked off by IBM, focused on providing tools that promote development for geographically distributed teams. (Remember, you have to wait until June to get your hands on it). IBM intends to open source a framework for geographically distributed team development, and 3rd parties will be able to provide extensions (like the Eclipse model). The software will work with Eclipse & Visual Studio. Here’s Danny Sabbah (IBM Rational GM) quoting a feature that sounds really cool and useful:

“or example, Jazz software will allow a programmer to send an instant message to a colleague with source code. Rather than see static text, the receiver could click to see where the code fits into the application, the original requirements and relevant tests.”

Not sure how they’re going to decide between features that sit in the open source product vs. those that are in the for-fee Rational product. Let’s hope that the Rational folks err on the side of including more value inside of the open source product. The strategy has been quite successful in growing the use of Eclipse, which in turn provides Rational (and other vendors) a larger customer base to sell higher-value offerings. Give more to get more.

Alex Fletcher posted about Eclipse needing to establish a better/standardized web delivery strategy for the vast number of Eclipse plugins and Eclipse technology.

His post made me think about the Geronimo Plugin Model. It does a lot of what Alex is looking for from Eclipse, except it’s for Geronimo ;-)

The Geronimo Plugin Model makes it really simple to get plugins (i.e. extensions, new features, samples, things that work with Geronimo, etc.). These plugins are easily installed, pulling down required dependencies and all without having to restart the server (in most cases - See here). You can also copy the plugins from your development server over to your production server(s) or any other server(s). Use the Geronimo console to get plugins, or download the plugin initially through Geronimoplugins.com and then use the console to install the plugin. There are a lot more Geronimo plugins than I’d last seen about 6 months ago. Keep ‘em coming!

[The pic is from Flickr user dAVIDb1]

A JBoss employee took exception to a recent post and left me a comment. I’m reply to him here as this would make for a really long comment reply to him ;-)

Norman,

I do not consider you, or your colleagues at JBoss “evil sell-outs”. This is actually one point that I’m in 100% agreement with Marc Fleury. We all need to eat, so at some point, we’re going look for a company to fund our 9-5 work. Community holding hands, but not dancing

My point is that you can’t use JBoss projects or Sun Java projects (openJDK, Glassfish) as a test of the open source development model. They are all lacking an important component of open source, namely, community. (As seen by the image of “holding hands = good” from a Flickr user)

Let me address a few of your points:

[1] <paraphrase> “JBoss app server was developed largely by the community, and then these developers were hired by JBoss”. </paraphrase>

The difference between what you describe and what we have seen in the Linux community is that these early (and key) developers got hired by one of many Linux distros. Also, some developers already worked at large IT vendors. The result was a healthy tension between doing what’s right for the community and what’s right for “my employer”. Maximizing the former is obviously good, but the debates that result from the latter often lead to better ideas which in turn help the former. The fact that no one company dominated the community is what has led to success of the community, and the Linux product as a result.

True community requires that there are people with different motivations along with a joint community motivation. Once a company starts hiring, and as a result, controlling, the majority of developers who were contributing to the project, the community starts to disappear. If you disagree, then I’d say that every software company in the world has a ‘community development model’. For example, you were interested in JBoss products and then got hired by JBoss and I was interested in WebSphere and then got hired by IBM. What is the difference?

I don’t think your description of the history of JBoss and my definition of true community differs on semantics alone. We’re really talking about two very different approaches to development, and only can be called community development.

[2] “there is still a considerable amount of contribution from people getting paychecks from outside of JBoss.”

Can you provide a list of people who have commit access to JBoss products and add a column to indicate which company they work for? In fact, Fleury spoke about “opening our governance” in a recent eWeek article. He can say that JBoss has a restrictive governance model because JBoss cares about the resulting code. But that is quite disingenuous. You don’t need a restrictive governance model to get high quality code. See: Apache, Linux or Eclipse as examples of open governance models, great products and true open source community.

[3] “Hibernate, Tomcat, the portal, Seam, Drools, etc… All of the projects that make up the entire JBoss “product” are done with considerable “community”. “

There is a difference between a community project that JBoss is involved in versus a JBoss project that is open to the (wink, wink) community.

Let’s start with Tomcat, which falls into the former category. To indicate that Tomcat is related to the JBoss organization is what I find “evil” about JBoss. The Tomcat community existed well before JBoss decided to hire one of the contributors. And unlike JBoss projects, the Tomcat (Jakarta) project is a true open source community project with committers from several competing companies. So, if you want to argue that JBoss, at times, contributes to true open source community projects, then I’ll buy that.

Hibernate, Drools & Seam: Google each one and tell me that these are not examples of the latter category (i.e. a JBoss product developed in the open). Or better yet, how about a list of committers with company affiliations.

In summary, let me just say that I’m not dismissing JBoss because you guys are competitors. I’m pointing out that there is very little that your organization has done in terms of opening your development model to the community. And hence, one cannot use JBoss as a test for open source innovation because your company lacks a key component of the open source business model, an open community. I see your efforts with Group Bull as a step in the right direction. But it’s way to early to tell the outcome.

If you’d like to reply to this as a mainline post here, (not in the comments which people may miss), please let me know. I’ll post a verbatim copy of what you send. Or if you reply on your blog, please let me know also.

Cheers,

Savio

I’ve been a little light on blogging as I have a major thesis exam coming up next week. My thesis advisor keeps reminding me to frame the question correctly, otherwise the experimental results will be meaningless. After reading this article by Dana, I couldn’t agree more. Dana suggests that “Sun’s Java implementations and JBoss products” should be a true test of “open source innovation”.

1. Dana, Java is not “coming under the GPL next year”. Sun’s implementations of Java ME, SE and EE are “coming under the GPL”. Don’t forget that developers have to hand over joint copyrights to Sun for any contributions. Then, Sun can decide to re-license the larger piece of work (i.e. Sun implementations of SE, ME and EE) under any license they choose. And according to their own FAQ, Sun intends to sell commercial versions of their implementations. Heck, they’ll let you use Sun code plus contributions from the “community” and you can make your own modifications to the complete work without having to contribute them to the broader community….all for a fee. Sounds like a BSD-style license except that you have to pay Sun to get those rights.

2. The JBoss application server is a decent product (but there are definitely some shortcomings also). However, this has absolutely nothing to do with open source. JBoss was not developed by, is not being developed by, and will not be developed by “the open source community”. JBoss products have always been developed by folks who are, or who have become, JBoss employees. The JBoss development effort is commercial development done out in the open.

3. There is no community/3rd party vendor incentive for driving innovation when one vendor controls an open source project. In such a situation, that vendor stands to receive the majority of the benefit from “community/3rd party vendor” effort in the project. This usually means that there is little 3rd party vendor work in such a project. Any innovation that occurs in the project is indicative of the single vendor’s abilities, and says nothing about open source innovation. When an open source community is led by several (often competing) companies or a non-profit (usually funded by competing commercial entities), then there is a reason for these vendors to get involved and innovate in the community. Everyone contributes, innovates, and stands to benefit. I’ve written about this before.

So, Dana, I disagree with your view that Java is the true test of open source innovation. You can’t test for “open source innovation” using ‘open source’ projects that are lacking a key, if not the most important, aspect of open source: COMMUNITY.

Eclipse is a test of open source innovation. Linux is a test of open source innovation (we’re past the “just re-create what’s been done” stage wouldn’t you say?) Firefox is a test of open source innovation. Apache projects in general are a test of open source innovation. And if you ask me, the test results look pretty good ;-)

There’s a pretty good discussion going on here at Dana’s ZDNet blog regarding Fleury’s comments.

The general view is that:

  1. Fleury is not a traditional manager, but rather a programmer at heart, so give him some slack when he speaks his mind about Red Hat management.
  2. JBoss and Red Hat have two very different development methodologies & communities.

Let’s discuss the 2nd one further. While both Linux & JBoss are licensed under the GPL, the major difference is the community surrounding both projects.

If we look at the Linux community, we find several competing vendors working together to advance the various Linux-related projects. By doing so, each vendor (who pays for employees to work full-time on these projects) is sharing the cost of building a solid product. The net result is like everyone contributing $5 to R&D, but getting a product that’s received $500 in R&D investments. Good for everyone, especially the vendors who are paying their employees to work on these projects. This model works because there is no central vendor who is exclusively benefiting from contributions from individual developers or 3rd party vendors. And when contributors assign copyrights to their works, they do so to a foundation, not a commercial entity, who may choose to license that work under a non-OSI-compliant license (i.e. a commercial license). Basically, there is a vibrant community around Linux because there is no commercially driven entity ruling over the project.

Unfortunately, very little of the above holds for the JBoss case. For the most part, JBoss products are developed by JBoss employees. There is no real community of individual developers or 3rd party companies working on JBoss products. And let’s be honest, to quote Tim O’Brien of O’Reilly: “It’s tough to build a real community when you have paid committers and unpaid contributors developing code under (L)GPL with the original copyright assigned to the corporate entity that funds the effort.” It worked in the case of Linux because the early work was done by individuals, so everybody was equal. Then, Linux attracted vendor attention, and most of the leading developers/community participants got hired by vendors seeking to advance Linux. And again, (almost) everybody was equal. The individual contributors that aren’t ‘equal’, continue to contribute because they get much more value out of Linux than the work they put in.

Dana suggests: “Changing the subject from what Fleury said, or what he said he wanted, to making the JBOSS community more open and vibrant may be the right way for RedHat to launch its discussion of this internally.”

But, that’s really tough to do at this stage in the game. Community is hard to build in the best of situations. It’s next to impossible when you want to maintain control. (Ahem…Sun)

Imagine that IBM had decided to launch the Eclipse project under IBM control and required that copyrights to contributions be assigned back to IBM. Where would Eclipse be today?

The fact that Fleury was expecting greater R&D investments after being acquired should make us think twice about the common belief that open source development is efficient because everyone benefits from the work of everyone else.  This is really only true if there is a community. A true open source project, shouldn’t be classified on license alone, but more importantly, the community contributions that the project is able to attract. A truly open community benefits from community effort. (Mostly) Everything else is commercial development done out in the open.

Next Page »