informix4gl status

35
The Informix 4GL langage: Current status and evolutions roadmap Informix Tech Day 2012 Strasbourg, May 25th 2012 Eric Vercelletto, Begooden-IT Consulting

Upload: begooden-it-consulting

Post on 27-May-2015

308 views

Category:

Technology


0 download

DESCRIPTION

This presentation shows the perspective on the Informix 4GL langage? how it can be modernized; It also speals about replacement products

TRANSCRIPT

Page 1: Informix4gl status

The Informix 4GL langage: Current status and evolutions roadmap

Informix Tech Day 2012

Strasbourg, May 25th 2012

Eric Vercelletto, Begooden-IT Consulting

Page 2: Informix4gl status

Introduction

History of the Informix 4GL language

4gl in a nutshell

Evolution of 4gl in the marketplace

Why decisions makers want to throw it away Why 4gl programmers do not want to throw it away

Why user companies SHOULD NOT throw it away

Appearance of the x4gl family or 4gl clones

Result of migration to x4gl

X4gl as a central development platform? Are you crazy?

The new x4gl features in the upcoming pipeline

Agenda

Tech Day 2012

www.

Page 3: Informix4gl status

Introduction

History of the Informix 4GL language

4gl in a nutshell

Evolution of 4gl in the marketplace

Why decisions makers want to throw it away Why 4gl programmers do not want to throw it away

Why user companies SHOULD NOT throw it away

Appearance of the x4gl family or 4gl clones

Result of migration to x4gl

X4gl as a central development platform? Are you crazy?

The new x4gl features in the upcoming pipeline

Agenda

Tech Day 2012

www.

Page 4: Informix4gl status

Begooden IT Consulting is an IBM ISV company, mainly focused on Informix technology services.

It has been created in 2010, 24 years after I started implementing and using Informix solutions.

Our 15+ years experience within Informix Software France and Portugal helped us to acquire in depth product knowledge as well as solid field experience.

Our services include knowledge transfer on Informix engines technology, performance tuning, technical issue management and architecture assistance on staging and production environment.

We have also developed in 4GL, we have trained people in 4GL, we have written a 4GL Advanced Programming training manual for Informix Software, we have audited and provided enhancement recommendations for 4GL applications at critical Informix customers.

We are what one should call Big Fans of the 4GL language The company is based in Combrit, Finistère, France

Introduction

Tech Day 2012

www.

Page 5: Informix4gl status

Introduction

History of the Informix 4GL language

4gl in a nutshell

Evolution of 4gl in the marketplace

Why decisions makers want to throw it away Why 4gl programmers do not want to throw it away

Why user companies SHOULD NOT throw it away

Appearance of the x4gl family or 4gl clones

Result of migration to x4gl

X4gl as a central development platform? Are you crazy?

The new x4gl features in the upcoming pipeline

Agenda

Tech Day 2012

www.

Page 6: Informix4gl status

The Informix founders were Laura King and Roger Sippl, who created the c-isam access method in the early 80’s

They lauched a development system called Informer, featuring a form designer, a report writer and a query language. This was by 1983.

In 1985, they bet on a yet baby query language: SQL. They combine it with a structured programming language, mainly inspired from C, Pascal and Basic, using the form designer and the report writer. The database engine was embedded with the language: this is Informix 4GL 1.0.

This new language, ported on a wide range of unix flavors, immediately obtains a huge success.

In 1990, the bundle is split, separating the engine from the language. This is version 4.0, featuring a number of new and useful functions.

History of 4GL

Tech Day 2012

www.

Page 7: Informix4gl status

By 1993, 1994, new languages appear on the market, mainly running on Windows platforms. Their graphic User Interface immediately seduces a large number of developers and companies.

Informix made a port of 4GL on Windows in 1994, which had few success due to Windows memory limitations.

A slideware development tool called « o4gl » never reached to be launched HyperscriptTools, a real GUI language, was interesting, but totally

incompatible with Informix 4GL New Era has been launched in 1995: a beautiful object-oriented product, but

not 100% compatible with 4GL. Very few acceptance from the developpers comunity.

Mains reasons for this reject was too low 4GL compatibility, too abrupt change in the programming philosophy (OO) and also too late appearance on the market. Other languages were already occupying the marketplace (c++, VB …)

A very large majority of customers, happy with their applications, preferred to keep working with Informix 4GL, lowering considerably the priority of having a GUI in their application.

Object languages and GUI: Informix 4GL is getting old

