Comparison of code generation tools explained

List of tools

ProductCreatorPlatformFirst public releaseLatest stable versionDate of the latest stable versionSoftware license
AcceleoObeocross-platform (Java / Eclipse)20063.7.7 2018-12-04Eclipse Public
actifsourceactifsource GmbHcross-platform (Java / Eclipse)10.12.0 2021-02-22Proprietary
DMS Software Reengineering ToolkitSemantic DesignsWindows20012.0Proprietary
DRAKONStepan Mitkincross-platform (Tcl/Tk)20111.27 2016-03-10Free
GeneXusGeneXusCross Platform (multiple)1991v17Proprietary
Genshi (templating language)Edgewall Softwarecross-platform (Python)2006-08-030.5.1 2008-07-09
Jinja (Template engine)Pocoo teamcross-platform (Python)2.1.1BSD
Kid (templating language)Ryan Tomaykocross-platform (Python)0.9.6 2006-12-20
MakoMichael Bayercross-platform (Python)1.1.2 2020-03-01MIT License
MATLABThe MathWorks, Inc.Windows, macOS, Linux 19849.52018-09-12Proprietary
M-Powermrccross-platform (Java)2004Proprietary
Microsoft Visual Studio LightSwitchMicrosoftWindows20112011-07-26Proprietary
OpenMDXcross-platform (Java)2004-01-282.4 2009-03-26BSD
ScriptcaseScriptcase Corp.PHP Unix, Linux, Windows, iOS20009.72022-04-13Proprietary
T4MicrosoftWindows20052010MIT License
UmpleUniversity of Ottawacross-platform (Java)20101.33.02024-01-10MIT License
Velocity apacheApache Software Foundationcross-platform (Java)1.6.22009-03-19Apache License 2.0
WaveMakerWaveMaker Inc.cross platform (aPaaS)200310.0.3Proprietary

Technical features

NameImplementation LanguageActive; Passive [1] ModelTypical inputOther inputTypical output
AcceleoJavaActiveTierUser-defined EMF based models (UML, Ecore, user defined metamodels)Any EMF based input (Xtext DSLs, GMF graphical models, etc.)Any textual language.
actifsourceJavaActiveTierUser-defined ModelsImport from UML, Ecore.Any textual language.
DMS Software Reengineering ToolkitSeveral code generation DSLs (attribute grammars, tree patterns, source-to-source rewrites)ActiveDSLs represented as abstract syntax treesDSL instanceWell-formed output language code fragmentsAny programming language (proven for C, C++, Java, C#, PHP, COBOL)
gSOAPC / C++WSDL specificationsC / C++ code that can be used to communicate with WebServices. XML with the definitions obtained.
Microsoft Visual Studio LightSwitchC# / VB.NETActiveTierDatabase schemaComplete Silverlight application (Desktop or Web)
Pro*CInlineSQL in CC
ScriptcasePHP, JavaScriptActiveTierComplete application (Web/Mobile) and build or use the database schemaPHP, 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 RooJavaActiveTierJava and automatically introspected project metadataShell commandsJava (Full Web Application including Java source, AspectJ source, XML, JSP, Spring application contexts, build tools, property files, etc.)
T4PassiveT4 Template/Text FileAny text format such as XML, XAML, C# files or just plain text files.
UmpleUmple, Java, Javascript, PHPActiveTierUmple code embedding one or more of Java, Python, C++, PHP or RubyPure Umple code describing associations, patterns, state machines, etc. Java, Python, C++, PHP, Ruby, ECcore, Umlet, Yuml, Textuml, JSON, Papyrus XMI, USE, NuXMV, Alloy
Velocity apacheJavaPassive [2] TierTemplatesJava driver codeAny text
Yii2 GiiPHPActiveTierDatabase schema, user input, source codeSkeleton application, CRUD applications

Notes and References

  1. Web site: Code Generation Network - Frequently Asked Questions . www.codegeneration.net . 15 January 2022 . https://web.archive.org/web/20071024163645/http://www.codegeneration.net/tiki-index.php?page=FrequentlyAskedQuestions . 24 October 2007 . dead.
  2. Web site: Open source tools are available that make the task of developing passive code generators all but trivial. One such offering is Velocity from the Apache Software Foundation . My.safaribooksonline.com . 2014-01-24.