Monthly Archives: April 2006

New Projects 101

It’s funny how we are starting to have conversations on Planet Eclipse. But, I’d like to follow up Mike’s post, which was following up John Graham’s post, with my own. The topic is what to focus on when starting new projects, building a good platform for ISVs, or building good tools for end users. This is something I certainly struggled with in the early days of the CDT.

My take is that what you really need to be doing as a new project is building a good community. Now what does that mean? Having happy users and happy ISVs that like your stuff and want to use it or add it to their product portfolio is certainly an important thing. Having people talk good about your project shows momentum and serves as a magnet for those who don’t want to miss out on your “next big thing”.

More importantly however, to the growth of a new project is attracting developers to help you work on it, and by that I mean “add code”. That has certainly been my biggest challenge as the CDT project lead, but it is something that I’ve had some success with in the last few months, and hope to have a bit more in the next few months (if all verbal commitments turn into CVS commits :). I don’t know what the magic formula is, but to my previous point, we have shown momentum with the CDT and a high profile project is certainly appealing to developers (not to mention marketing people ;).

But I think more importantly, since most of the developers working on Eclipse work for commercial vendors, you need to make sure your project can easily meet their business needs. You need to make it easy for their employees to get involved and make it easy for them to be able to leverage off their investment in your project. Having a well managed project helps, as does having a good platform for them to add value, as well as good tools to make sure their end customers are happy as well.

So, I guess that means you need everything :(. But, my point is really that you need to look at more than just what you should be working on, but also how you should be working. You need to put a business friendly face on your project to help attract vendors. As well, I think we all need to educate vendors about the business of open source product management and help alleviate their fears, which I have seen time and time again. That is something I certainly need to work on more.

Visual C++ Express Free Forever

Well, as I first found out from Ed Burnette and as I see now at the Microsoft site, Visual C++ Express is now free forever just like the CDT. I doubt anything I’ve said had anything do to with their change in strategy. I had a feeling, when I first saw the one year free deal, that they were just testing the waters and would eventually remove the restriction. I just didn’t think it would happen so soon.

So does that make me give up on my wish to better support Windows development with the CDT. No way! There’s more to it than just C/C++ development. I think Eclipse has so much to offer Windows developers that the Express Editions of VisualStudio just don’t offer. As one great example, I can’t wait to exploit more of TPTP static analysis and expanding it’s integration with CDT’s DOM. I think there is so much we can do there to make C++ programming more reliable and is something that VisualStudio doesn’t offer in any form.

So I think this announcement just makes me want to improve Windows support even more that I’m going on a personal mission to make sure it happens. As always, anyone keen on helping me with this mission, please let me know. I have a ton of work to do with my regular QNX and CDT work so I’d appreciate any help I can get. But I think this is one area that can go a long way to bring the CDT and Eclipse to our much sought after Uberness.

Cross Project Issues/Solutions

One of the things I love most about EclipseCon is that I get to see what the other projects are up to. It was really cool to see the progress that a lot of the projects that were just starting up last year have made since then. One thing I’ve noticed though is that a lot of them need to solve similar problems. I’ve been pretty happy to see how these projects are starting to work together to find common solutions.

One example is the Remote System Explorer that IBM has contributed to the DSDP Target Management project. It presents a view of remote systems and provides a framework for attaching services that connect to those systems in various ways. Once people have heard about it, everyone is now taking a look. My friends at HP are looking at it as a solution to remote development for their servers (I suppose that’s very similar to how IBM uses it internally) that they’d like to contribute to the CDT. Also, I see that the Parallel Tools Project is now looking at it for remote development for their big supercomputer iron.

The question that comes to mind, though, is that if this is something that can be used by many other projects aside from embedded, is it problematic that this functionality resides in the DSDP project? My answer is that, well, the RSE actually resides on dev.eclipse.org. It is being managed by the DSDP/TM project. These are essentially two different things. Anyone can get at the bits and add dependencies to them. What could be problematic is the delivery schedules of the bits and making sure things line up. This is one reason that Callisto is so important, although releasing all at the same time is having it’s own set of issues.

One thing I’m certain of, though. As Eclipse continues to grow, we are definitely going to run into the very same issues I’ve seen in my past with very large software projects. These issues can get out of hand without good architectural control over what we are building in order to make sure that we have good user and ISV experiences. That includes everything from reducing duplication to having common API and UI guidelines. I know a lot of people hate having to comply with guidelines, but I’ve seen what can happen when they don’t and it ain’t pretty.

I think the question Mike is really asking is what role the Eclipse Foundation should have in all this. I’m not totally sure what the answer is, but I believe the best architects are the guys mucking around in the code. They usually have their finger on the pulse of the beast and in the best position to make the right call at the right time. But what these guys really need is someone to help facilitate architectural decisions, i.e. bring the group together and to do some concensus building.

I’ve been lucky enough to attend one of the Eclipse Architectural Council meetings last December (I’m not a member but Bjorn graciously invited me to attend). There were some great minds in the room and Bjorn was doing a good job facilitating the discussions. But I don’t remember seeing anything publicized from it, and we had a great discussion on using TPTP’s AGR for UI testing. And, I can’t remember if any architectural decisions were made.

I think the processes are pretty much in place. I’m just not sure whether we have all the right people involved. I wouldn’t mind seeing what would happen if we brought the top senior committers to the table and asked them what they thought about this or that. I’m sure they already have all the answers. But then, these guys are also really busy getting their features done for Callisto…

Boot Camp, an Eclipse Developer’s Dream?

I’ve been following the Apple announcement around their Boot Camp with a bit of intrigue. It wasn’t too long ago I had a Mac G5 on my desk running both Mac OS X and Yellow Dog Linux and it was mighty cool. Unfortunately with the other priorities I had, I didn’t get to do too far with the setup. That and my previous employer wouldn’t let me take it with me when I left :).

