Ensuring Technical Readiness For Copilot in Microsoft 365
Informix4gl status
1. Informix Tech Day 2012
The Informix 4GL langage:
Current status and evolutions roadmap
Strasbourg, May 25th 2012
Eric Vercelletto, Begooden-IT Consulting
2. Tech Day 2012
Agenda
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
www.
3. Tech Day 2012
Agenda
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
www.
4. Tech Day 2012
Introduction
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
www.
5. Tech Day 2012
Agenda
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
www.
6. Tech Day 2012
History of 4GL
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.
www.
7. Tech Day 2012
Object languages and GUI:
Informix 4GL is getting old
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.
www.
8. Tech Day 2012
Agenda
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
www.
9. Tech Day 2012
Informix 4GL in a nutshell
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.
www.
10. Tech Day 2012
No revolution, just raw efficiency
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
It
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
www.
11. Tech Day 2012
Some powerful instructions
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
www.
12. Tech Day 2012
Full SQL integration
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
www.
13. Tech Day 2012
The under-used Report Writer
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
www.
14. Tech Day 2012
Agenda
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
www.
15. Tech Day 2012
Evolution of 4gl in the marketplace
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
www.
16. Tech Day 2012
Agenda
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
www.
17. Tech Day 2012
Why decision makers want to throw 4GL away
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.
www.
18. Tech Day 2012
Why 4gl programmers don’t want to throw 4GL away
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
www.
19. Tech Day 2012
Why user companies SHOULD NOT throw it away
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
www.
20. Tech Day 2012
Why user companies SHOULD NOT throw it away
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
www.
21. Tech Day 2012
Agenda
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
www.
22. Tech Day 2012
Appearance of the x4gl family or 4gl clones
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.
www.
23. Tech Day 2012
Agenda
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
www.
24. Tech Day 2012
Appearance of the x4gl family or 4gl clones
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.
www.
25. Tech Day 2012
Result of a migration to x4gl
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.
www.
30. Tech Day 2012
Agenda
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
www.
31. Tech Day 2012
x4gl as a central development platform? Are you crazy?
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!
www.
32. Tech Day 2012
The new x4gl features in the upcoming pipeline
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
www.
33. Tech Day 2012
Think about this
« 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
www.
35. Informix Tech Day 2012
The Informix 4GL langage:
Current status and evolutions roadmap
Strasbourg, May 25th 2012
Eric Vercelletto, Begooden-IT Consulting
Eric.vercelletto@begooden-it.com
www.vercelletto.com