Advantages of making a component in Java vs using a template?

I was reading up on developing Vision components in the programming guide. I was trying to make one of our (somewhat broken) templates in this fashion. I started wondering what advantages this offers over making the same item as a template. What is the motivation for making customs components in Java and making them available to designer/client vs making them as a template inside of designer?

Blistering fast. Total integration. Control over licensing and redistribution (if not free). Protection against local edits. Bidirectional properties (bindable but also updatable within the component).

Ability to use your own text editor / IDE