Now, when I look at the top three platforms in my CDT downloads stats, I find Windows (68%), Linux x86 (26%) and Mac OS X (3%), that’s 97% of my platforms. Now if I could run all three of those operating systems on a single machine, wouldn’t that make my life easier? I think so. And maybe a lot of Eclipse developers may think so as well. That and the Mac hardware seems to be pretty well designed and something I’d be really happy with.

I think Apple has made a good move in providing the ability to load Windows on their hardware. They can go one step further and allow Linux to be loaded in as well. Then, you might see a lot of the Apple hardware on people’s laps when the next EclipseCon rolls around. Now if I can convince my new boss to sign a PO for one ;).

Cool CDT Tutorials

Ian pointed this out in a comment in my last entry but I though I’d bring this out in a new entry.

Matt Ryan from Novell, who I met down at EclipseCon and has done some work with CDT and SUSE Linux, has put together a number of tutorials on using the CDT on Linux. I went through the using CDT with autotools one, mainly because I wanted to know myself. I found the tutorials very thorough, easy to follow, and just plain good looking. That and I learned alot about autotools.

Feel free to head over to the Linux University for Developers hosted at Novell. Matt also invites anyone who wants to create their own tutorials and send them in and he’ll add them (instructions at the bottom of the page).

I’ll also give a plug to the Wink application created by Satish Kumar from DebugMode which is a cool free screencast creation utility that Matt and others have used to create demos and tutorials. Now everyone can create good looking tutorials!

Eclipse for DCC, Take 2

Taking a look at where the CDT is being successfully deployed, we see that the CDT has a huge base in Embedded as seen at the Embedded Systems Conference. I am also getting a hint that the CDT is being adopted well for Linux development from our download count and the interest we’ve seen from both Red Hat and Novell/SUSE. As well, thanks to the Parallel Tools guys, we are seeing the CDT being used for High Performance Computing (HPC).

But, as I’ve said in the past, the one area that I’d love to see more contribution to the CDT, and Eclipse in general, is in Digital Content Creation (DCC) and game development. The CDT is natural for writing the C/C++ code required for these applications and I do have a few notes from people who are doing just that. But there are a lot of “assets” that go into game and visual effects development and I think Eclipse has the capability to do so much more for these developers.

Recently I’ve been poking around at the current efforts at JSR’ing Java for OpenGL and OpenGL ES for embedded. I also ran across an old workspace where I had implemented one of the snippets from the SWT OpenGL page to run in an editor window. I had forgotten how cool that spinning torus was running inside Eclipse. But it did give me a hint that it should be possible to build a 3D modeler and even a 2D texture editor in Eclipse. And with tools for writing scripts in languages such as Python or Lau, and you’ve almost got the complete package.

Given the size, at least in revenue, of the gaming and visual affects industries, I think there is room for Eclipse in this picture from the Collada DCC tool interchange standards effort. The major DCC tool vendors have quite a strangle hold there at the moment. But with the ability of Eclipse to bring such a wide variety of tools together in one platform and to build communities that work together for the benefit of all, I think it is quite a compelling story.