4

I am currently busy with a project where the main focus of the application is to be extensible (allow 3rd party developers to write plugins / their own implementations of interfaces).

Until now, I have been using Java, and built the application on the NetBeans platform. This has works perfectly fine and is quite easy to implement.

However, the program is quite computationally intense, and must be run on a grid of computers. I think C++ might be better suited for massive computations like I need.

What I would like to know. Is there any libraries like the NetBeans platform for C++. Or would I have to implement everything from scratch (not that I mind, I just wat to know)? Also, how easy is it to write extensible code with C++ and implement something like an update center? This is stuff you get for free with the NetBeans platform. My experience with the using the platform is that it allows you to write very modular code, which is something I like. New modules can be installed independantly, while the platform provides discovery of services to find all the installed plugins / impementations.

Can this be done similarly in C++?

Thanks!

Nico Huysamen
  • 10,217
  • 9
  • 62
  • 88
  • 2
    Have you benchmarked your computations in C++ vs. Java to get an idea of what performance improvements you might gain by switching to C++? Sounds like you've got a lot of experience with Java/NetBeans and you'd be starting from scratch in the C++ world; are there sufficient performance benefits of switching to C++ to justify the effort of switching platforms? – David Gelhar Nov 30 '10 at 06:26

2 Answers2

2

For modularity on binary level Boost.Extension might be a good choice.

For autoupdate there is for example Google's Omaha (Windows) or Update Engine (OS X)

Palmik
  • 2,675
  • 16
  • 13
  • 1
    You should probably point out, that Boost.Extension is not yet part of the standard release of the boost libraries. You can obtain it from http://blog.redshoelace.com/2008/07/latest-release-downloadable.html. – bjoernz Nov 30 '10 at 06:41
2

I recommend that you have a look at the Qt framework. They offer a mechanism to create plugins. Have a look at this free online book about Qt. Plugins are discussed in chapter 21.

bjoernz
  • 3,852
  • 18
  • 30
  • I should have linked to the second page of chapter 21, since the first page is about extending the Qt framework itself: http://www.informit.com/articles/article.aspx?p=1405558&seqNum=2 – bjoernz Nov 30 '10 at 06:44
  • @bjoernz - The Qt Framework does look like a possible alternative. Thanks for the link. – Nico Huysamen Nov 30 '10 at 06:46
  • @Nico - now I am curious, why Qt is out of the question. :-) – bjoernz Nov 30 '10 at 06:49
  • @bjoernz - I don't understand your comment. I said it looks like a definitive alternative to the NetBeans platform. I will look into the Qt Framework. It looks promising :) - Did I say somewhere it is out of the question? – Nico Huysamen Nov 30 '10 at 06:59
  • 1
    @Nico - Sorry, reading before the first coffee is not my strong suit... – bjoernz Nov 30 '10 at 08:04
  • @bjoernz - lol yeah, I feel tou pain :) – Nico Huysamen Nov 30 '10 at 08:07