Tech Day 2012

www.

Page 8: Informix4gl status

Introduction

History of the Informix 4GL language

4gl in a nutshell

Evolution of 4gl in the marketplace

Why decisions makers want to throw it away Why 4gl programmers do not want to throw it away

Why user companies SHOULD NOT throw it away

Appearance of the x4gl family or 4gl clones

Result of migration to x4gl

X4gl as a central development platform? Are you crazy?

The new x4gl features in the upcoming pipeline

Agenda

Tech Day 2012

www.

Page 9: Informix4gl status

4GL is an old language, but this does not mean it is useless It has been originally designed to build efficiently business application, reduce

development time and maintenance time It is based on integration of forms files and source modules containing procedural

instructions, embedded SQL statements and a powerful report writer. At first glance it looks like Pascal, C and Basic The source modules handle all the program logic, variables define and assignements

including screen / forms IO, loops, tests, and all a procedural programming language contains.

The application opens windows based on the forms. It can open virtually any number of windows.

The form files map directly forms fields with table columns, or use « form-only » fields to be handled by application code

The source module map the tables columns and the form fields with the program variables.

A program can contain one or many source code modules, in order to organize the application and take full benefit of reusable code (function libraries).

4GL features a very complete interactive debugger If any 4GL function is missing, the developer can build his own low-level library

functions using C language. No limit at all 4GL is a real programming language, not a demo or proof of concept builder.

Informix 4GL in a nutshell

Tech Day 2012

www.

Page 10: Informix4gl status

Form fields, table colums and program variables are tightly coupled in order to reduce code size

Any alteration in the table schema just needs to recompile the program and/or the forms to apply the alteration. No need to modify the source code

The « BY NAME » attributes allows easy screen IO coding, by avoiding to write all fields and variables names

The « DEFINE LIKE » instruction define variables with the same type as in the tables

The « RECORD LIKE » attribute defines a variable record ( structure) as defined in the table.

Arrays or arrays of records variables can be used

No revolution, just raw efficiency

Tech Day 2012

www.

It

Page 11: Informix4gl status

INPUT/INPUT BY NAME handles the IO between the program variables and the form fields. If a record is defined like the image of the form fields, no need to name all components, just INPUT BY NAME record.*

Else use INPUT variable FROM form field.

Same mechanism for DISPLAY

INPUT handles events ( BEFORE FIELD, AFTER FIELD, BEFORE INPUT …) so that code can be invoked at this time

INPUT ARRAY does the same for ARRAY variables, and has and additional list of specialized events.

CONSTRUCT BY NAME is used to match form fields to program variables, in order to construct totally ad-hoc queries (i-e query any field in the form, with use of metacharacters if needed).

MENU allows to build powerful dynamic menus

Some powerful instructions

Tech Day 2012

www.

Page 12: Informix4gl status

SQL is obviously fully embedded in 4GL.

Variables at set with SELECT INTO variable…

INSERT INTO table ( columns list) VALUES ( variables list)

Same principle for all the other SQL statements

All the high level transaction and integrity functionality have always been supported, required for professional applications.

Queries can be prepared, making them totally dynamically programmable(ie build a query from scratch according to application workflow)

Queries status is easy to check after completion ( status variables). The sqlca structure also gives full detail on query completion

Full SQL integration

Tech Day 2012

www.

Page 13: Informix4gl status

The REPORT function is originally used to organize data in order to format reports to files , printers or even pipe to another program.

It defines the source of the data, determines the data layout in the report and the target of the data.

It also organizes the data by using powerful data grouping features, which is extrememy efficient and useful for batch programs.

Based on the ORDER BY spec, input data can be ordered and group on an infinite number of levels. BEFORE GROUP and AFTER GROUP events handle the group breaks for this variable, and use GROUP SUM(variable), GROUP MIN(variable) and all the aggregate functions.

Great feature for invoice calculations and this kind of batch programs

Let 4GL do the calculations for you, in a much safer way

The under-used Report Writer

Tech Day 2012

www.

Page 14: Informix4gl status

Introduction

History of the Informix 4GL language

4gl in a nutshell

Evolution of 4gl in the marketplace

Why decisions makers want to throw it away Why 4gl programmers do not want to throw it away

Why user companies SHOULD NOT throw it away

Appearance of the x4gl family or 4gl clones

Result of migration to x4gl

X4gl as a central development platform? Are you crazy?

The new x4gl features in the upcoming pipeline

