C++ plugins would not directly query UI usually, and insead get the values via command attributes.
A code won’t be faster in C++ just because you wrote it there. If you’ll just reuse extrude node and loop through selection of thousand nodes, you’ll barely notice a difference. To get things really fast, you have to go lower-level - maybe you don’t need to do thousands of extracts and instead there’s a smarter idea behind it, and you build a new parametric geometry and make it an output of a node.
Compiling from Windows on all platforms is not possible because of Mac. There’s no other legal way than buying a Mac and building there (at least not in C++, some other languages like Golang can actually do that). My current build environment for 3 platforms:
- native Windows 10 - produces windows binaries
- Mac Mini - slow, but enough to host OSX and run build scripts
- Centos 6.5 on VirtualBox - produces linux binaries (newer versions of Linux had issues running on some client’s environments because of the specific GLibC requirement)
For documentation - just start with whatever you can find. Learn C++ if it’s new to you, build and run examples from Devkit, clone a devkit project (e.g. custom node) and try to modify it to fit your own needs. It’s quite a steep learning curve, I must admit, I consider myself a seasoned developer and in perspective of other development work that I do, building stuff in Maya is complicated.