I played around with the official C++ SDK since yesterday and I must admit that it is a horrible experience:
- The documentation is hardly usable for someone who's new to the SDK. It is more like a reference than something which gets the user up and running
- It seems outdated, the website states that it supports PM3, PM4 and PM5. It took me some hours of hacking and various Google findings to get it running with my PM5. Not to mention that everything is named 'PM3' - How should a new user know that it also works with a PM4 and PM5?
- The tools do not work: The PMSDKDemo.exe does not recognize my PM5, though my own application does (though it took some time).
- There are no examples. The only thing I could find was a short source-code in the documentation. It did not help a lot, though I was able to verify that I wasn't completely wrong. Why aren't there simple tools showing various use cases? Good examples do not substitute a written documentation, but they're worth a lot when it comes to understanding the SDK.
- There are no tests at all... How do I know that everything runs as expected on my system?
Another thing I do not understand is why the SDK is not made available as Open Source. Most problems I mentioned above could have been solved by a community. There are many companies hosting their code on GitHub and similar platforms. The CSAFE interface spec is available anyways, there wouldn't be a problem with someone stealing your intellectual property or something similar.
My request to Concept2 is to redesign and refactor the official C++ SDK. The current version is hardy usable. Developers, Users and Concept2 would profit from an easy to use programming interface.