views:

174

answers:

3

This is kinda a general question for the development community, since there are lots of experienced devs here.

I'm currently building a developer utility addin module which requires code to exist in applications which will be adopting it. I'm looking to support at least native C++ and .NET applications initially, with support for other languages by demand. The target market will be Windows initially, but with Linux support ASAP afterwords. I want to make the client integration piece as seamless as possible, to facilitate maximum adoption. The interface itself is fairly simple.

What do you, as developers, need to have and/or like to see in third-party libraries you integrate with?

Some things I'm already going for:

  • Supported configurations for static/dynamic linking of the C-runtime library
  • Automatic selection of proper library to link to, with automatic linking through a header file (eg: #pragma comment( lib, "..." ))
  • Minimal dependency configurations (eg: no MFC/ATL) supported, but also library-specific modules to ease integration with projects which use the libraries (eg: MFC-style interface)
  • Documentation (obviously)
  • Simple demo projects to show usage for as many configurations as feasible

My question is similar to this question about integrating with third-party libraries, but from the other side. As the library developer, I want to know what would make the best API/structure to integrate with.

What other things do you like to see in libraries you integrate with? What are the make/break elements?

+1  A: 

Scripting or Interpreted Language Interface

Many times when looking at API's a big motivator for me is to know if there is some type of scripting interface provided. The backbone to the API might very well be a C/C++, but a script or interpreted language interface really opens up the possibilities.

For example, many good API's I look at today have interfaces like Ruby, Perl, Python, etc. Obviously, these are just a few examples...

Scott Saad
A: 

Would be nice to get a bit more feedback... not that the one answer so far was bad or anything, but the more input the better...

Nick
A: 

Availability of source is another major factor for me.

Conrad