Comparison of code generation tools
Encyclopedia
This article compares variable metamodel code generation tools . Fixed metamodel code generation tools, such as UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 tools, are excluded (see List of UML tools).
Name Creator OS First public release Latest stable version Software license Open source
GenerateXY
GenerateXY MDD/MDA Framework
GenerateXY is a pragmatic framework for MDA/MDD. It allows to specify model-to-model and model-to-text transformations. No constraint is imposed on the target code that can can have any structure in any language...

DotXY Windows 5.1 Freeware No
Acceleo
Acceleo
Acceleo is an open source code generator of the Eclipse Foundation that allow people to use a model driven approach to build application from models. It is an implementation of the standard from the Object Management Group for model to text transformation named MOFM2T.- Early versions :The project...

Obeo cross-platform (Java / Eclipse) 2006 3.1.0 / 2011-06-23 Eclipse Public License
Eclipse Public License
The Eclipse Public License is an open source software license used by the Eclipse Foundation for its software. It replaces the Common Public License and removes certain terms relating to litigations related to patents....

Yes
Accelerator
Accelerator (Software)
The Accelerator is a collection of development solutions for IBM i and Windows platforms using LANSA, and/or Microsoft .Net technologies provided by Surround Technologies...

Surround Technologies Windows (C# / .NET) 2007 3.0 Proprietary No
actifsource
Actifsource
Actifsource is a domain specific modeling workbench. It is realized as plug-in for the software development environment Eclipse. Actifsource supports the creation of multiple domain models which can be linked together. It comes with a UML-like graphical editor to create domain specific languages...

actifsource GmbH cross-platform (Java / Eclipse) 4.6.3 / 2011-08-09 Eclipse Public License
Eclipse Public License
The Eclipse Public License is an open source software license used by the Eclipse Foundation for its software. It replaces the Common Public License and removes certain terms relating to litigations related to patents....

Yes
Agile Platform OutSystems
OutSystems
OutSystems is a multinational software company which operates in the agile software development market. The company’s mission is to provide technology that speeds up and reduces the costs of the delivery and management of web business applications using agile methodologies.OutSystems' flagship...

Windows 2001 5.1.1.0 / 2010-11-30 Proprietary No
Apeel PHP Code Generator Pro City Business Logic Windows 2001 11.03b / 2011-09-04 Proprietary No
AtomWeaver Isomeris Windows 2010 1.2.2 / 2011-06-09 Proprietary No
GNU AutoGen
GNU AutoGen
AutoGen is a tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text. It is especially valuable in programs that have several blocks of text that must be kept synchronized....

Bruce Korb Unix like, Apple, WinNT 1999 5.12 / 2011-06-26 GPL Yes
CodeGenerator360 Windows (Online Tool) 2011 Freeware No
CodeSmith Windows Proprietary No
Code OnTime Code On Time LLC Windows (c# / .NET) Freeware and Subscription No
Cog Ned Batchelder cross-platform (Python) 2.1 MIT license
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...

Yes
DMS Software Reengineering Toolkit
DMS Software Reengineering Toolkit
The DMS Software Reengineering Toolkit is a proprietary set of program transformation tools available for automating custom source program analysis, modification, translation or generation of software systems for arbitrary mixtures of source languages for large scale software systems.DMS has been...

Semantic Designs Windows 2001 2.0 Proprietary No
EntiPro EntiCraft Windows Proprietary No
Genshi (templating language)
Genshi (templating language)
Genshi is a template engine for XML-based vocabularies written inPython. Genshi is used to easily insert generated output into XML-based languages, usually HTML, and reuse elements between documents...

Edgewall Software cross-platform (Python) 2006-08-03 0.5.1 / 2008-07-09
Iron Speed Designer
Iron Speed Designer
Iron Speed, Inc. publishes a database rapid application development product called Iron Speed Designer. This product builds database and reporting applications for the Cloud, Web and Microsoft SharePoint environments...

Iron Speed, Inc. Windows 2001 8.0.1 / 2011-03-11 Proprietary No
JCodeBox cross-platform (Java) Proprietary No
Jinja (Template engine)
Jinja (Template engine)
Jinja is a template engine for the Python programming language. It is similar to the Django template engine but provides Python-like expressions while ensuring that the templates are evaluated in a sandbox. It's a text-based template language and thus can be used to generate any markup as well as...

Pocoo team cross-platform (Python) 2.1.1 BSD Yes
Kid (templating language)
Kid (Templating Language)
Kid is a simple template engine for XML-based vocabularies written in Python. Kid claims to have many of the best features of XSLT, TAL, and PHP, but "with much of the limitations and complexity stamped out"....

Ryan Tomayko cross-platform (Python) 0.9.6 / 2006-12-20
Mako
Mako
-Biology:*Isurus, the mako shark genus, consisting of two living and several fossil species:**Shortfin mako shark, Isurus oxyrinchus, the more common mako**Longfin mako shark, Isurus paucus, the rarer mako-Places:*Mako, Ethiopia, a town in Ethiopia...

Michael Bayer cross-platform (Python) 0.2.3 / 2008-05-12 MIT Yes
Microsoft Visual Studio LightSwitch Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

Windows 2011 2011-07-26 Proprietary No
M-Power
M-Power
m-Power is software which automates enterprise web application development and modernizes legacy business applications. m-Power uses a point-and-click interface to create enterprise web applications. Applications created by m-Power run on any database or platform that supports Java.- History...

mrc
MRC
MRC may refer to:in government,* Medical Reserve Corps, US network of community-based units sponsored by the Office of the Surgeon General...

cross-platform (Java) 2004 Proprietary No
MOLGENIS Morris Swertz cross-platform (Java) 2004 3.3 LGPLv3 Yes
MyGeneration Windows Yes
OpenMDX
OpenMDX
OpenMDX is an open source model-driven architecture software platform, a framework suited for domain-driven design . It is based on the Object Management Group's MDA standards. OpenMDX supports Java SE, Java EE, and .NET runtime environments...

cross-platform (Java) 2004-01-28 2.4 / 2009-03-26 BSD Yes
[PHPRunner] Xlinesoft Windows 2003 5.3 / 2010-10-15 Proprietary No
T4
Text Template Transformation Toolkit
Microsoft's Text Template Transformation Toolkit is a template based text generation framework included with Visual Studio. T4 source files are usually denoted by the file extension ".tt"....

Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

Windows 2005 2010 Proprietary No
Umple University of Ottawa
University of Ottawa
The University of Ottawa is a bilingual, research-intensive, non-denominational, international university in Ottawa, Ontario. It is one of the oldest universities in Canada. It was originally established as the College of Bytown in 1848 by the Missionary Oblates of Mary Immaculate...

cross-platform (Java / Eclipse) 2010 1.12 / 2011-04-21 MIT license
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...

Yes
Velocity apache Apache Software Foundation
Apache Software Foundation
The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers...

cross-platform (Java) 1.6.2 / 2009-03-19 Apache License
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

 2.0
Yes

Technical

Name Implementation Language Active; Passive Model Typical input Other input Typical output
GenerateXY
GenerateXY MDD/MDA Framework
GenerateXY is a pragmatic framework for MDA/MDD. It allows to specify model-to-model and model-to-text transformations. No constraint is imposed on the target code that can can have any structure in any language...

Java Active Tier User-defined Models XML, CSV, Java, ... (extensible) Any textual language, predefined modules for Java, HTML, XML
Acceleo
Acceleo
Acceleo is an open source code generator of the Eclipse Foundation that allow people to use a model driven approach to build application from models. It is an implementation of the standard from the Object Management Group for model to text transformation named MOFM2T.- Early versions :The project...

Java Active Tier User-defined EMF
Eclipse Modeling Framework
Eclipse Modeling Framework is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model...

 based models (UML, Ecore, user defined metamodels)
Any EMF based input (Xtext DSLs, GMF graphical models, etc.) Any textual language.
Accelerator
Accelerator (Software)
The Accelerator is a collection of development solutions for IBM i and Windows platforms using LANSA, and/or Microsoft .Net technologies provided by Surround Technologies...

C# Active Tier Database schema
Database schema
A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed...

XML Schema, Templates and configuration tables C#, WPF, Silverlight, ASP.NET, WCF, WebServices(complete application)
actifsource
Actifsource
Actifsource is a domain specific modeling workbench. It is realized as plug-in for the software development environment Eclipse. Actifsource supports the creation of multiple domain models which can be linked together. It comes with a UML-like graphical editor to create domain specific languages...

Java Active Tier User-defined Models Import from UML, Ecore. Any textual language.
Agile Platform .Net Active Tier User defined models based on the OutSystems visual modeling language Java, C#, Javascript ASP.Net and JEE
Apeel PHP Code Generator Pro Delphi Passive Tier Database schema
Database schema
A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed...

PHP, HTML, CSS Full Application - PHP, CSS, Apeel Open Source Framework.
AtomWeaver C++, Lua Active Tier Tree models built using a cooperative template system, based on the ABSE modeling approach Code in any language Any textual language
GNU AutoGen
GNU AutoGen
AutoGen is a tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text. It is especially valuable in programs that have several blocks of text that must be kept synchronized....

C Active Tier Autogen definitions (lists of key-value pairs or hierarchical data arranged like C structs
Struct (C programming language)
A struct in C programming language is a structured type that aggregates a fixed set of labelled objects, possibly of different types, into a single object.A struct declaration consists of a list of fields, each of which can have any type...

), Autogen templates (fixed output plus inline macros for conditional or repetitive emission of code blocks or evaluation of Bourne shell
Bourne shell
The Bourne shell, or sh, was the default Unix shell of Unix Version 7 and most Unix-like systems continue to have /bin/sh - which will be the Bourne shell, or a symbolic link or hard link to a compatible shell - even when more modern shells are used by most users.Developed by Stephen Bourne at AT&T...

 or Scheme expressions)
XML, CGI data Output determined by template (any language or even plain text); additional support for emitting header guards, certain licenses, option parsers, and finite state machine
Finite state machine
A finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...

s in C
Cog Python Active Inline Any code Java C# C++ C Perl Python Ruby TCL Javascript Fortran Lisp Scheme Cobol XSLT JSP PHP Yacc SQL XML System Configuration Files
CodeGenerator360 C# Active Tier Database Schema XML Schema Stored Procedures, .NET DAL, C# ASP.NET Pages, Visual Studio 2010 Solution and Project Files
CodeOnTime C# Active Database Tables Templates and Various XML configuration tables C# ASP.NET
C++ Middleware Writer C++ Active DSL instance / Middle file Include files C++ marshalling code
DMS Software Reengineering Toolkit
DMS Software Reengineering Toolkit
The DMS Software Reengineering Toolkit is a proprietary set of program transformation tools available for automating custom source program analysis, modification, translation or generation of software systems for arbitrary mixtures of source languages for large scale software systems.DMS has been...

Several code generation DSLs (attribute grammars, tree patterns, source-to-source rewrites) Active DSLs represented as abstract syntax
Abstract syntax
The abstract syntax of data is its structure described as a data type , independent of any particular representation or encoding....

 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.
Iron Speed Designer
Iron Speed Designer
Iron Speed, Inc. publishes a database rapid application development product called Iron Speed Designer. This product builds database and reporting applications for the Cloud, Web and Microsoft SharePoint environments...

C# / VB.NET Active Tier Database schema
Database schema
A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed...

CSS ASP.NET (Full application, including C# code, VB code, XML, Stored Procedures, etc.)
Jostraca Java Active Tier Any code Java Any code; Java, JSP
JCodeBox Java Tier Java Java (Full Web Application)
Microsoft Visual Studio LightSwitch C# / VB.NET Active Tier Database schema
Database schema
A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed...

Complete Silverlight application (Desktop or Web)
MyGeneration .NET
PHPRunner PHP/ASP/C#/VB.NET Active Tier Database schema
Database schema
A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed...

PHP, ASPX, HTML, CSS, PHP, ASP, ASP.NET (Full Web application, including C#, VB.NET, PHP, ASP code, HTML, Javascript, CSS, etc.)
Pro*C Inline SQL in C C
Spring Roo
Spring Roo
Spring Roo is an open source software tool that uses convention-over-configuration principles to provide rapid application development of Java-based enterprise software. The resulting applications use common Java technologies such as Spring Framework, Java Persistence API, Java Server Pages, Apache...

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
Text Template Transformation Toolkit
Microsoft's Text Template Transformation Toolkit is a template based text generation framework included with Visual Studio. T4 source files are usually denoted by the file extension ".tt"....

Passive T4 Template/Text File
Text file
A text file is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists within a computer file system...

Any text format such as XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

, XAML
XAML
Extensible Application Markup Language is a declarative XML-based language created by Microsoft used for initializing structured values and objects. It is available under Microsoft's Open Specification Promise...

, C# files or just plain text files.
Umple Java Active Tier Java, PHP, Ruby with embedded Umple code Pure Umple code describing associations, patterns, state machines etc. Java, PHP, Ruby, ECcore, Umlet, Yuml, Textuml, JSON, Papyrus XMI
Velocity apache Java Passive Tier Any code Java Java
XDocLet Active Munger JavaDoc EJB support beans
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK