Check out the introduction in this guide to see if the extension development SDK would be a good fit for you:http://support.ptc.com/WCMS/files/167136/en/Thingworx_Extension_Developers_Guide_v1.0.0.pdf
Carles isn't wrong about the development process being a little clunky, but unit tests can be very helpful in reducing the amount of testing on the Platform and therefore in the number of Tomcat restarts required during development.
There is a plugin for Eclipse that makes development really easy, though I am not sure if this guide is up-to-date enough to include a reference to it.
Hope this helps!
You are right about Unit Testing, but if you need to update production server for small bug fix, you will need to restart a whole production server, this is really a big issue.
Well I suppose it has everything to do with your requirements. In my experience, it is better to repair bugs and write unit tests in development or qa level servers and then push those changes to production all at once in an overnight restart. If overnight restarts are not possible or you find a very critical bug, then yes, there will be server downtime, but I feel like this is to be expected and why most companies have production support teams.
Obviously there are advantages and disadvantages to both approaches. I am biased also because I just like Java!
The latest ThingWorx Extension Development Guide is available from a download link on the Marketplace here. That is also the link to downloading the Eclipse plugin for Extension Development.
Please refer to this document instead of the one that Tori linked to, as that document is out of date like she mentioned.