x4GL compilers features compared

Evaluating x4GL products, vendors, and technologies   


Table of contents

Introduction

x4GL products by features tables:

4GL to Java migration services links list:

Individual products strengths & weaknesses:

One-On-One:

Various notes

About the author

Credits


Introduction

x4GL technology (where x stands for various vendors implementations of I-4GL product) evolved significantly from the days when I-4GL was the proprietary and legacy technology, as well as the only implementation of the I-4GL compatible language available. Significant number of x4GL vendors emerged in last 10 years, including vendors making compatible products, extending functionality, providing services including migration and conversion, and even the OpenSource project with purpose of promoting and enhancing x4GL technology was established.

This document was created to enhance the visibility of all this activity, and make it easier for a vendor to evaluate its future involvement with x4GL technology. Primary purpose is to collect in one place sufficient information about various available x4GL compatible products, vendors and services, for the reader to learn what is available and what functionality to expect. It is not to be used as a sole source of information for this purpose.

All features and other characteristics of vendors and products where evaluated from the perspective of Business Related, Database Oriented applications development environments. Naturally, needs of different developments environments, even within same organization, are different, and changing. Therefore, no scoring or other measurement method was used.

The first part, the features tables, is mostly dry facts; the following sections, however, are much more "opinionated" by necessity. Since the choice was made not to use scoring, it was the only way to emphasize and contrast various strengths or weaknesses of products. As all opinions are by definition personal, always evaluate them in the context of your specific needs and resources. Hopefully, some will be useful, some thought provoking, but some will not apply well to your environment. Cevat Emptor.

This document assumes some level of familiarity with x4GL technology, but one is not expected to be a x4GL developer to benefit from it. Almost all technical details are concentrated in "x4GL products by feature" tables, and most other information discusses business, process and management issues. Therefore, the target audience will range from corporate technology decision makers all the way to development team leaders and development project managers, and curious developers.

Disclaimer:

All reasonable effort was made to ensure that information provided was correct. However, some information had to be condensed because of limited space, to simplified answers, and some vendor claims where not verified. Information is believed to be accurate at the time if the writing (June 2005), however, no responsibility can be accepted for possible errors or omissions. Corrections will be gratefully received.


x4GL products by features

General

Aubit

Hy4gl IBM Informix 7.3 IBM EGL (3) 4Js BDL 3.10 / D4GL 3.10 4Js Genero (also marketed by IBM) Querix  Plexus XDP AD32 Supra-4GL Etrus SuperNova (1) ProData proBuilder ArtInSoft Freedom Infoflex (2)
Description OpenSource GNU/GPL compiler with many features Experimental GNU/GPL compiler with PostgreSQL only as database and CUI mode only. Compiler that started it all. Character only, Informix & DB/2 DB only. Fusion of several 4GLs, IBM's answer to Java productivity limitations and i-4GL migration path, focused on web apps development First generation 4Js 4GL product, high compatibility and proven performance Second generation 4Js product, current technology leader among commercial products Strong focus on Oracle migration, many features Focus on image processing, derived form Informix 4GL Focus on IBM DB/2 migration, simple Java GUI client and .NET integration 4GL compiler and 4GL CASE Tools, plus 4GL to Java source converter I4GL Extender and integration product, uses I-4gl or 4Js compiler

Acquired by WRQ, Inc.

4GL to Java translation  4GL to Java translator service 4GL-like, "I-SQL on steroids" from company that makes Informix SE database clone.
Source code available ?
GNU/GPL or other OpenSource license
Per-developer licensing ? (Some versions are currently free) ? ? ? ? ? Porting service only
Per-user (runtime) licensing ? ? (Some versions are currently free) ? ? ? ? ?
Commercial support Out of business (confirmed) Product no longer available (?) ?
Back to top...    

User Interface

