Review of FlexGen
Shawn M. Gordon
S.M.Gordon & Associates
Since I am such a huge COBOL junkie I am always on the lookout for tools or
products to make my life easier. I recently came across a product called
FlexGen from SINC Inc. that is kind of like a 4GL for COBOL. It will
generate code for you that you can maintain, or you can work exclusively
in their environment and avoiding most of your coding. If you do have
to do any coding, it will be in a COBOL type of language.
A little background on COBOL language suppliers is necessary to
understand some of what is going on with FlexGen. On the HP-3000 at
the time of this writing there is one COBOL, and it is supplied by
HP. On the HP-9000 the ‘official’ COBOL is supplied by Microfocus
for HP (there are other COBOL vendors available however). From what
I understand, the Microfocus COBOL compilier is being ported to the
HP-3000 under some joint agreement with HP (I don’t know for sure
if this is true). I have heard another rumor that ACUCOBOL is also
porting their COBOL to the HP-3000.
Now the major COBOL players that I am aware of are Microfocus,
ACUCOBOL, RM COBOL, and Visual Cobol. They all pretty much run under
DOS, UNIX, various proprietary operating systems like VMS, and most,
if not all of them are in the process of releasing MS Windows support.
Now why is all of this information important to you? Well depending
on which COBOL you are using, that is the version of FlexGen you will
get. FlexGen is written in the COBOL that you will be using, and
will transparently support whatever features, file structures, and
platforms that are supported by that COBOL.
The impact here is that you may or may not be able to develop
something in FlexGen that will be usable on the HP-3000. For the
purpose of this review I used FlexGen for ACUCOBOL under MS-DOS.
My PC is a 25Mhz 486 with 12 meg of RAM and 1 gig of disk. Performance
is not measurable other than ‘it seems fast’ or ‘it seems slow’ since
I have no tools to measure, and response will depend on the computer
being used. Although the FlexGen interface is in color and runs in
DOS, I will be generating black and white screen snapshots of the
programming running in a DOS window.
The version of FlexGen for the PC is currently a DOS based program,
however they do use menu bars, pop up windows, and pick lists to make
it as friendly as possible. They aren’t trying to make it look or
act like an MS Windows application under DOS however. The mouse is
not usable under FlexGen from what I have seen. There is a new
MS Windows version that will be available around the time that you
read this review.
So what is FlexGen, and what does it do for you? Well it is rather
like a fourth generation language front end to the COBOL language.
It allows you to create reports, and screens by ‘drawing’ them. You
can also add pop-up windows and menu-bar features within the
application to give it a better ‘look and feel’. You can do all of
this without writing any code too. See figure one for a look at the
main screen of the product.
The big work involved in ‘really’ using the FlexGen system is getting
the data dictionary put together. A demo one is included with the
software so you can get a feel for the product. The dictionry allows
you to be very ‘fexible’, you can include all sorts of different
edit’s on fields, half bytes, and more importantly you can include
calculation and logic. This last bit is very similar to a Class in
the C++ language. An example would be;
(FGS-SALARY > 2000) * FGS-SALARY
This wil produce the value of FGS-SALARY if it is greater than 2000,
else it will produce 0. So now you can take advantage of OOP with
COBOL in a 4GL.
It should be obvious that the dictionary will take some time to
produce for any reasonably sized system. There are various Import
and Export parameters in the software however.
All the ‘Query’ sections are essentially reports. Figure 2 shows
the EasyQuery report painter screen. As you can see it is very
simple to add titles and fields, what isn’t so obvious from the
picture is that it is just as simple to add control breaks, totals,
look up fields in other tables, and various other report type stuff.
I have to say that the report and screen painters reminded me an
awful lot of PARADOX for DOS from Borland.
Building Forms and Windows is just as easy as generating Querys.
You just select your record and fields, then specify some of
the attributes, such as allowing input in the field. Now you
simply ‘Paint’ the screen by placing the fields, and doing whatever
editing you want on the screen. This could take you up to 5
minutes to build a full maintenance screen. Now you can use
some of the drawing tools to put boxes around fields to help
logically group the screen and ‘pretty’ it up. You can create a
‘lookup’ form, that allows you to do overlay type stuff when there
is a lookup.
What I really liked was the ‘Windows’ feature. This allows you
to create little dynamic scrollable data windows. All you have to
do to build these is is specify position and data fields within
the window. They really come out looking nice.
The FlexEditor inside the product allows you to look at and edit
the cobol code, or the higher level stuff like the Querys, Forms,
and Windows. So you can use the high level painter, or get your hands
into the entrails of the project and twist it to your satisfaction.
The Menu System allows you to build the ‘front’ of your application.
Here you would put all of your Forms and Querys in one logical
system. Here is where you can also put ‘Scl’ scripts, these are
a facility to allow you an interface to the operating system.
There appears to be a lot of power here, should you need to take
advantage of it.
One of the most powerful features of FlexGen is it’s ‘Functions’.
These work rather like Macros in HP Cobol, which is nice since I love
macros. This feature isn’t covered in the getting started guide, so
it takes a bit of digging to find out how these little gems work.
The ‘Functions’ would be the place to really put your hard core logic
at. This way you centralize your system dependent code (the way
you supposedly do in C++ with Classes). You then have a very simple
way of maintaining multi-platform development. Make sure you think
out your project at more of a macro level first, you don’t want to
embed to much code inside your Querys and Forms and then find you
want to pull it back to a higher level.
There is also something available called the ‘Re-engineering Module’.
This is a facility for redoing old code and putting it together in
a new easily maintained system. I didn’t spend any time with this,
but you need to know that it is there.
I realize that this review only scratches the surface of FlexGen,
but it is a very large product with many options. I didn’t even
get into the user profile section of the product, or some of the
other features. Hopefully this is enough to peak your interest, and
allow you to determine if this product is worth looking at given
your particular environment.
Usability and Installation
Installation should be straight forward, but you need to make sure that
you do it right. Basically you have a diskette that you run an install
program on, it ask’s you some questions, and then it installs on your
hard disk. However, you must have at least 560k of free conventional
memory to run the install program. You won’t be able to run the
installation as a DOS program from MS Windows. Also, the path to the
COBOL system must already be established. Since I got a demo of
ACUCOBOL at the same time as FlexGen, I hadn’t installed it yet.
This caused the installation to abort, and since the abort message
flashed by so quickly it took a while before I finally figured out
what was going on. As long as you have everything set up right the
installation zips along quite nicely.
Other than getting some errors due to lack of memory, I didn’t have
any problems with reliability. Even when you got an error message
about memory, the program didn’t crash, it just gave you an error
Performance on my PC was excellent, there is no delay in switching
between screens and functions, and the code generation is quite quick.
I think the longest I waited was about 15 seconds, and that was
running the program from under MS Windows which will slow down any
DOS program. Your only real problem will be in making sure that you
have enough DOS conventional memory available. I wish they would use
some sort of better memory management. I believe the new Windows
version won’t have the same type of memory problems.
Supportability and Documentation
FlexGen comes with a rather hefty amount of spiral bound documentation.
The most important manual in my opinion is the ‘Getting Started guide.
This well written and easily followed manual will walk you through
pretty much all the basics of the FlexGen system, giving you a pretty
thorough understanding that will then allow you to move on to more
complex issues. Each of the other manuals covers a different aspect
of the FlexGen system. There are 9 manuals in all;
The Base System Module
The Menu System Module
The Forms/Windows Module
The Easy Query/Report Writer Module
The Extended Development Module
Writing Escape Logic (A Detailed Guide to Understanding FlexGen Programs)
These are all clearly written, and walk you through a starting point and
build on the points until you reach a very complex project. It’s nice
to have the manuals broken apart like this too, it makes it much easier
to handle and read each topic.
I only had to call a couple of times, and that was with some questions on
the installation. My sales rep was able to answer the questions, so I
never even ended up talking to their tech support directly. I have to
assume that if a new sales rep could answer my questions, then the tech
support is probably pretty competent.
My complaints with FlexGen are mostly of a cosmetic nature. For example,
the menu bar’s, and drop down windows don’t cursor wrap when you hit the
end of the list. This means you always have to back up to get to a
previous item, you can’t just wrap back to the beginning. The flow of
the interface takes some getting use to as well, you can’t really just
sit down and start using it, you need to at least go through the
‘Getting Started’ user manual. It’s great that one is included, and it
works well at ‘getting you started’.
Some of the error messages aren’t to clear either. When you get a message
that says ‘Cant find, or out of memory’, you have to really wonder what is
going on. I would have liked to have seen this clarified a bit.
The COBOL code that is generated by FlexGen is suprisingly well laid out
and easy to read. I have seen other code generators, and some of them
are really really bad. So even if you just were to use FlexGen to
generate the bulk of your code quickly, and then maintain it manually,
you would be better off.
Although you can’t consider FlexGen to be ‘cheap’, it is reasonably
priced for what you are getting. A lot of us have a HUGE investment in
COBOL code and COBOL programmers. Is it really worth throwing that away?
There are many languages of the month, but how many of your applications are
written in them? With FlexGen you get the advantages of a Fourth Generation
langauge (Screen painting to design reports and screens, etc), with the
power, flexibility, and speed due to it’s ability to be compilied (depending
on the COBOL you are using). All that, and you can end up with a cross
platform application that will protect your investment in your development.
So where does that leave you? For the straight HP-3000, HP COBOL shop that
isn’t going to move anywhere, well FlexGen isn’t for you at this time. If
they come out with direct support of HP-3000 COBOL, then you will probably
want to take a look. Now, if you are looking at doing any COBOL work on the
PC, or under UNIX, then I would really recommend taking a look at FlexGen,
I think you will be impressed.
7077 Corporate Way
Dayton, Ohio 45459
Phone 513-438-5553 or 800-342-6265
Call, write or FAX for information or a demo. Price ranges from about $3500
for a single full development system on a PC, to up in the hundred thousand
range for a lot of users on a big system. You can pretty much mix and match
the modules that you want to buy.