4GL vs. ESQL/C
Posted in 2000
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL, Networking & sqlhosts Configuration, Versions, Editions & End-of-Life
We are making a decision of whether to move our applications towards ESQL/C (from 4GL) My company is an ISP and our billing system is running on IDS 7.3. The majarity of the billing system is written in 4GL, we use RDS version of 4GL in both development and production. Two server programs which deal with customer signing up from the web use TCP/IP sockets so they are written in C, and use the argument stack to call 4GL functions to do database access. We are rewriting some components of the application system and some people sugguest that we should move to ESQL/C and here are some of their arguments: 1. ESQL/C is more portable, 4GL is not portable at all. 2. The sign up server programs should be rewrtten in ESQL/C rather than half in C and half in 4GL. because the push and pops on the argument stack are "ugly". 3. C is a "more beautiful language" than 4GL. To me it's certainly staying with 4GL. Move towards ESQL/C just for two signup server programs' sake doesn't make sense to me. Can you kindly give your opinions on which development tool you would choose, or point to other information source of guidelines on choosing the right tool for applications? Regards, Carl Y. Wu
On Mon, 17 Jul 2000 15:29:49 +1000, Carl Y. Wu Wrote: > > My company is an ISP and our billing system is running on IDS 7.3. > The majarity of the billing system is written in 4GL, Eerie coincidence ... > we use RDS version of > 4GL in both development and production. > Phew, not a long lost colleague after all .... /J\\
I've dealt with pure ESQL/C apps, pure 4GL apps, and hybrid apps. My favorite of the 3 was pure ESQL/C - we had a very flexible, easy to maintain user interface - much better than 4GL forms, and could customize them very specifically to our own purposes. Pure 4GL apps suffer from not being able to make standard library calls and I find force people to write shell scripts way too often which are called from within the 4GL process. This has the disadvantage of splitting control between a shell script and 4GL source code - who handles the errors? Maybe we should just die - something pure RDS developers seem all too willing to accept as a desirable outcome (I want to see details, error codes, line numbers, dates, times, SQL statements, preferably in a log file so when the user calls me and says it's broke, I can rely on accurate information rather than some useless, fatigued, either overly-verbose or overly terse description of some perceived problem). Probably the simplest answer, if 4GL development resources are really that much cheaper that C resources, would be to call C library routines from 4GL when 4GL's limitations rear their ugly heads (and there are many). I;m not sure you can do this in RDS, but don't let the idiots tell you that you can't use the debugger with C routines in a compiled environment. (I have been told this where I am currently employed - and currently looking to leave if you have positions :-)) - it just requires reading the manual or perhaps swiping source code off of some web site. As for the portability of C versus Informix 4GL, you're talking about an NBA game of the Lakers vs. the Clippers. I have heard too often that there is a "bug" in SCO-Unix or there is a bug in the Informix port to HP-UX. It happens, but in some cases it was a case of it just happened to work on AIX (I think Informix likes that platform for some reason), even though, looking at the documentation tells you that you're just lucky that it worked on that platform. C is infinitely more portable than 4GL...In fact, as any idiot knows, compiled 4GL programs are parsed into ESQL/C programs and finally into plain old C, so if C is less portable than 4GL, then 4GL is at best only as portable as C....A paradox? More of an impossibility. 1 thing about 4GL that really bugs me is that it is not orthogonal. "Carl Y. Wu" wrote: > We are making a decision of whether to move our applications towards ESQL/C > (from 4GL) > My company is an ISP and our billing system is running on IDS 7.3. > The majarity of the billing system is written in 4GL, we use RDS version of > 4GL in both development and production. > Two server programs which deal with customer signing up from the web use > TCP/IP sockets so they are written in C, and use the argument stack to call > 4GL functions to do database access. > We are rewriting some components of the application system and some people > sugguest that we should move to ESQL/C and here are some of their arguments: > 1. ESQL/C is more portable, 4GL is not portable at all. > 2. The sign up server programs should be rewrtten in ESQL/C rather than half > in C and half in 4GL. because the push and pops on the argument stack are > "ugly". > 3. C is a "more beautiful language" than 4GL. > > To me it's certainly staying with 4GL. Move towards ESQL/C just for two > signup server programs' sake doesn't make sense to me. > > Can you kindly give your opinions on which development tool you would > choose, or point to other information source of guidelines on choosing the > right tool for applications? > > Regards, > Carl Y. Wu