3ds Max gives you two ways to write plug-in applications: the SDK, which uses C++, and MAXScript, the program's native scripting language. Which language you choose depends partly on how you want to work, and partly on what you want your plug-in to accomplish. Both languages have their strengths and limitations, but you can develop complex applications with either of them.
In general, MAXScript plug-ins run more slowly than comparable plug-ins written in C++, so if performance is an issue, using the SDK is probably preferable.
On the other hand, MAXScript provides some methods that are higher level than those to be found in the C++ SDK, and supports a few 3ds Max features and capabilities that are not exposed to the SDK. If your feature needs functionality supported by MAXScript but not the SDK, then MAXScript is your only choice. In particular, exposing 3ds Max features via OLE/ActiveX controls is easier to code in MAXScript than it is with the SDK.
MAXScript can be useful for prototyping plug-ins, developing comparatively small features, and writing test suites.
The SDK is preferable when performance is important; in general, this is when computation rather than interactivity is the main purpose of the plug-in. Performance is most often an issue when the plug-in handles large sets of entities such as objects, sub-objects, files, notification messages, and so on.
Developing Scripted Plug-ins - Topics Index