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.37.0 2026-04-18 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 [1] Model[1] 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 [2] Tier Templates Java driver code Any text
Yii2 Gii PHP Active Tier Database schema, user input, source code Skeleton application, CRUD applications

References

  1. ^ a b "Code Generation Network - Frequently Asked Questions". www.codegeneration.net. Archived from the original on 24 October 2007. Retrieved 15 January 2022.
  2. ^ "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. Retrieved 24 January 2014.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.