There are three approaches to writing plug-in applications:
Which approach you choose depends partly on how you want to work, and partly on what you want your plug-in to accomplish. Each approach has its strengths and limitations, but you can develop complex applications regardless of your choice.
MAXScript provides some methods that are higher level than those to be found in the 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 through OLE/ActiveX controls is easier to code in MAXScript than it is with the SDK.
MAXScript is often used for creating plug-ins that don't requires high performance, prototypes of plug-ins and writing test suites.
Plug-ins written in C++ with the SDK generally run faster than their MAXScript counterparts.
The SDK is preferable when performance is important, particularly 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.
Combination of MAXScript and the 3ds Max SDK
The combination of MAXScript and native C++ code gives you the best of both worlds when speed of development, complexity and performance are attributes of your development goals. Also see the topic on the MAXScript Scripting Engine.