Monthly Archives: December 2006

Stream Computing

And now for something completely different…

Enough about I am Eclipse, Eclipse I am. I actually think Steve Northover really is Eclipse, or is it not Steve’s Widget Toolkit? Or is it Crazy Doug’s Tooling? Or something…

Anyway, the talk at Tom’s Hardware today, or at least this guy’s opinion piece, is on AMD’s insistence that multi-core is dead, long live Accelerated Processing Units. Actually, it sounds like almost the same thing as multi-core just with fancier hardware as some of the cores. The Opteron architecture makes the array of possibilities interesting and feasible and it’ll be cool to see what they come up with now that they’ve teamed up with my fellow Canadians at ATI.

One possibility I find intriguing is integrating Stream Processors into the concoction. From my Google searches I see stream processing has been around for a couple of years now and it has hit the streets as the technology behind the latest generation of graphics cards. Stream processing is essentially parallel processing units that perform like SIMD processors but on streams of data. In that sense it can handle larger volumes of data like a DSP but with multiple processing units.

So why is that interesting to me. Well, as I am always looking for the next great programming paradigm. When object-oriented first came along when I was in university, I was an early adopter because I could see the benefits it gave me when organizing my programs. I am always looking out for the next big improvement in programmer productivity and we’ve been stuck now for quite a while with objects and classes and methods and such.

I am positive the next big thing will be parallel programming. The hardware guys are making these great multi-core/multi-processing-thingy machines. The question is what is the right programming paradigm. Is stream processing it? Maybe. But I am thinking that the next big thing has to be multi-dimensional programming in some form or other. I still wonder back to Action Semantics from UML as a possibility, but this stream thing is interesting too…

Eclipse is You and Here’s Why

There’s been some interesting points on the Planet following the “Eclipse is You” post by Bjorn. It has always rubbed me the wrong way when people criticize the committers for not meeting their requirements. And it is not just with these posts, we get it sometimes on the cdtdev list and bugzilla too. But as I mentioned in my last post, I do appreciate the feedback as it helps me understand what I need to do to grow the community.

But people keep forgetting one thing about the committers. They don’t work for the Eclipse Foundation. They are not contractually obligated to do anything, really. I work for QNX Software Systems. They pay me to work on the CDT because it is a fundamental piece of our Momentics IDE. Any work I do beyond that is on my own initiative and if my time is needed elsewhere by my employer, I have to drop those things.

So when people say that the Foundation, or the Eclipse Board for that matter, should get the projects to do this or that, they can’t. There is no mechanism in the governance model for Eclipse to make that happen. It just doesn’t work that way.

That’s why Eclipse is You. Because if you want something done in Eclipse and no one wants to, you have to do it. And, unfortunately, simply submitting patches doesn’t work all the time. Because it requires committer time to apply and as I’ve mentioned, the committers are at the whim of their employers whether they have the time. Not only that, but you may have to persuade the committers that you are doing the right thing.

So we do the best we can and we try to go beyond the call of duty to make sure the community is happy. And most of the time, it works out. But sometimes it doesn’t, and I understand the frustration. Remember though that Eclipse is a meritocracy. Submit a number of great patches and help the community out, i.e. go beyond the call of duty yourself, and a committer would be happy to nominate you in as one too.

It’s all about You!

According to Bjorn, Eclipse is You. Being on the receiving end of many “CDT doesn’t do , or CDT is too slow doing “, I couldn’t agree more. Say those words and you earn instant membership in the CDT community. And I appreciate every one of them, I actually do. It means you care and have spent the time to contribute your guidance to our collective knowledge. And it’s the first step down the path to contributing even more.

Now, Time Magazine has selected the Person of the Year, and it also happens to be You. Coincidence? I think not!

Migrating from Visual C++ to CDT

I’ve put the finishing touches on the CDT’s managed build support for the Windows SDK. Well, at least there’s enough there for people to try with our upcoming CDT 4.0 milestone (M4, but it’s really our first for this release). It auto-detects where you’ve installed the compilers, header files, libraries, etc., by looking it up in the registry. I’ve also updated the error parsers to more accurately parse compile and link errors. It works pretty good and I’m using it to build the native code for the Windows debugger integration.

But, you know, I forgot about the standard builder. It’s funny how you get tied up in solving the hard problems when the easy ones are there staring you in the face. I have to give a big thanks to three guys from IBM India who have written a tutorial on how to import Visual C++ projects into the CDT. The solution is elegant in its simplicity and really shows the flexibility of CDT’s standard make projects.

All you need to do is get Visual Studio to generate the makefile for you. This is a feature that they’ve always had to support external builds (although in recent versions you can run Visual Studio headless to do builds as well). Then you create a CDT project at the root directory containing your source. Of course you’ll have to change the make command to use nmake, Microsoft’s own nasty version of make, but that’s pretty easy to do and works well.

Combine that with this guy’s perception that the CDT has certain features that Visual Studio users would like, and the discussions I’ve had with embedded developers using CDT but using Visual Studio for emulation on Windows, gives me a warm fuzzy that supporting the Windows SDK is the right thing for the CDT. There are Windows developers who are looking for a migration path to get into the Eclipse ecosystem.