Agenda

Tech Day 2012

www.

Page 15: Informix4gl status

In the mid 90’s, Informix 4GL was proud to be the second language used after C, used to build business applications

Many companies worldwide have built their critical and non critical applications upon Informix 4GL

Many of those applications , some of them deployed in the 80’s are still running nowadays

The 4GL language had very very few remarkable new functionality since the version 6, thus demotivating decision makers for new projects.

IBM acquisition also cast an evil spell on the language popularity

In the meanwhile, demand for a graphic user interface has been growing a lot and 4GL did not provide an answer for that

Evolution of 4gl in the marketplace

Tech Day 2012

www.

Page 16: Informix4gl status

Introduction

History of the Informix 4GL language

4gl in a nutshell Evolution of 4gl in the marketplace

Why decisions makers want to throw it away Why 4gl programmers do not want to throw it away

Why user companies SHOULD NOT throw it away

Appearance of the x4gl family or 4gl clones

Result of migration to x4gl

X4gl as a central development platform? Are you crazy?

The new x4gl features in the upcoming pipeline

Agenda

Tech Day 2012

www.

Page 17: Informix4gl status

Informix engines and languages have been harassed by the competition after IBM acquisition, saying Informix was dead.

The Informix name had totally disappeared from the media, and if it is no more in the media, it is no more good.

4GL is not beautiful because it is text based, and having a sexy application layout is critical to show to the management

4GL is old technology: any old technology is not good anymore.

I take a risk in keeping an old technology, I don’t take a risk by adopting a new technology: my management will approve this.

New development tools are cheap, or free, thus re-building an application is easy and cheap.

Why decision makers want to throw 4GL away

Tech Day 2012

www.

Page 18: Informix4gl status

Because the 4GL application does the job, has no bugs and runs fast.

Because its matches perfectly the functional requirements of the company

4GL is easy and quick to learn , plus easy to teach to new colleagues

4GL sourcecode is easy to read and to understand at first glance. Due to this, application maintenance code is low.

4GL is easy and fast to troubleshoot: problems are quickly identified and solved

4GL’s development productivity is high: few lines for much functionality.

4GL is versatile, it is a real language, not a toy used for demos

Why 4gl programmers don’t want to throw 4GL away

Tech Day 2012

www.

Page 19: Informix4gl status

Because its matches perfectly the functional requirements of the company

Because the 4GL application does the job, has no bugs and runs fast.

Because the dev team is expert in 4GL and has an important capital of best practices.

Because re-developping the application in another language will require a lot of additional testing, and reaching the same level of performance and reliability may take years

Why user companies SHOULD NOT throw it away

Tech Day 2012

www.

Page 20: Informix4gl status

Because the development team has an in-depth understanding of the company’s way of working.

Changing the dev team may result in losing functionality knowledge.

Changing language will result in temporary or not loss of productivity during the learning process, plus a long time to acquire equivalent skills level.

Because generally the majority of the end-users are happy with the application. They don’t really care in having colors and graphic layout.

The risk is important, and the real gain may be a loss. Many projects of that nature fail or get low user adoption

Why user companies SHOULD NOT throw it away

Tech Day 2012

www.

Page 21: Informix4gl status

Introduction

History of the Informix 4GL language

4gl in a nutshell Evolution of 4gl in the marketplace

Why decisions makers want to throw it away

Why 4gl programmers do not want to throw it away

Why user companies SHOULD NOT throw it away

Appearance of the x4gl family or 4gl clones Result of migration to x4gl

x4gl as a central development platform? Are you crazy?

The new x4gl features in the upcoming pipeline

Agenda

Tech Day 2012

www.

Page 22: Informix4gl status

This critical tensions between decision makers , developpers and end-users community gave birth to Informix-4GL clones in order to fill the vacuum

Informix, then IBM did not want to invest anymore in development tools development

Querix released their first 4GL compatible compiler for Windows in 1996. Although confidential, the technology went beyond Informix’s, providing a stable runner on Windows for Informix 4GL

By 1998, Fourjs appeared on the marketplace by signing an OEM agreement with IFMX, proving a 99% compatible compiler.

In 2001, the Aubit 4GL project is released, probably as a 2nd level consequence of a retro-engineering project of a 4GL application at a big Informix Customer in Southern (I was there, I knew about it years after). Aubit took the open source path.

Appearance of the x4gl family or 4gl clones

Tech Day 2012

www.

Page 23: Informix4gl status

Introduction

