I see a tons of wonderful extensions for SketchUP for any kind of work that I rarely see with other software. Why is that? Because of the API and the Ruby as a scripting language? Is it really easy to write extensions or is there something else?
One reason could very well be that it’s been available for free to hobbyists. I learned the basics of extension development as a hobby without having to pay for it.
Another reason could be that SketchUp is designed to by itself just have the fundamental tools and let users add everything else as extensions. While extensions/plugins are just some extra icing on the cake for much software, in SketchUp it’s a core concept.
- Choice of a very intuitive and accessible scripting language.
However Ruby is not so widespread (and often reduced to Ruby-on-Rails) as for example Python, but a better choice than somewhat old-fashioned and cryptic languages like most macro languages, or Visual Basic or Lisp.
- Talented employees who modelled the original object/class system behind the API (and the core of SketchUp).
I’ve seen other APIs that are more procedural or expose only parts of an application and the individual parts cannot be combined to form something big.
Ruby is an excellent, easy to learn, high level scripting language like Perl.
The API is deep and broad, allowing the developer to leverage (automate) almost every aspect of SketchUp, as well as implement additional features with a a full fledged programming language.
Furthermore, SketchUp is really just a blank slate encouraging developers to extend it with plugins/extensions. If SketchUp was not such a fun, intuitive 3D environment to work in I am sure that the excitement seen among the development community would be significantly dampened.
I’ve had some requests to port my extensions to other drawing platforms but when I examine these other API’s I have yet to find one as finely crafted as the SketchUp API or as easy and straight forward to use.