Which API language to learn?

Obviously I am a newbie to this and I don't yet know what I'm talking about...

I'm a little confused, because there seems to be a choice of API language.

When I record a macro, is there some sort of setting that decides what that macro is recorded in?

Or is it that the macro can be opened and edited in a choice of languages? C# VBA etc?

how come the macros I've looked at, recorded, and received from others, all seem to be written in a similar way when they might be different programming languages?

If I am going to figure out have to write this stuff, which one is least likely to become obsolete?

SolidworksApi macros