History of the Informix 4GL language

4gl in a nutshell Evolution of 4gl in the marketplace

Why decisions makers want to throw it away

Why 4gl programmers do not want to throw it away

Why user companies SHOULD NOT throw it away

Appearance of the x4gl family or 4gl clones

Result of migration to x4gl x4gl as a central development platform? Are you crazy?

The new x4gl features in the upcoming pipeline

Agenda

Tech Day 2012

www.

Page 24: Informix4gl status

This critical tensions between decision makers , developpers and end-users community gave birth to Informix-4GL clones in order to fill the vacuum

Informix, then IBM did not want to invest anymore in development tools development

Querix released their first 4GL compatible compiler for Windows in 1996. Although confidential, the technology went beyond Informix’s, providing a stable runner on Windows for Informix 4GL

By 1998, Fourjs appeared on the marketplace andsigned an OEM agreement with IFMX, proving a 99% compatible compiler.

In 2001, the Aubit 4GL project is released, probably as a 2nd level consequence of a retro-engineering project of a 4GL application at a big Informix Customer in Southern (I was there, I knew about it years after). Aubit took the open source path.

Appearance of the x4gl family or 4gl clones

Tech Day 2012

www.

Page 25: Informix4gl status

The main effect of a 4gl migration to x4gl is to recompile an Informix 4GL application, have zero or near zero errors, and present the application on a graphic client, that can run an a large number of platforms.

The source code must run without modification on any of the supported graphic clients, with no code dependency.

It usually involves a three-tier architecture: DB Server, Application Server and Client

First level migration is supposed to have the application working on a basic GUI in one shot.

Second level involves form and/or source code modifications in order to beautify the human interface layout.

Third level involves new statements to provide new functionnality that is not recognized by genuine 4GL.

Result of a migration to x4gl

Tech Day 2012

www.

Page 26: Informix4gl status

Here is what an Informix 4GL application looked like

Tech Day 2012

www.

Page 27: Informix4gl status

Here is what you can get after

Tech Day 2012

www.

Page 28: Informix4gl status

You can handle multimedia objects or MS Office objects with the appropriate editor

Tech Day 2012

www.

Page 29: Informix4gl status

You can/should update your contacts

Tech Day 2012

www.

Page 30: Informix4gl status

Introduction

History of the Informix 4GL language

4gl in a nutshell

Evolution of 4gl in the marketplace

Why decisions makers want to throw it away

Why 4gl programmers do not want to throw it away

Why user companies SHOULD NOT throw it away

Appearance of the x4gl family or 4gl clones

Result of migration to x4gl

x4gl as a central development platform? Are you crazy?

The new x4gl features in the upcoming pipeline

Agenda

Tech Day 2012

www.

Page 31: Informix4gl status

The icing on the cake is that those x4gl have developped an SQL abstraction layer, making it possible to run on top of other DBMS platforms (DB2, postgreSQL, MS SqlServer, or even mySql or O….e ( the evil empire DBMS)

If your company has different DBMS brand, why not unify your developments to an x4gl development platform, instead of using one different language per platform?

If java is a proprietary « universal » language, why not use another proprietary IDE that doesn’t make memory leaks in production environments, is easier to understand and cheaper to maintain?

The x4gl feature XML handle functions, inbound and outbound The x4gl can handle MS Office objects as regular BLOBS The x4gl integrate advanced or very advanced report designers,

that canreplace usual reporting tools. The x4gl IDE’s can do that for you!

x4gl as a central development platform? Are you crazy?

Tech Day 2012

www.

Page 32: Informix4gl status

The icing on the icing of the cake:

Other top charts languages full integration: java, esql/c and more to come

Web/mobile client: you choose your client between Java, Windows, .NET or web browser/mobile

Use of HTML5, probably the next magical universal client

Architecture improvements for heavy configurations

The new x4gl features in the upcoming pipeline

Tech Day 2012

www.

Page 33: Informix4gl status

« It is very simple to make your life complicated »

» and it is complicated to make it simple »

Don’t make your projects complicated

Migrate your 4gl applications to x4gl

Think about this

Tech Day 2012

www.

Page 34: Informix4gl status

Questions ?

Tech Day 2012

www.

Page 35: Informix4gl status

The Informix 4GL langage: Current status and evolutions roadmap

Informix Tech Day 2012

Strasbourg, May 25th 2012

Eric Vercelletto, Begooden-IT Consulting [email protected]

www.vercelletto.com