Aubit Hy4gl Informix 7.3 IBM EGL 4Js BDL 3.10 / D4GL 3.10 4Js Genero Querix  Plexus XDP AD32 Supra-4GL Etrus SuperNova (1) ProData proBuilder ArtInSoft Freedom Infoflex (2)
Character (terminal) mode
Message based thin GUI client In works TCL/TK, Java Java, ActiveX control Java, VB Java          
Bitmap based thin GUI client Using VNC, X, or other standard remote GUI display (server not integrated) Citrix/WTS only Citrix/WTS only ? ? ? ?
OS independent GUI - access to widget set GTK+ ? TCL/TK and Java - partial Yes/Limited ? ? Motif only Java Java
MS Windows native GUI widgets ?
Java thin GUI Using VNC or X Java clients
Java GUI as applet Using VNC or X Java clients N/A ? ? ? N/A
Full control over GUI widgets from 4GL code (Integrated - non client GUI) N/A N/A ? Limited Client access to ActiveX and Java Beans, but not form 4gl code ? ? ? ? N/A
UI screen format Block (.per) & Glade Block only (.per) Block only (.per) Converted .per, Java Server Faces Block only (.per) Block, but gets stripped to XML  format that is  then customizable Block only (.per) Block only (.per)            
HTML interface CGI only, manual CGI-BIN, not  supported Using servlet
Emulation of 4GL UI in HTML (menu, forms...) Planned
Adobe Acrobat (PDF) report generation Both built-in and via transformation (LogicalReports) Via Jasper Reports Via XML Publication System Via separate report transformation tool
Automatic HTML reports formatting ? Limited ? ?
Back to top...    

Compiler features

Aubit Hy4gl Informix 7.3 IBM EGL 4Js BDL 3.10 / D4GL 3.10 4Js Genero Querix  Plexus XDP AD32 Supra-4GL Etrus SuperNova (1) ProData proBuilder ArtInSoft Freedom Infoflex (2)
Can run as CGI in web servers Not supported ?
Can compile as Apache module
P-code compiler Perl-Parrott / Native (Alpha) Java Byte-code ? Using i4GL compiler Java Java
C# generation In works      
Java generation In works ?
Perl-code generation (Beta)
COBOL generation iSeries & zSeries only        
C-code generation No longer supported ? No longer supported ? Using i4GL compiler
Image query and processing
XML mapping to/from 4GL arrays ? From, but not to Exchange format for ThinStructure
Compiler generates resources (metrics, tables used, functions declared,...) map information
XML parsing and output  support IksEmEl, SXML and native Output only - Separate C/S reporting tool, can take output from 4gl PRINT ? ? ? Java Java
Back to top...    

Middleware / interfaces

Aubit Hy4gl Informix 7.3 IBM EGL 4Js BDL 3.10 / D4GL 3.10 4Js Genero Querix  Plexus XDP AD32 Supra-4GL Etrus SuperNova (1) ProData proBuilder ArtInSoft Freedom Infoflex (2)
IM support Jabber (and most proprietary protocols via Jabber gateways) Via Java calls ? ?
XML based middleware RPC-XML via Jabber Via Java calls SOAP in CLI-HTML V3 - not documented SOAP
SMTP/POP3 send/receive built-in (email) no language bindings J2EE libraries, but no language bindings ?              
IPC on Windows - DDE/OLE - from 4gl code DDE - not compatible with DDE in MS Office after Office 98 release. ? Client have access to Active X which is OLE based - but not from 4gl code. DDE ? OLE
App partitioning - Middleware Sun RPC,CORBA(Alpha),IBM MQ and  Jabber (JAM) Via Java calls ? Cobra,  DCE, RPC Java Java
Role separation n-tier 3-tier ? 3-tier 3-tier 3-tier ? ? Java Java
Platform / OS support All with GNU C All with GNU C UNIX, Many Windows, Linux, iSeries, zSeries, others planned Many Many Limited Windows only ? ? All with JVM All with JVM ?
Back to top...    

Database interface

