trixmoto wrote:I don't understand why you're so frustrated
I'm am frustrated because I was mislead into wasting a large amount of my time. Doing that is immoral, IMO. I don't know how I can be any more clear than that!
trixmoto wrote:... the API has never let me down, although sometimes a little trial and error is necessary.
I get the impression that you and Steegy view working with the API as a challenge and a hobby. You may have somewhat the same attitude as a white-hat hacker, who enjoys solving puzzles and figuring out how to make things work. Plus you will hopefully come up with something that others can enjoy. There is nothing wrong with that. Just understand that most users of MM won't have the same attitude. They want MM to help them. That's why they downloaded it and perhaps paid money for it. I wanted MM to help me. Instead, it wasted my time. I am upset.
Understand too that there were different ways of solving my problem that bypassed the MM API. I thought writing the script would be the quickest and easiest way. It turned out very different. Had MM been more upfront about how bad their API is, I wouldn't have made that mistake.
I think it is doing people a disservice if someone is making the API appear better than it is. It should be clear up front that MM scripting is only for those who want the challenge of figuring out a rather poorly designed and implemented API. That way people are not mislead.
Also, keep in mind that it is reasonable for people to assume that the API is as good as the rest of MM, which is pretty high quality, after all. If the rest of MM was as poor as the API, MM certainly wouldn't be as popular as it is now.
trixmoto wrote:If you think it's unclear, try suggesting a revised paragraph.
I have edited the wiki several times already! Check the history. Keep in mind, though, that it is difficult to come up with something better when you can't figure out what it should say in the first place. Don't think I haven't tried!
trixmoto wrote:Yes "Song.UpdateDB" will add a new track but "SongList.UpdateAll" will not add new tracks. You should instead loop through them, like
onkel_enno's
AddToLibrary script. I hope this is clear.
Well, now that you say it, it is perfectly clear. What is not clear is how I would have known that before you said it, or why it would be that way.
trixmoto wrote:Please calm down, and if you still have any queries then ask them as clearly as possible. We are all willing to help a new scripter!
I should not absolutely need to ask questions. What if I had only occasional or slow internet access? If the API was well designed, implemented and documented, I should be able to figure out everything well enough to get things to work at some basic level. (That doesn't mean I couldn't have improved my script by getting advice from others, but it still would have worked well enough to meet my basic needs.) As it was, I asked questions, had to keep checking for an answer, respond occasionally to people who meant to help but told me things I didn't need to be told, and finally, got told what I needed to hear. That was better than nothing, but not as good as having a good API in the first place.
Besides, why should you (trixmoto) or anyone else need to answer questions that should not have to be asked in the first place? That's your choice, of course, but wouldn't it be better if things were more logical to begin with?
In case you don't understand what I think is unacceptable, but which you (and others) seem to have accepted, here are a couple of examples:
1) Some things that can be done with VBScript can't be done with JScript. At a minimum, that means the developers should have been upfront about the fact that they have only partial JScript support. Yes, the
users have documented that there is only partial JScript support, but a new coder won't see that before he was convinced that MM really did have full JScript support. Keep in mind that there don't seem to be many - if any - links to the Wiki from MM's web pages.
There is no law that says MM must offer JScript support, but if the developers claim you can use JScript, it should work.
2) There are some properties in the API named "Terminate". "Terminate" is strictly an action verb in the English language. That means it is a violation of good programming practice (and inherently nonsensical) to name anything, other than a method, "Terminate". One of the most basic concepts in computer programming is that objects represent things while methods represent actions, etc., so you use nouns to name objects, action verbs to name methods, etc. If the developers can't even get that much right, what can they do?
It is one thing to ignore good programming practices in code that only the programmer will ever see, but it's another thing to ignore them in the design of an interface and then advertise the interface as something that will make people's lives easier. That is not acceptable, IMO.
I think (but am unsure) that I read somewhere that the programmers are German, but even if they don't speak English very well, that's still no excuse. It would just mean that they must use a dictionary or have someone fluent in English check what names they picked. They should not be confusing other people by using misleading names in the API. (Or at the very least, MM should have been upfront about it, and warned potential scripters that the designers of the API didn't follow good programming practices.)
Of course, I could come up with much more than these two examples. These aren't the most important problems (there are far worse ones), but it should be easy for anyone to comprehend the problems in these cases.
Again, I wouldn't be so upset about this if I didn't feel as if I was mislead. It's important to not over-sell MM scripting or else you are just misleading people. If people are up for a challenge, fine! But it should be made clear that the MM API is not up to the same quality as the rest of MM.