Frequently asked Questions
- What kind of license applies to the wurbelizer?
- Where do all these funny names come from?
- The wurbelizer is pretty slim. How come?
- How is the Wurbelizer related to Metaprogramming?
- What's the difference between Wurblets and Doclets?
- What's the difference between Wurblets and Annotations?
- Is the Wurbelizer limited to Java?
What kind of license applies to the wurbelizer?
The wurbelizer is Open Source and licensed under the LGPLv2, the GNU LESSER GENERAL PUBLIC LICENSE. A copy of the license can be found in the source distribution in lgpl.txt, downloadable here.Where do all these funny names come from?
To be honest, it's just german family slang. Wurbeln is best described as doing things fast and thoroughly. (For those who are interested: eine Mischung aus Wuseln und Wirbeln).The wurbelizer is pretty slim. How come?
The wurbelizer does not re-invent the wheel over and over. The fact alone that it does not invent a new generator language (that would be probably number 1000 on this planet), but instead uses Java with a few extensions, saves tens or even hundreds of classes. Furthermore, using Ant as a wurblet container helps to reduce the amount of code even more. Small, fast and simple, KISS.How is the Wurbelizer related to Metaprogramming?
Writing a computer program that generates another computer program is commonly called metaprogramming. Thus, writing a wurblet that generates source code obviously is a sort of metaprogramming. However, we are reluctant to use the term "meta", because it is too often misused and/or misinterpreted in computer lingo, especially when it comes to the language used for metaprogramming.How should we call that language? Metalanguage? [Wikipedia]
A metalanguage is a language about language. Does a wurblet describe Java? And, because wurblets are written in Java, does this implement Java as a reflexive metalanguage? Hmm...
A wurblet can generate any kind of code. It does not describe Java. It merely describes the code to be generated, and that code may not belong to any language at all.
And what about scripting languages like PHP, don't they essentially work in the same manner? And, if PHP at the same time is a metalanguage, is the wurblet-language also a scripting language?
In JSP, the Java code snippets are called scriptlets. The language used in the scriptlets is officially called the scripting language, not the metalanguage.
So, is the wurblet language a scripting or a meta language?
The answer is vague. It's probably easier to find a name for the wurblet language.
How about Wurblish? ;-)
What's the difference between Wurblets and Doclets?
Although at first glance a wurblet-anchor looks pretty much like a javadoc extension, wurblets have nothing in common with doclets. The main difference lies in the fact that a wurblet modifies the code of the same source file it is anchored within. As opposed to doclets, wurblets have full access to the source level by means of the wurblet container and therefore are able to modify the source code.What's the difference between Wurblets and Annotations?
As with doclets, annotations cannot modify the source code. However, annotations can be combined with wurblets in a very effective manner! For example, an annotation analyzes a method's signature and a wurblet then picks up this information to generate some code. The Tentackle framework is using this trick.Is the Wurbelizer limited to Java?
Explicitly no!The Wurbelizer's concept is a generic one and can be applied to other languages as well. For example, a PHP-implementation of the Wurbelizer was accomplished by simply translating each Java class to a corresponding PHP class. Thanks to Uwe Meding for providing his PHP-Wurbelizer!
A C# implementation is under way and others will follow, hopefully. It's up to the Open Source community.