Am currently working on creating an extension for “Link Preview”, where the user provides an url and the extension process those and display the title & description with image of it.
Am very new to this plafform, since it is Java & Maven Architecture.
I have followed this example macro from this link.
Not sure there is a best tool. Some of the core devs use Eclipse and other IntelliJ IDEA to develop and debug things.
We usually deploy extensions on a Maven repositories (so the deploy tool would be Maven). You should take a look at http://contrib.xwiki.org/ if you plan to publish your extensions so that others can install it with Extension Manager.