Monthly Archives: July 2007

Using Eclipse CDT for MySQL C Development

I got a pointer to this blog entry in my Google Alerts this morning. It’s an article on how to write a C application that talks to a MySQL database. And it’s done using the CDT. Very cool!

This is exactly the kind of article we need more of, showing the CDT in action solving real world problems. The CDT can be used for anything but a lot of people still don’t know that yet.

Baby’s first "Hello, World!"

(Warning! Major geekness in this one 🙂

My youngest son is 13 now and his report card looks a lot like mine did. Good in math and science, sucks at literature. He’s pretty much a twin, although he’s way more interested in sports than I was at that age. And looking back, I guess I was about that age when I started getting interested in programming. My best friend’s dad had an HP “portable” computer he used at work and we used to fool around on it trying to make it do stuff.

It was a pretty exciting time back then in the late 70’s as home computers were born. TRS-80’s came into existence and were the first machines I wrote for, or at least typed my first programs into while hanging out at the local Radio Shack (and, yes, that was in Regina, too). There was no way my family could afford one. And taking a look around my house now with three laptops and two desktops for four people, my kids are way spoiled!

So, I was at the book store the other day, looking to see what people were writing books about (in case the urge to write one ever overcomes my wife’s objections :), I saw a copy of “Game Programming for Teens”. It looked simple enough for a 13 year old to pick up and it uses a version of BASIC, just like I did when I started. And it’s about making games, which he has expressed interest in, so I picked it up. Yesterday, he typed in his first program, the same program everyone types in when learning a new language. The eternal “Hello, World!”. I was a proud papa, in the geekiest way a dad could be I guess. And I can tell by his enthusiastic “This stuff is confusing (meaning complicated), but I get it!”, he’s started down that same path that I did.

But what makes me a little upset, though, is that there isn’t such a book to get kids started using Eclipse. The BlitzBasic demo that came with the book is one ugly IDE. I showed my son the CDT and it looks way more impressive. This is one reason I’d like to see Wascana become the IDE of choice for desktop hobbyists, and why I focus so much on supporting the grassroots of our industry with the CDT. If we can get people using Eclipse early in their careers, then it should be a much easier sell when those people come shopping for our products that are built on Eclipse. At least that’s the dream, but I fear we still have a long way to go before making that a reality.

Introducing … Wascana Desktop Developer

As I reported earlier, I have to change the name of “CDT for Windows” to something else. While doing so, I want to try address a big sector that I think we’ve kept trying but kept missing, and that’s the C/C++ desktop application developer.

So here it is, the Wascana Desktop Developer, or simply Wascana. What’s a Wascana? Well, since I was in Regina and I had some people comment on my last blog entry to name it after Regina, I did. Wascana is the Cree word for “Pile O’ Bones”, and was the original name for Regina. The beautiful park and lake in the center of Regina is called Wascana Park. They just finished a cool redevelopment project of the lake, which was an impressive engineering achievement on a tight budget. And this distribution really is a pile of bones, a collection of open source components that we’re bringing together to make a skeleton that desktop application developers can dress up. Or something like that :).

I originally planned on addressing the needs of the Windows developer, but, given the strenghts of CDT at cross platform development, I’d like to expand this to cover all desktop operating systems, including Linux and Mac OS X. And I’d like to provide a set of open source cross-platform libraries that support a variety of desktop applications. The wxWidgets library is a natural. I’d also like to support the hobbyist game developer, one of probably the most interesting area of desktop development. Something like Ogre and SDL would fit that bill.

I am also making my Microsoft C++ compiler and Windows debugger support a part of this project to try and get more interest (i.e. help) with it. I’ve been disappointed in the progress of MinGW, e.g., there’s still no gcc 4 port. And gdb is still gdb and has a lot of issues on Windows. So I think MSVC support needs to be there to for Wascana to make any serious inroads on Windows.

Linux will be interesting. Ideally, we’d like to leverage the tools and libraries as they come with the distributions. We’ll need to make sure we get the right versions lined up, maybe with some super packages or something. We’ll have to see.

And as for Mac, well I’ll need help with that but I know there are a lot of Mac developers using the CDT.

