Re: Why did you select Informix New Era or Progress v7?
Posted in 1995
In article <DE4592.4GG@twg.bc.ca> bill@twg.bc.ca writes: >We have just completed an exhaustive review of several 4GL >client/server development environments, which resulted in a short >list of two: Informix New Era and Progress v7 (soon to be 8). I >would be very interested to hear from people who evaluated these >two products during their selection process, and why they >selected either New Era or Progress v7. > I'm using Progress V7 and have been using Informix 4GL for years. Progress GUI is nicely integrated, you can compile/run from within it. Subjectively, it's prettier than NewEra, has 3-D effects, works pretty well as long as you don't expect too much from it. Language is a bit weak, esp compared to NewEra's OO language, but you can get most things done. Really lousy library handling in Progress. V7 has no ability to update data in scrolling arrays and the scrolling arrays are pretty limited; they don't handle outer joins or grouping functions. They won't run against temp tables so you have to do some pretty disgusting hackery to work around these problems. V8 addresses *some* of these issues. I thought the manuals were pretty poor until I got the NewEra ones :-) Online help is really good, highlight a word and hit F1, you'll get a list of matches. Each keyword has syntax, parameters, examples and SEE ALSO. Very useful. NewEra's screen painter is pretty clunky. I've got 1.1; getting 2.0 next week. There are a *lot* of annoying little things with NewEra but the main data-aware objects work well, provided you have keys defined in your data dictionary. The SuperTable has a lot more capability than Progress' Browsers, probably even over Progress' V8 ones. They update in place, for example, and can include user-defined columns with no DB connection. Also don't work against temp tables but hackery can get you a long way. Manuals are hopeless. Online help isn't in Progress' class by a long shot. Progress' SQL support is poor and buggy. Informix' is good, as you would expect, being based on SQL syntax. Both the underlying 4GL's are proprietary. Informix 4GL (== NewEra without OO) is much richer and more powerful than Progress. Also easier to commit gross atrocities in. I'm having difficulty getting to grips with NewEra by myself, so am off on a course. But it's a much more complex language than Progress and the compiler tools aren't as user-friendly. If you're expert in C++, NewEra will suit you. If you're not, you'll have to learn about classes and methods pretty fast. Progress by default has no dynamic language capability. You can't easily do forms based Query by Example, something so simple in Informix. This is a real pain if you've had it then don't any more. If you're looking at the server ends, there are *large* differences. If you're not, you should. This is really critical. Progress has no dictionary level referential integrity implementation. The user has to hand-write all the code in CREATE/WRITE/DELETE triggers and hand-maintain it every time the dictionary changes. This is a *major* limitation, the full extent of which escaped me until I looked at the time it was consuming. Worse, the triggers execute on the CLIENT, not the server. Guess what happens when someone connects to your Progress database via ODBC, not your front-end Progress app? Right, your carefully coded RI triggers can't work. This is speculation, as I can't get the Progress ODBC driver to work yet, but I've bounced it off Progress tech people and no-one has denied it. Major security flaw. I *have* personally demonstrated that a WRITE trigger doesn't fire using an SQL INSERT statement under Ver 7.3A Progress, allowing checking of valid primary key-foreign key relations to be bypassed. Progress also has no support for stored procedures, either on the server or in the client, if you wanted to run it against a server with such capability. These (and more) criticisms don't apply to either Informix SE or Online. They have full server-level dictionary RI, triggers and stored procedures. If you're really paranoid, you can revoke all permissions on everything from everyone and do all DML (insert, update, delete, select) via triggers and SPL. My experience is that Informix is faster but this is so app-dependent that the only speed test that counts is with *your* app. I know of at least one case where Progress out-performs Informix SE using the same schema/data set on the same box, so it's not universal that Informix is faster. Personally, I'd look at Delphi against Informix. Though I might have a different opinion after doing a NewEra course. In terms of "pretty", Delphi is great. The functionality is pretty good, too. I got a master-detail screen running in 5 minutes against an Informix database on my server just by using the Form Wizard. I don't know where Delphi hits he wall, though, I haven't used it enough. It's report writer is the pits. I wouldn't try Progress against any of the SQL based systems because its SQL support is poor and I regard the inability to execute stored procedures as crippling. You can work around the client tool limitations easier than the server ones. Informix is a far superior database server. If you use Progress, make sure none of your users can get to the database via ODBC from any program that allows more than queries. Peter Wiley (who has spent 12 months as part of a team of 3 building a V7 Progress GUI app with 150+ tables, 160++ data entry/display screens, 80+ reports and I hate to think how many megabytes of code)