I'm Glad to see this topic spark some interest. Yes -- the performance problem boils down to which kind of COM interface you are using. I forget the terminology here, but scripting languages like JavaScript, VBS, Perl, and even full Visual Basic access COM through a late-binding dispatcher.
On the other hand C++ can be written to access the COM interfaces in a more direct, early binding fashion.
I am writing my stuff using JavaScript embedded in a web page. The performance is terrible, as I described earlier.
I tried modifying the "Web Remote" example plugin to manipulate Playing Now in C++, but I found that MJCurPlaylistAutomation::AddFile() method always crashes no matter what parameters I use (I posted about this in mid-2003).
Although I am a professional C/C++ developer, it is not on a Windows platform, and I guess I have just not gotten the hang of doing COM right, or perhaps I have a compiler / configuration problem.
The bottom line is that, JRiver's SDK has lots of potential, but if you use a scripting language, you can't do anything that requires iterating over large lists. I wish that would change.
Thanks,
Soundman