BTW, I’ve renamed the CDT for Windows project at SourceForge and unfortunately, the didn’t forward the old name to the new name so I apologize for the confusion and hope you can find us at http://wascana.sourceforge.net.

What’s in a Name?

Well, I’ve been in this business long enough to realize that naming a product is tricky business. I had fears that calling the distribution of the CDT, tools and libraries for Windows, “CDT for Windows”, that I’d get a letter from Microsoft one day telling me not to use the word Windows. Well, what I got first was a letter from Eclipse about the word CDT. As per Eclipse’s new Trademark Usage Guidelines, CDT is a trademark of the Eclipse Foundation, and using it in the product name “CDT for Windows” is a violation. (Even though it is open source, you can still consider it a product, I guess).

Now no one get upset. I have a great relationship with the Foundation staff, and I can clearly see the need to protect the CDT brand. It wouldn’t take much to clone the CDT and make some tweaks and still call it MyCDT (which has been done, BTW), and if not done well, could do harm to the work we’ve done at building up that brand. So while, I’m disappointed about the prospect of losing the most natural name for the CDT for Windows distribution (which took me about 5 minutes to come up with), I will comply.

The name change also triggers something else that has crossed my mind as I received feedback and looked at the state of the CDT. We are sorely lacking in contributions from the desktop developer space. Despite this, there is a huge contingent of CDT users that are using it for that purpose. And as the need for cross platform development tools grows with the growth of Mac and desktop Linux, we really need to start addressing that shortfall.

So to help with both problems, I would like to shift the focus of the CDT for Windows distribution, more towards CDT for Desktop Development and open the door to building a complete IDE that targets all desktop operating systems. If I can grow a community around that, and maybe even attract commercial interest, then hopefully we can close the loop and build momentum into that potentially lucrative space.

But first, I need a name for such a project that keeps all the lawyers happy…

BTW, at the moment, I’m visiting my birth place of Regina, Saskatchewan in the heart of the Canadian prairies. I didn’t realize how beautiful a place it can be, at least in the summer :). If you ever get a chance, it’s an interesting place to visit.

SourceForge vs. Eclipse

As you may know, I’ve started up an open source Eclipse distribution called CDT for Windows out on SourceForge. (If you haven’t, feel free to take a look ;). My top objective for this distribution is to help out people who have Windows machines and who want to try out using Eclipse for C/C++ development. We’ve received numerous complaints and bug reports from people who’ve tried to make something like this on their own. And so far the reception for this distribution has been warm and I’m pretty happy with it and excited about its future.

One thing that is bothering me, though, is that I can’t release something like this from Eclipse itself. Mind you now, I didn’t really try, but I think the feedback I got when I talked about it was that there was no way the Eclipse Board would allow the tools and libraries that are GPL and LGPL licensed and with uncertain pedigree to be released from an Eclipse server. And I am the first one to stand up and promote why these legal requirements are important to ensure the pedigree of products that would like to redistribute Eclipse. But, I wouldn’t begin to expect vendors to redistribute CDT for Windows. So why does this still bother me?

I guess it comes back to the reason why I’m doing CDT for Windows in the first place. I’m trying to grow the CDT community into the Windows development space. If you’ve heard me speak, you know I’ve been trying to do this for years. Visual Studio obviously rules there, but I think Eclipse has a lot to offer Windows developers. And there are lots of them. If we can grow the CDT community there and make them happy, this should help the CDT. And having a good base of CDT users should also make developer products that target for other platforms, like the one from my employer ;), more attractive, making the Eclipse membership happy too.

So, I’m doing this for the benefit of Eclipse. But I can’t do it at Eclipse. And the irony isn’t lost on me. But at the same time, I’m really enjoying the freedom I’m having doing this at SourceForge. It may come around and bite me in the behind at some point. But for now, CDT for Windows users can benefit from it even if does come from SourceForge, which is where many of the packages I’m distributing are coming from anyway…

Eclipse, a Platform or an IDE?

This debate has popped up again recently as it seems to regularly at this time of year. I’ve added comments to the odd entry or two. So I figured I should make a statement in my own blog and to make sure I’m clear on where I stand on this issue.

