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
Acceleo Obeo cross-platform (Java / Eclipse) 2006 3.5.0 / 2014-06-10 Eclipse Public
Accelerator Surround Technologies Windows (C# / .NET) 2007 3.0 Proprietary
actifsource actifsource GmbH cross-platform (Java / Eclipse) 4.6.3 / 2011-08-09 Eclipse Public
Agile Platform OutSystems Windows 2001 5.1.1.0 / 2010-11-30 Proprietary
Apeel PHP Code Generator Pro City Business Logic Windows 2001 11.03b / 2011-09-04 Proprietary
AtomWeaver Isomeris Windows 2010 1.3.1 / 2012-02-20 Proprietary
Click2Code onlinewebtech windows 2013 1.0 / 2013-09-20 Proprietary
projecz.com Application Builder projecz.com PHP 2014 1.0 / 2014-03-20 Proprietary
Code4Green-a ultimate code generation tool Code4Green Web - Free Online 2009 1.0 Proprietary
Code-g flexible pattern based code generator Abstractmeta Java 0.30 / 2012-05-20 Apache License 2.0
CodeBhagat CodeBhagat LLC Windows (C# / .NET) 2014 1.0 / 2014 Proprietary
CodeCooker CodeCooker Web - Free Online 2014 0.5.1 / 2014-07-02 Proprietary
CodeFluent Entities SoftFluent Windows 2005 762 - 2014 Proprietary
CodeGenerator360 Windows (Online Tool) 2011 Proprietary
Code generation plugin for Astah UML Community José Carreno cross-platform 2014 1.3.0_GA / 2014-05-08 Free
Code OnTime Code On Time LLC Windows (c# / .NET) Proprietary and Subscription
CodeSmith Generator CodeSmith Tools Windows 2004 6.5.3 / 11-25-2012 Proprietary
Cog Ned Batchelder cross-platform (Python) 2.1 MIT
DMS Software Reengineering Toolkit Semantic Designs Windows 2001 2.0 Proprietary
EntiPro EntiCraft Windows Proprietary
Flowchart to Code Athek Windows 2013 1.0 / 2013-01-10 Proprietary
GenerateXY DotXY Windows 5.1 Proprietary
Genshi (templating language)[1] 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 / 2013-12-18 [2] Proprietary
JCodeBox cross-platform (Java) Proprietary
Jinja (Template engine)[3] Pocoo team cross-platform (Python) 2.1.1 BSD
Kid (templating language)[4] Ryan Tomayko cross-platform (Python) 0.9.6 / 2006-12-20
kiss! ® C#, VB.Net and SQL Script Generator Cove Bay Software Limited Windows 2013 1.0.1.0 / 2014-01-12 Proprietary
LayerCake Generator Delphin Habierre Windows 2013 2.5.2 / 2014-07-25 Proprietary and OpenCode
Mako Michael Bayer cross-platform (Python) 0.2.3 / 2008-05-12 MIT
M-Power mrc cross-platform (Java) 2004 Proprietary
Microsoft Visual Studio LightSwitch Microsoft Windows 2011 2011-07-26 Proprietary
MinuteProject (Velocity, DB, WSDL) Florian Adler[5] cross-platform (Java) 2004 0.8.3 / 2013-06-05 Apache License 2.0, GPL
MOLGENIS Morris Swertz[6] cross-platform (Java) 2004 3.3 LGPLv3
NoORM Ulf Pietruschka cross-platform (Java) 2013 1.0.0 / 2013-11-19 Apache License 2.0
OfMS.Ice – T4 Text Template Generator [7] Olaf Meyer Windows ( .NET ) 2012 1.4 / 2012-05-30 Eclipse Public
OpenMDX cross-platform (Java) 2004-01-28 2.4 / 2009-03-26 BSD
PHPRunner Xlinesoft Windows 2003 5.3 / 2010-10-15 Proprietary
Radarc Icinetic Cross-Platform (C#, Java, Objective C) 2012 4.2.0 / 2014-02-04 Proprietary
Reegenerator Kodeo Limited Windows (C#, VB.Net) 2010 2.0.5 / 2014-01-26 Proprietary
ribosome Martin Sustrik cross-platform (Ruby) 2014 1.7 / 2014-07-02 MIT
T4 Microsoft Windows 2005 2010 Proprietary
Telosys Tools OW2 cross-platform (Java : Eclipse) 2011 2.1.0 / 2014-04-02 Eclipse Public License
Umple University of Ottawa cross-platform (Java / Eclipse) 2010 1.17 / 2013-07-05 MIT
Velocity apache[8] Apache Software Foundation cross-platform (Java) 1.6.2 / 2009-03-19 Apache License 2.0
XACT X4MR Applied Conversion Technologies Inc Virtual DOS 1994 3 / 1997-08-01 Proprietary
Xomega.Net for Visual Studio Xomega.Net Windows 2010 4.0 / 2013-06-01 Proprietary
ZumCoder MDD/MDA/ Template Based Agen Consultoria – Adilson de ALmeida Pedro Web – Online 1.0 Proprietary

Technical[edit]

Name Implementation Language Active; Passive [9] Model[10] 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.
Accelerator C# Active Tier Database schema XML Schema, Templates and configuration tables C#, WPF, Silverlight, ASP.NET, WCF, WebServices(complete application)
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
any<code/> Java Active Tier User-defined models Custom templates (Groovy) Any textual language, depends on your template code. Built-in directives in Java, JPA, Objective-C added since v1.2.0
Appsroller Web Form Generator Javascript Active Web Tier Any code Javascript
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
Click2Code for windows VB6 Active Mixed User-defined Templates Templates User Interface
Code4Green C#, VB.net, ASP.net, SharePoint, SQL, JAVA, classical ASP, HTML, XML Active[11] 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.
CodeCooker Javascript Active Mixed UML C#, C++ and CoffeeScript classes
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.
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
Cog Python Active[12] 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
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)
GenerateXY Java Active Tier User-defined Models XML, CSV, Java, ... (extensible) Any textual language, predefined modules for Java, HTML, XML
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
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.)
Isis Java pojos Active [13] Mixed Isis Java code: Domain Design optionally JSON (for layout hints) Java code: Apache Wicket JAX-RS DataNucleus Apache Shiro
Jostraca Java Active [14] Tier Any code Java Any code; Java, JSP
JCodeBox Java Tier Java Java (Full Web Application)
kiss! ® C#, VB.Net, SQL Active Mixed Database as Data Model Templates C#, VB.Net classes, SQL, Schema Information as comma separated values (*.cs, *.vb, *.sql, *.csv)
LayerCake Generator C#, SMO API, T4 Templating Active Mixed Microsoft SQL Server Database schema Templates Visual Studio Solution, SOA Architecture, Application Layers
Microsoft Visual Studio LightSwitch C# / VB.NET Active Tier Database schema Complete Silverlight application (Desktop or Web)
MinuteProject Java code Active; Passive Mixed Database WSDL config, velocity files Java code: ORM entities, DAO, Webservices, Full application with proven framework stack: JPA
NoORM Java Active Mixed Database schema Templates Java classes (Persistence layer with proxy classes for database tables and views, DML code and services for stored procedures and declared queries with support for Oracle)
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
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...)
Reegenerator C#, VB.Net, XSD Active Mixed User-defined Templates Database, XSD, XML, C# or VB.Net Code C#, VB.Net, SQL, Any other textual language
ribosome Ruby Active Mixed XML, JSON, YAML Code generation script in Ruby any text document(s)
Scalagen Scala Passive Tier Database Scala ORM code
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.
TLGen Java Active Mixed Database schema (Oracle, MySQL, PostgresSQL), XML (domain model UML exported XML) Import from UML domain model (XML), Import from DB Java source classes (EJB3 persistence layer, data classes with interfaces. Session Beans, Entity Managers and Entity Bean source classes. Message Beans. Web Services (SOAP, REST). JUnit Test classes.). DB SQLs
Umple Java Active Tier Java, C++, PHP, Ruby with embedded Umple code Pure Umple code describing associations, patterns, state machines etc. Java, C++, PHP, Ruby, ECcore, Umlet, Yuml, Textuml, JSON, Papyrus XMI
Velocity apache Java Passive [15] Tier Any code Java Java
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
XDocLet Active[16] Munger JavaDoc EJB support beans
Xomega.Net for Visual Studio C#, XSL, XSD Active Mixed User-defined models, XML Templates, Import from DB User Interface (ASP.NET, WPF, Silverlight), Service Layer (WCF), Business Layer (EF), DAL, DB scripts, Config files, VS project files, Xomega Framework objects
ZumCoder/MDA PHP Passive[17] 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

References[edit]

  1. ^ "Great tutorial". Genshi.edgewall.org. Retrieved 2014-01-24. 
  2. ^ "Version History". Ironspeed.com. Retrieved 2014-01-24. 
  3. ^ "Welcome | Jinja2 (The Python Template Engine)". Jinja.pocoo.org. Retrieved 2014-01-24. 
  4. ^ http://www.kid-templating.org
  5. ^ minuteproject - home. Minuteproject.wikispaces.com. Retrieved on 2013-08-10.
  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.; Jansen, Ritsert C. (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". Omsice.codeplex.com. Retrieved 2014-01-24. 
  8. ^ "Apache Velocity Site – The Apache Velocity Project". Velocity.apache.org. Retrieved 2014-01-24. 
  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. "[dead link]
  10. ^ Type based on input: Code munger, Inline code expander, Mixed code generator, Partial class generator, Tier generator[dead link]
  11. ^ The ultimate Code Generation Tool. Code4Green.com. Retrieved on 2013-08-10.
  12. ^ 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.
  13. ^ Isis does not generate any code, the metamodel is used only at runtime
  14. ^ Jostraca should be used primarily for active code generation.[dead link]
  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". My.safaribooksonline.com. Retrieved 2014-01-24. 
  16. ^ Aslak Hellesoy (2005-05-05). "MockDoclet is the base of XDocLet"MockDoclet is an active code generation tool for automatically generating mock objects"". Xdoclet.sourceforge.net. Retrieved 2014-01-24. 
  17. ^ Online code generator for C#, PHP, JAVA, SQL, MYSQL. Zum Coder. Retrieved on 2013-08-10.