If you were at EclipseCon last year, you may have seen the demo I gave of IBM’s Rational Application Developer to build a Web app that monitored a C++ app. I used gsoap to present a web service that monitored some value. I thought this was pretty cool way to web enabling C/C++ apps and maybe bring these apps into the Internet mainstream.
Mind you, I kind of ignored the size impact that the gsoap libraries presented and the added complexity of having to figure out how to define my web service (WSDL is not for the meek and RAD helped me a ton). In the end, it was probably overkill when all I wanted to do provide access to some status data to apps on the web.
Recently I have become curious about all the hype behind AJAX and LAMP. While browsing through some tutorials on XMLHttpRequest, it struck me. Well, all this really is is a remote procedure call back to the server, the same thing I was trying to do with SOAP. The URL is simply the name of the function you want to call and the GET/POST parameters are the arguments. Could web enabling my C/C++ app be a simple as handling http requests and providing the properly formatted http responses? I’m on a mission to find out.
While I’m sure SOAP has it’s purpose in the big SOA scheme of things, I am always cautious about oversolving the problem. Time will tell how big an impact AJAX and LAMP will have on the industry, but I’ve always found that the most successful architectures are the ones that are the easiest to learn and supported by free tools. With the recent announcements of Eclipse projects that address AJAX and PHP development and all the web presence these technologies have, they’ve definitely caught my attention.
(BTW, TSN is one of Canada’s two main sports networks. Every game, no matter what the sport, they pick a moment that they think decided it for the winner, the TSN Turning Point).
I noticed the AspectJ guys posted their numbers, so I thought I’d go out and get the CDT’s. For December we had 66,000 downloads. I think that’s a healthy number, and enough for Webmaster to ask that we tell them when we are going to do our next release so that they can plan for the extra bandwidth that would be required.
Another interesting data point is the platforms that get downloaded. We are consistently showing the same numbers:
- 64% Windows
- 30% Linux x86
- 3% Mac OS X
- 2% Linux x86_64
- 1% Solaris sparc
- less than 1% other
I find this most interesting since we really only support GNU on Windows so these people must be students or hobbyist, or my assumption is wrong and that you actually can do commercial development using MinGW or cygwin. I’d be interested in hearing what CDT users are building on Windows.
So I’ve started getting interesting in C# again after initially looking at it when it first came out. It looks to me like a better Java than Java, although Java is starting to catch up with Java 1.5. And with support from the Novell lead Mono project, it has the potential to become another serious cross platform solution.
Looking inside the .Net Framework SDK 2.0, I notice that it includes Microsoft’s C++ compiler. I was wondering if Microsoft was going to update their Visual C++ Toolkit, the free version of their VS2003 compiler. It appears that this is it, although I haven’t seen it advertised as such.
Today the CDT has a lot of credibility for embedded development and on Linux. It is a little weak on Windows, despite that platform accounting for 2/3’s of CDT downloads. Most of this, I assume, is by students and people kicking the tires where MinGW/cygwin is sufficient for them. Supporting a commercial quality compiler and full Windows development would definitely be a boost to the CDT’s popularity there. All you need is the .Net and Platform SDKs, and DirectX SDK if you want to make games, and you’d be good to go.
Also, by adding some focus on .Net, we can look at C# as a potential addition to the languages that the CDT supports. For those who haven’t heard, work is being done by the Fortran community through the Photran project to add Fortran support to the CDT. I have a feeling that C# be able to reuse more of the CDT than Photran does, especially the editor, since C# is more C-like. And it is more likely to be used than the Ada support I was thinking of adding.
As with everything open source, we’ll have to see if there is anyone interested enough to work on this, but it would sure benefit the CDT’s popularity.
Just when you thought the evolution of C++ was over, I spotted the following article discussed on Slashdot. It is from Bjarne Stroustrup, Mr. C++ himself, who I affectionately refer to as Barney (whether it has anything to do with a cuddly purple dinosaur taking care of my favorite programming language, I’ll let my psychiatrist figure out). You can get the article here.
In the article, Bjarne discusses proposals to improve generic programming in C++ as well as additional libraries to fill out the offering of STL (things like even more generic containers and our beloved hash maps). The plan is to get this all together for standardization in 2009.
The part I found most interesting, being an open source project lead, is the fact that the C++ standards committee is also volunteer driven and their biggest challenge will be to get something together that is really enticing with the resources they have. Hopefully, the publicity will help.