Comparison of code generation tools

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Product Creator Platform First public release Latest stable version Software license Open source
Radarc Icinetic Windows 2012 3.5.0 / 01-15-2013 Proprietary No
Code4Green-a ultimate code generation tool Code4Green Web - Free Online 2009 1.0 Proprietary No
CodeFluent Entities SoftFluent Windows 2005 691 - 2013 Proprietary No
CodeSmith Generator CodeSmith Tools Windows 2004 6.5.3 / 11-25-2012 Proprietary Mixed (Templates and Providers are open sourced).
ZumCoder MDD/MDA/ Template Based Agen Consultoria – Adilson de ALmeida Pedro Web – Online 1.0 Proprietary No
Acceleo Obeo cross-platform (Java / Eclipse) 2006 3.1.0 / 2011-06-23 Eclipse Public License Yes
Accelerator Surround Technologies Windows (C# / .NET) 2007 3.0 Proprietary No
GenerateXY DotXY Windows 5.1 Freeware No
actifsource actifsource GmbH cross-platform (Java / Eclipse) 4.6.3 / 2011-08-09 Eclipse Public License Yes
Agile Platform OutSystems 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.3.1 / 2012-02-20 Proprietary No
GNU AutoGen Bruce Korb Unix like, Apple, WinNT [1] 1998 5.14 / 2011-12-4 GPL Yes
CodeGenerator360 Windows (Online Tool) 2011 Freeware No
Code OnTime Code On Time LLC Windows (c# / .NET) Freeware and Subscription No
Cog Ned Batchelder cross-platform (Python) 2.1 MIT license Yes
DMS Software Reengineering Toolkit Semantic Designs Windows 2001 2.0 Proprietary No
EntiPro EntiCraft Windows Proprietary No
Genshi (templating language)[2] Edgewall Software cross-platform (Python) 2006-08-03 0.5.1 / 2008-07-09
Iron Speed Designer Iron Speed, Inc. Windows 2001 9.2.0 / 2012-10-04 [3] Proprietary No
JCodeBox cross-platform (Java) Proprietary No
Jinja (Template engine)[4] Pocoo team cross-platform (Python) 2.1.1 BSD Yes
Kid (templating language)[5] Ryan Tomayko cross-platform (Python) 0.9.6 / 2006-12-20
Mako Michael Bayer cross-platform (Python) 0.2.3 / 2008-05-12 MIT Yes
Microsoft Visual Studio LightSwitch Microsoft Windows 2011 2011-07-26 Proprietary No
M-Power mrc[disambiguation needed] cross-platform (Java) 2004 Proprietary No
MOLGENIS Morris Swertz[6] cross-platform (Java) 2004 3.3 LGPLv3 Yes
MyGeneration Windows Yes
OMS.Ice – T4 Text Template Generator [7] Olaf Meyer Windows ( .NET ) 2012 1.4 / 2012-05-30 Eclipse Public License Yes
OpenMDX 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 Microsoft Windows 2005 2010 Proprietary No
Umple University of Ottawa cross-platform (Java / Eclipse) 2010 1.12 / 2011-04-21 MIT license Yes
Velocity apache[8] Apache Software Foundation cross-platform (Java) 1.6.2 / 2009-03-19 Apache License 2.0 Yes
Code-g flexible pattern based code generator Abstractmeta Java 0.30 / 2012-05-20 Apache License 2.0 Yes
XACT X4MR Applied Conversion Technologies Inc Virtual DOS 1994 3 / 1997-08-01 Proprietary No

Technical [edit]

Name Implementation Language Active; Passive [9] Model[10] Typical input Other input Typical output
Radarc C# Active Mixed User-defined models, EDMX, XML Templates User Interface Layer, Services Layer, Business Logic Layer, Data Access Layer, Database, IoC, Test... (MVC, Windows 8, Windows Phone 8, Webforms, Azure...)
CodeFluent Entities C# Active Mixed User-defined models, Database schema Templates .NET classes, Persistence layers (Microsoft SQL Server, Oracle, PostgreSQL, MySQL), WCF Services, ASP .NET websites...
CodeSmith Generator C#, VB.NET, JavaScript Active Mixed Database schema (ADOX, DB2 zOS, ISeries, MySQL, Oracle, Postgre, SQL Anywhere, SQL Compact, SQL Server, SQLite, VistaDB), C# or VB.NET source code, Any meta data source.. E.G., Web Services, SharePoint, UML, XSD, XML, DBML, EDMX, JSON, HBM, HTML and more... Templates Any textual output such as C#, VB.NET, C/C++, XML, SQL, JSON, JavaScript, HTML, or any other plain text format.
ZumCoder/MDA PHP Passive[11] Mixed XSD, DBML, Database Schema(Mysql,SqlServer,PostegreSQL,SQLite),HTML forms,PHP class and (ZML "ZumCoder Model Language", a XML define structure Templates Any textual language, depends upon your template code, you can write your own template to outputs the language of your preference
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.
Accelerator C# Active Tier Database schema XML Schema, Templates and configuration tables C#, WPF, Silverlight, ASP.NET, WCF, WebServices(complete application)
GenerateXY Java Active Tier User-defined Models XML, CSV, Java, ... (extensible) Any textual language, predefined modules for Java, HTML, XML
actifsource 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 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
Code4Green C#, VB.net, ASP.net, SharePoint, SQL, JAVA, classical ASP, HTML, XML Active[12] Tier Code4Green - an online ultimate code generation tool with a green cause of plantation of trees on each 10,000 LOC Code in C#, VB.net, ASP.net, SharePoint, SQL, JAVA, classical ASP, HTML, XML Output determined by the selected language type. It is a plain text.
GNU AutoGen C Active Tier Autogen definitions (lists of key-value pairs or hierarchical data arranged like C structs), Autogen templates (fixed output plus inline macros for conditional or repetitive emission of code blocks or evaluation of Bourne shell 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 machines in C
Cog Python Active[13] Mixed 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 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.
Iron Speed Designer C# / VB.NET Active Tier Database schema CSS ASP.NET (Full application, including C# code, VB code, XML, Stored Procedures, etc.)
Jostraca Java Active [14] 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 Complete Silverlight application (Desktop or Web)
MyGeneration .NET
OMS.Ice – T4 Text Template Generator C# Active Mixed T4 text template, C# or VB C# partial classes Any textual output such as C#, VB, C/C++, XML, or any other plain text format
PHPRunner PHP/ASP/C#/VB.NET Active Tier Database schema 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 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 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
Appsroller Web Form Generator Javascript Active Web Tier Any code Javascript
Velocity apache Java Passive [15] Tier Any code Java Java
XDocLet Active[16] Munger JavaDoc EJB support beans
XACT X4MR C Passive Language_A Source,
Language_A-to-Language_B Transform Rules
CHILL, CMS2, FORTRAN, COBOL, JOVIAL, PASCAL, PL/1, PLM86 Compilable Language_B Source;
Application_A Documentation;
Application_B Documentation

References [edit]

  1. ^ GNU/Linux, BSD, Apple's OS/X, SVR4-5, HPUX, SCO OpenServer and Solaris. It is expected that it will work on any reasonably modern UNIX system with an ANSI-compliant C compiler. It also runs under WinNT, provided you have CygWin and Guile loaded.
  2. ^ Great tutorial
  3. ^ Version History
  4. ^ Welcome | Jinja2 (The Python Template Engine)
  5. ^ http://www.kid-templating.org
  6. ^ Swertz, Morris A.; de Brock, E. O. (Bert); van Hijum, Sacha A. F. T.; de Jong, Anne; Buist, Girbe; Baerends, Richard J. S.; Kok, Jan; Kuipers, Oscar P. et al. (2004). "Molecular Genetics Information System (MOLGENIS): alternatives in developing local experimental genomics databases". Bioinformatics 20 (13): 2075–83. doi:10.1093/bioinformatics/bth206. PMID 15059831. 
  7. ^ Very fast in-process T4 text template generator
  8. ^ Apache Velocity Site – The Apache Velocity Project
  9. ^ "Active generators build code that you should not modify or should only modify in specifically marked sections which are held safe during a re-generation cycle... Passive generators build code once and then it’s up to you to maintain the code long-run. "
  10. ^ Type based on input: Code munger, Inline code expander, Mixed code generator, Partial class generator, Tier generator
  11. ^ [1]
  12. ^ [2]
  13. ^ The output area for each generator (between the]]] and [[[end]]] lines) is deleted, and the output of running the Python code is inserted in its place.
  14. ^ Jostraca should be used primarily for active code generation.
  15. ^ 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.
  16. ^ MockDoclet is the base of XDocLet"MockDoclet is an active code generation tool for automatically generating mock objects"