# Comparison of code generation tools
## List of tools

| Product | Creator | Platform | First public release | Latest stable version | Date of the latest stable version | Software license |
| Acceleo | Obeo | cross-platform (Java / Eclipse) | 2006 | 3.7.7 | 2018-12-04 | Eclipse Public |
| actifsource | actifsource GmbH | cross-platform (Java / Eclipse) | | 10.12.0 | 2021-02-22 | Proprietary |
| DMS Software Reengineering Toolkit | Semantic Designs | Windows | 2001 | 2.0 | | Proprietary |
| DRAKON | Stepan Mitkin | cross-platform (Tcl/Tk) | 2011 | 1.27 | 2016-03-10 | Free |
| GeneXus | GeneXus | Cross Platform (multiple) | 1991 | v17 | | Proprietary |
| Genshi (templating language) | Edgewall Software | cross-platform (Python) | 2006-08-03 | 0.5.1 | 2008-07-09 | |
| Jinja (Template engine) | Pocoo team | cross-platform (Python) | | 2.1.1 | | BSD |
| Kid (templating language) | Ryan Tomayko | cross-platform (Python) | | 0.9.6 | 2006-12-20 | |
| Mako | Michael Bayer | cross-platform (Python) | | 1.1.2 | 2020-03-01 | MIT License |
| MATLAB | The MathWorks, Inc. | Windows, macOS, Linux | 1984 | 9.5 | 2018-09-12 | Proprietary |
| M-Power | mrc | cross-platform (Java) | 2004 | | | Proprietary |
| Microsoft Visual Studio LightSwitch | Microsoft | Windows | 2011 | | 2011-07-26 | Proprietary |
| OpenMDX | | cross-platform (Java) | 2004-01-28 | 2.4 | 2009-03-26 | BSD |
| Scriptcase | Scriptcase Corp. | PHP Unix, Linux, Windows, iOS | 2000 | 9.7 | 2022-04-13 | Proprietary |
| T4 | Microsoft | Windows | 2005 | | 2010 | MIT License |
| Umple | University of Ottawa | cross-platform (Java) | 2010 | 1.35.0 | 2024-10-11 | MIT License |
| Velocity apache | Apache Software Foundation | cross-platform (Java) | | 1.6.2 | 2009-03-19 | Apache License 2.0 |
| WaveMaker | WaveMaker Inc. | cross platform (aPaaS) | 2003 | 10.0.3 | | Proprietary |

## Technical features

| Name | Implementation Language | Active; Passive | Model | Typical input | Other input | Typical output |
| Acceleo | Java | Active | Tier | User-defined EMF based models (UML, Ecore, user defined metamodels) | Any EMF based input (Xtext DSLs, GMF graphical models, etc.) | Any textual language. |
| actifsource | Java | Active | Tier | User-defined Models | Import from UML, Ecore. | Any textual language. |
| DMS Software Reengineering Toolkit | Several code generation DSLs (attribute grammars, tree patterns, source-to-source rewrites) | Active | DSLs represented as abstract syntax trees | DSL instance | Well-formed output language code fragments | Any programming language (proven for C, C++, Java, C#, PHP, COBOL) |
| gSOAP | C / C++ | | | WSDL specifications | | C / C++ code that can be used to communicate with WebServices. XML with the definitions obtained. |
| Microsoft Visual Studio LightSwitch | C# / VB.NET | Active | Tier | Database schema | | Complete Silverlight application (Desktop or Web) |
| Pro*C | | | Inline | SQL in C | | C |
| Scriptcase | PHP, JavaScript | Active | Tier | Complete application (Web/Mobile) and build or use the database schema | PHP, HTML, JavaScript, Ajax, | Full Web application ready to use (PHP and Javascript) with Interface layer, service layer, PHP, CSS. etc. and Database scripts to apply. |
| Spring Roo | Java | Active | Tier | Java and automatically introspected project metadata | Shell commands | Java (Full Web Application including Java source, AspectJ source, XML, JSP, Spring application contexts, build tools, property files, etc.) |
| T4 | | Passive | | T4 Template/Text File | | Any text format such as XML, XAML, C# files or just plain text files. |
| Umple | Umple, Java, Javascript, PHP | Active | Tier | Umple code embedding one or more of Java, Python, C++, PHP or Ruby | Pure Umple code describing associations, patterns, state machines, etc. | Java, Python, C++, PHP, Ruby, ECcore, Umlet, Yuml, Textuml, JSON, Papyrus XMI, USE, NuXMV, Alloy |
| Velocity apache | Java | Passive | Tier | Templates | Java driver code | Any text |
| Yii2 Gii | PHP | Active | Tier | Database schema, user input, source code | | Skeleton application, CRUD applications |