x4GL compilers features compared
Evaluating x4GL products, vendors, and technologies
x4GL products by features tables:
4GL to Java migration services links list:
Individual products strengths & weaknesses:
One-On-One:
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.
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 | Java, ActiveX control | Java | |||||||||||
| Bitmap based thin GUI client | Citrix/WTS only |
? | ? | ? | ? | |||||||||
| OS independent GUI - access to widget set | ? | Yes/Limited | ? | ? | Motif only | Java | Java | |||||||
| MS Windows native GUI widgets | ? | |||||||||||||
| Java thin GUI | ||||||||||||||
| Java GUI as applet | 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 | ||||||||||||
| Emulation of 4GL UI in HTML (menu, forms...) | Planned | |||||||||||||
| Adobe Acrobat (PDF) report generation | 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 | ? | |||||||||||||
| Can compile as Apache module | ||||||||||||||
| P-code compiler | Perl-Parrott / Native (Alpha) | Java Byte-code | ? | Using i4GL compiler | ||||||||||
| C# generation | In works | |||||||||||||
| Java generation | In works | ? | ||||||||||||
| Perl-code generation | ||||||||||||||
| 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 | Output only - Separate C/S reporting tool, can take output from 4gl PRINT | ? | ? | ? | ||||||||||
| 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 | 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) | 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 | ? | |||||||||||||
| 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 | ? | ? | ? | |||||||||||
| Access to GPL databases | PostgreSQL | ? | PostgreSQL, MySQL (beta, native) | PostgreSQL, MySQL (with limitations) | ||||||||||
| LDAP support | ? | ? | ? | ? | ||||||||||
| 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) | Win only | Integration with MS Visual studio .NET (option) | ? | ? | |||||||
| Debugger | via C only | C only | ? | C only - UNIX Debug in beta | ? | ? | ? | |||||||
| Application Generator (from templates) | ? | |||||||||||||
| Documentation tools | Doc4GL (Can be used with other x4GLs too) | ? | ||||||||||||
| CASE tools | (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 | 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 |
? | ||||||||||||
| Multiple concurrent database connections | Multiple sessions/USE SESSION |
? | ? | |||||||||||
| DEFINE constant | ? | |||||||||||||
| Themable GUI output |
Limited TCL/TK client only | ? | Some ActiveX based controld on Win client only | |||||||||||
| IMPORT DATATYPE |
MPZ (large integer support) | ? |