Monday, August 13, 2007

Can we help these guys be successful?

I received a Google alert pointing at from this developer who is making the transition from Windows to Linux. Obviously, to do so, he has to drop Visual Studio as his IDE of choice and has picked Eclipse and the CDT for his Linux work. Despite some of the difficulties in setting up the CDT, he picked it as "rivaling Linux's best IDEs".

This transition was one of the scenarios we thought about in the early days of the CDT that would make the CDT successful for desktop development. But it is really only recently that I am starting to see this become more and more common. I think Ubuntu was desktop Linux's tipping point. And as Linux becomes more popular there, as the momentum in the press seems to be showing, I think there will be more and more developers looking at Linux when building their applications. And the CDT, technically, is positioned well here.

But the one thing that made me disappointed with the gentleman's post was the frustration he had setting up the CDT to work properly for him. And, you know, this frustrates me as much as it does these people. We've made long strides at improving the CDT, especially in this area, but it appears the message isn't getting out, and maybe we missed something.

And to be honest, the people that are getting the CDT from Eclipse directly and trying to make it work like this aren't getting the support they need to be truly successful with the CDT. If you get your CDT from a commercial vendor, then you have a much better chance since the vendors generally make sure the environments work properly for their customers (we do our best at QNX to do so for our customers). But the committers working on the CDT are kept very busy by their employers, as they should, and that is making it very difficult to get a focused effort to make the CDT truly work well out of the "open source" box.

And this comes back to the Platform versus IDE debate. The CDT at Eclipse.org is a Platform. It's not an IDE. It misses several components that make it a true IDE. Support for people trying to use it as an IDE is probably the biggest one missing. I'm trying to do something about it in open source with the Wascana project, but sometimes I get the feeling that I'm fighting a losing battle. And without success on the desktop, I don't think the CDT can truly be Uber.

Or maybe I'm just feeling down since my holidays are over and I have a ton of work piled up...

5 comments:

  1. Hang on in there!

    It's going to take a year for Wascana to become recognised as The Thing To Download for Eclipse C/C++ development. When it does, it'll snowball. The best thing about that is that it will not only benefit those developers who want to use it, but will also benefit the commercial vendors. All those independent developers will contribute loads of neat features which will be fundamentally different in nature from the 'big name' items that the commercial vendors pay people like you to develop. It'll be neat little usability tweaks, minor refactorings, UI adjustments - little things that are below the radar of the big vendors. But will cumulatively make their products much better. Only when Wascana starts attracting loads of independent developers will they start to contribute things like that.

    I think it's in the right place at the right time, and that's why it will only take a year for things to come together :-) So, stick with it, and try to get that message across to your bosses!

    ReplyDelete
  2. A year would be good. That would give us time to put together a nice set of plug-ins and libraries to make developers lives easier. Maybe even get the Windows debugger integration done.

    The good news is that we have over 600 downloads of 0.9.2. It's a slow steady stream, but it is a stream.

    ReplyDelete
  3. I don't understand his complaint. CDT works straight away on Linux. If he were complaining about setup on Windows I could understand, that took me quite some time to iron out (something Wascana looks very promising for).

    The issue he raised that is the bigger one for me are the problems with intellisense. Its much improved in Europa, but there are still cases where it can't offer suggestions on a variable that's declared as std::string!! And if its declared as a user defined class, forget it I don't even try to get suggestions because it works so rarely.

    ReplyDelete
  4. Perhaps it would be courteous to expand on the early experiences with CDT I loosely summarised in my blog. Here's a list of specific problems I ran into.

    1. Ubuntu Feisty 7.04's packaged Eclipse (3.2) and CDT (3.1) didn't work too well for me. The syntax highlighting options were very limited and I couldn't even get basic C++ keywords (like class and namespace) to highlight. This is not a failing of Eclipse because the situation has improved substantially in the new version.

    2. The packaged Europa C/C++ builds on Eclipse.org looked like a great start, but it took me quite a while to realise there were no 64-bit builds - and that this was causing some very obscure Java errors on my system. Again - a vendor packager would have picked this up, but I was in need of a new version to fix the above.

    3. In the screenshot on the blog you linked to, you can see two "Invalid project path" errors. I really wanted to clear these so that the warning count would be accurate for my application, but no amount of Googling or searching the .project files turned up anything that might be cause them. I still have those warnings on every build!

    4. The "Intellisense" feature has never actually worked for me. Even basic code completion of member functions defined in a class right above aren't autocompleted. This was quite a disappointment, because Eclipse's Java completion has always been spot on, but perhaps warrants closer inspection and a test case or two. As I assume this isn't a widely experienced problem?

    5. The Subclipse plugin is very well put together, but tough to correct (my) mistakes with. At first I imported my project into the wrong repository, and no amount of searching the settings turned up a way to forget repository information or switch to a new one. Deleting the .svn directories by hand just broke version control for that project completely, and I had to build a new Eclipse project from scratch. D'oh!

    6. In fairness, the rest of the configuration time was simply putting together some syntax highlighting settings that I was happy with. Perhaps arguing that the defaults are not optimal would be quite subjective, although I've never felt the urge to change Visual Studio's defaults.

    Nice to know I've sparked some thoughts, anyway! I'll certainly be sticking with Eclipse and hope to test even more of its features in time. I had a chance to use the GDB integration on Saturday, which seemed to work very well indeed.

    ReplyDelete
  5. Perhaps it would be courteous to expand on the early experiences with CDT I loosely summarised in my blog.

    ReplyDelete