Aubit Hy4gl Informix 7.3 IBM EGL 4Js BDL 3.10 / D4GL 3.10 4Js Genero Querix  Plexus XDP AD32 Supra-4GL Etrus SuperNova (1) ProData proBuilder ArtInSoft Freedom Infoflex (2)
Can load database support on the fly ? ?
Run-time emulation/translation of Informix proprietary RDBMS&SQL features on non-Informix databases Oracle and others (?) via separate server ("Multi Database Connectivity") Informix / Oracle / DB/2 ?
ODBC drivers support Via JDBC/ODBC bridge Beta, MS SQL server only ? Alpha, MS SQL server only ? Via JDBC bridge
ODBC manager support unixODBC, iODBC, OpenLink, Windows ? ?
Native db support PostgreSQL, Informix, others via config files PostgreSQL Informix, DB/2 in works ? All supported - many All supported - many  Informix, Oracle Informix Informix, Oracle Informix, Oracle, DB/2 Informix, and own SE clone
Multiple databases and/or DB systems from one session / via ODBC only ? ODI ODI  ? ? JDBC
Access to GPL databases PG, others via ODBC PostgreSQL ? PostgreSQL, MySQL (beta, native) PostgreSQL, MySQL (with limitations) JDBC
LDAP support ? ? ? ? Java
Back to top...    

Tools

Aubit Hy4gl Informix 7.3 IBM EGL 4Js BDL 3.10 / D4GL 3.10 4Js Genero Querix  Plexus XDP AD32 Supra-4GL Etrus SuperNova (1) ProData proBuilder ArtInSoft Freedom Infoflex (2)
IDE CUI (r4gl clone), GUI (Glade) alpha, integration with jEdit & GWD IDEs CUI WebSphere Studio (Eclipse) Not supported, Java Windows only Win only Integration with MS Visual studio .NET (option) ? ?
Debugger via C only C only ? not supported C only - UNIX Debug in beta ? ? ?
Application Generator (from templates) FGLGEN ? separate product separate product
Documentation tools Doc4GL (Can be used with other x4GLs too) ?              
CASE tools FGLBLD (Rational?)
Back to top...    

Compatibility

Aubit Hy4gl Informix 7.3 IBM EGL 4Js BDL 3.10 / D4GL 3.10 4Js Genero Querix  Plexus XDP AD32 Supra-4GL Etrus SuperNova (1) ProData proBuilder ArtInSoft Freedom Infoflex (2)
I-4GL 7.2 compatibility Converted to EGL, limited ? ?
I-4GL 7.3 compatibility Converted to EGL, limited Partial ? ? ? ?
Plexus extensions  compatibility menu and form handlers
4Js BDL extensions  compatibility partial Converted to EGL, limited
Enhancements to I-4GL language syntax N/A Not x4GL ? ? ? N/A
OO extensions Alpha ? ? ?
Embedded C code ? ? ? ? ?
Reports "Logical Reports": text, PDF, XML, CSV transformations text text Jasper Reports (XML) text text + PDF/XML via separate product text ?            
Key remapping ? ? ?    
External C code  call C from 4GL only ? ? ? ?
Back to top...                            

Productivity features

Aubit Hy4gl Informix 7.3 IBM EGL 4Js BDL 3.10 / D4GL 3.10 4Js Genero Querix  Plexus XDP AD32 Supra-4GL Etrus SuperNova (1) ProData proBuilder ArtInSoft Freedom Infoflex (2)
Associative arrays ? ?              
Dynamic arrays 4Js compatible latest version only Currently not translated ?              
Testing hooks Can be scripted, scripted screen dumps ?              
SQL...END SQL blocks for dialect independent SQL ? ? ?              
Shared library function calls/Packages invoked on the fly ? JNI              
IN/Exists for 'IF' etc - not just for use within SQL statements

 

if exists (select * from sometab where  company_code=lv_code) then
error "Company already exists!"
end if

?              
Multiple concurrent database connections Multiple sessions/USE SESSION
 
? ?              
DEFINE constant ?              
Themable GUI output
 
via gtkrc Limited TCL/TK client only ? Some ActiveX based controld on Win client only              
IMPORT DATATYPE
 
MPZ (large integer support) ?