Comparison of code generation tools
From Wikipedia, the free encyclopedia
|
|
This article may require cleanup to meet Wikipedia's quality standards. The specific problem is: This article needs attention to proper formatting.. (April 2013) |
| 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]
- ^ 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.
- ^ Great tutorial
- ^ Version History
- ^ Welcome | Jinja2 (The Python Template Engine)
- ^ http://www.kid-templating.org
- ^ 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.
- ^ Very fast in-process T4 text template generator
- ^ Apache Velocity Site – The Apache Velocity Project
- ^ "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. "
- ^ Type based on input: Code munger, Inline code expander, Mixed code generator, Partial class generator, Tier generator
- ^ [1]
- ^ [2]
- ^ 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.
- ^ Jostraca should be used primarily for active code generation.
- ^ 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.
- ^ MockDoclet is the base of XDocLet"MockDoclet is an active code generation tool for automatically generating mock objects"