Is Eclipse a platform for tools vendors, or an kick ass IDE for end users? From my vantage point being a project lead on the CDT and working for an Eclipse member company, Eclipse is clearly a platform, not an IDE. A great product manager who I used to work with asked me a great question one day early in my career on the CDT. I mistakenly used the term IDE and he asked a great question. “How can you call it an IDE if there’s no compiler?” In other words, how can it be an “Integrated” Development Environment, if it doesn’t come with everything you need to actually use it?

But Eclipse is a great platform for making IDEs and they are available from a number of sources, just not from Eclipse itself. And a lot of those sources are from the board and add-in provider members who help fund the Eclipse Foundation and who fund the vast majority of the contributions to Eclipse. This is a business, and I have no problem with that, and this group is focused on making sure their commercial products get the most benefit from Eclipse as a platform as they can. Because of that, though, none of them are really working on, or even, why there are road blocks to making Eclipse from Eclipse a true IDE.

So it feels like there are two issues hanging in the air. First, if we are not really distributing a true IDE from Eclipse, then I think we really need to stop calling it one. The user community expectations have been set high and we often see them disappointed by what they get from Eclipse. I believe it is really limiting the success of Eclipse. Yes it’s great now, but I am sensing a slip and everyone is all of a sudden worried about NetBeans for some reason.

That leads to the second issue. Eclipse needs to be a great IDE. And I mean the one they download from Eclipse.org. This is an area where I hear Netbeans is beating Eclipse. Sun is investing in Netbeans to make it a great free IDE out of the box. They don’t seem to have a commercial interest in making money at it (which makes me wonder why Sun does any of the Java stuff that they do).

But at Eclipse, that isn’t the mindset of the decision makers. I get the sense that they are actually afraid of the free Eclipse competing with their products. I guess if all you are doing is packaging up the free stuff and charging for it, you have a point. But the products that I see Eclipse members building aren’t that, so why the fear?

I’ve invested a lot of personal effort into making the CDT a great IDE. I’ve seen the feedback we get when the average Joe developer tries to build his own IDE with it. It’s not an easy task and they often fail. But I want these people to be successful. Because some of them, one day, will have a need to use my commercial product, and if their negative experience continues to linger, I don’t want that impacting their purchasing decision…

CDT for Windows, an exercise in product management

Putting the “CDT for Windows” distribution together has been a lot of fun. I’ve been able to learn more about Windows installers, or at least Inno Setup which really dumbs down the process so that you can quickly put together a pretty sharp looking installer. Even their Pascal scripting engine brought back a lot of memories from my first year computing class (how do you create a comment in Pascal anyway? {}.)

I’ve also been able to learn more about the infrastructure that SourceForge offers to let me set up bug tracking, help forum, announcements mailing list and most importantly, the downloads section for the distro. That and it gives pretty good statistics information so I can see how many downloads I’m getting (~250 so far), and how easy it is to get into the 99.78 percentile in SourceForge project activity (number 415 out of 152,347 today!)

But what SourceForge doesn’t give me, and something that I’ve never been good at, is a nice Web site and marketing material. Last night I finally put together the CDT for Windows web page and it’s pretty stark at best. In fact, I had a hell of a time just picking the background color since I just couldn’t stay with the default white which was blinding me.

It really makes me appreciate the work that the product marketing guys and their teams do. I’ve always had a great relationship with these guys in my career since they represent the customer as we’re putting together the product, and they make sure the lines of code I create, get turned into a hot looking product that customers will find appealing.

Well, with CDT for Windows, being an open source project not really sponsored commercially or by Eclipse, I’m finding myself flying without a net. As much as I like hanging out with marketing people, their talents haven’t rubbed off on me yet and the marketing material for CDT for Windows looks just plain ugly. Even the icons look eerily similar to the Eclipse Platform 😉

But, I still think CDT for Windows will be useful for people who have struggled getting the CDT working on their Windows machines. Hopefully, I’ll attract more artistic people to help build it’s own look and feel. This is the beginning of a journey that I thought would be simple, but having to do it on my own, it ain’t pretty…