Comparison
                     
                  
                  
                     
                     
                        
                        
                           
                           |  | Dynamator | XMLC | Tapestry | Velocity | JSP (scripts)
 | JSP (taglibs)
 | 
                        
                     
                     
                     
                        
                        
                           
                           | Pure, valid HTML | Y | Y | N | N | N | N | 
                        
                        
                           
                           | Architecture neutral | Y | Y | N | Y | N | N | 
                        
                        
                           
                           | Works in non-web apps | Y | Y | N | Y | N | N | 
                        
                        
                           
                           | Language independent | Y | N | N | N | N | N | 
                        
                        
                           
                           | No run-time library | Y | N | N | N | Y | N | 
                        
                        
                           
                           | No run-time overhead | Y | N | N | N | Y | N | 
                        
                        
                           
                           | Mechanism | XML-based source code manipulation | XML compiler + enhanced DOM API | XML config + architecture | Template language | Template language | Tag-based template language | 
                        
                     
                     
                  
                  
                     Comparison Criteria and Comments
                     
                  
                  
                     The table above compares Dynamator with popular Java
                     technologies claiming to separate program logic from static
                     content, using the following criteria:
                     
                  
                  
                     
                     - 
                        HTML purity and validity
                        
                     
- 
                        
                        
                           Can the technology use pure HTML without the addition of
                           server-side program logic? 
                           Can someone knowledgeable only in
                           HTML and web applications in general develop and maintain HTML
                           templates that can be used without modification by this
                           technology?
                           Given an HTML marked up to use this technology, would an HTML
                           validator consider it valid? 
                           
                         
                           Dynamator and XMLC use the same HTML interface,
                           leveraging the HTML standard. Tapestry is nearly pure,
                           but requires a non-standard attribute. The others
                           aren't even close.
                           
                         
- 
                        Architectural neutrality
                        
                     
- 
                        
                        
                           Are web applications that use this technology free to
                           choose any server-side presentation architecture without
                           constraint? (Note that a negative in this category is not
                           necessarily a bad thing, if you can commit to a single
                           architecture across an application portfolio.)
                           
                         
                           With a much larger scope than any of the other products
                           listed, Tapestry is on the opposite end of this
                           spectrum from Dynamator, which is a small tool that
                           focuses on doing one thing without imposing architectural
                           constraints. 
                           
                         
- 
                        Supports non-web applications
                        
                     
- 
                        
                        
                           Can the technology be used with applications that run
                           outside a servlet container? Can the technology be used
                           for a command-line application without mock servlet
                           scaffolding?  
                           
                         
                           Dynamator, Velocity, and XMLC can be used with batch
                           programs for document generation.
                           
                         
- 
                        Language independence
                        
                     
- 
                        
                        
                           Does the technology assume Java, or can it work with other
                           languages as well?
                           
                         
                           JSP theoretically supports multiple languages, but
                           in practice works only with Java.
                           Because Dynamator is specifically designed for use with
                           multiple languages, it can supply a degree of consistency to
                           a multi-technology portfolio. For example, Dynamator can be
                           used to generate JSP, servlets, and XSL.
                           
                         
- 
                        Freedom from run-time components
                        
                     
- 
                        
                        
                           Is it possible to run an application that uses this
                           technology without deploying a technology-specific
                           run-time library?
                           
                         
                           Dynamator doesn't require any run-time library, because
                           Dynamator executes in the development environment.
                           Generated pages or programs stand on their own.
                           This makes for a simpler execution environment,
                           simplifies debugging, and reduces tool dependence.  
                           If you run into a problem with an output library component,
                           you don't have many options.  If you run into a problem with
                           Dynamator, you can always tweak the generated source code.
                           
                         
- 
                        Efficient run-time
                        
                     
- 
                        
                        
                           Is the technology as efficient as a hand-coded program
                           containing out.println statements?
                           
                         
                           All of these technologies claim to be "efficient enough".
                           But it's hard to match Dynamator for efficiency, since
                           it has a run-time overhead of zero. (Java code generated by 
                           Dynamator may actually be more efficient than a hand-coded
                           program that uses string concatenation.)
                           This is one of Dynamator's biggest advantages over XMLC.
                           
                         
Note:
                     Even though they appear as competitors in the chart above,
                     Dynamator can generate JSP (scripts or taglibs) and Velocity.
                     Although it's often better to just generate straight Java.