->Subject: 4gl: Better than sliced bread?
->Date: Wed, 12 May 1993 19:27:46 GMT
->Organization: PDS Corp., Los Angeles, CA USA
->
->>Our first version of the general_view_screen system was
->>extremely awkward, due primarily to the lack of function pointers in 4gl.
->
->I'm having fun in c.d.i today. Is this an example of one of the powerful
->features of 4gl that give you that ten-fold productivity increase?
->
->Hmmm, given the lack of function pointers, the creation of any kind of
->abstract data type would be nigh on impossible. Well, who needs software
->engineering anyway? Real Men (tm) don't write generic functions. Useful
->function libraries? Bah -- who needs 'em?
->
->Seriously, I've never used 4gl, but from what I've heard it's useful for
->knocking out applications that don't get too involved. As long as you
->don't need to do anything that requires the power of C, it's OK, and they
->let you link in C functions when you need to. If you want to write anything
->like a general library that you can re-use, or a program that uses pipes
->or anything slightly complicated, you're better off in C.
-----------------------------
Golly, I'm starting to sound like an Informix flack, rather than just a
satisfied user. However....
I have written entire, complex applications in 4GL using the SE engine,
including a multi-task, multi-window application in which the separate,
asynchronous tasks periodically sync'ed thru the database. This applica-
tion ran flawlessly (well, the flaws were mine, not Informix 4GL's) thru
X-windows over a 2,000 mile network link.
The only C function I ever needed was 'i_getenv()', which was written
before 'fgl_getenv()' became available.
I've written reuseable libraries; at least I reused the same code, in *.o
form, in several different projects. Code reuseability is more a function
of designer/programmer cleverness than of language power. Remember Fortran?
-----------------------------
->
->In summary: 4gl is less powerful than C, but more convenient for a certain
->class of applications.
-----------------------------
That depends on your definition of power. I have seen wood scultors use a
chain saw to rough out a sculture, then use chisels, and finally scalpels
to do the fine detail work. C is a heck of a fine scalpel, but I would
hate to have to do entire wood sculture using ONLY a scalpel.
Maybe it is better to have more than one tool available to programmers, each
to be used in the appropriate part of the application.
-----------------------------
->
->I'm curious: From the people out there who have used 4gl and C extensively,
->what would you say the "productivity gain" is? My guess is that 4gl is good
->because it's easier to learn than C, and not-too-complex stuff can be done
->quickly and efficiently. As long as there's one good C programmer on staff,
->I'd believe that 4gl could be an effective tool, but I'd hate to be limited
->to it.
-----------------------------
4GL is good for the same reason that C++ is replacing C. Things like strong
type checking save even good programmers from silly errors. 4GL has its
flaws, but so does C (or porbably any programming language). Things that
are complex in one language may be simple in a different language; it
depends on how the decisions of the language impelementers coincide with
your particular needs.
-----------------------------
->
->Even so, I think that the "ten-fold" increase in productivity is either:
->
-> 1) Inflated by a factor of 5 or more.
-> 2) Only applicable to people who don't know how to program in C.
-----------------------------
I also doubt a *sustained* 10X increase in productivity. It depends on
what you are doing in your application. As the car dealers say, "Your
mileage may vary." Once you buy into the look-and-feel of what 4GL does
easily and well, such features as MENU statements and OPEN WINDOW do
indeed produce a high productivity gain, versus doing the same thing
from scratch in C. Please see my previous posting regarding MENU.
Doing what 4GL does not do well is difficult in 4GL. However, when was
the last time you enjoyed using two-dimensional arrays in C?
-----------------------------
->
->So, 4gl/C programmers, am I right? Or should I go out and buy 4gl
->*quick*, before it makes C++ obsolete? :-)
->
->While I'm at it, does 4gl have a symbolic de* that's anywhere near
->as good as gdb?
-----------------------------
The 4GL Rapid Development System (RDS) has an integrated, symbolic, inter-
active de*. Some people swear by it; I swear at it. (But I don't like
de*s in general.) Please note that 'gdb' is not inherent in C, it took
the GNU folks to make it.
-----------------------------
->
->(NOTE: This is *not* a flame of Karl Dahlke's posting... It's more an
->expression of amu*t at the Informix sales literature. What they're
->saying is almost identical to the sales talk given for Jovial, a language
->that my father helped develop at SDC. In the Jovial article in the SDC
->newsletter, they talk about how "interactive, convenient access to a
->database will allow non-programmers to view data and easily generate
->reports". This was written in 1967. Sound familiar?)
-----------------------------
Please, you're making me feel old. I wrote a considerable number of
programs in Jovial, including a *generalized* report writer against a
database of military engagement (no, not Tailhook!) scenarios.
-----------------------------
->--
->PDS Corp, Los Angeles, CA USA uunet!promdist!bill
->
Regards,
Alan
+------------------------------+---------------------------------------+
| Martin Marietta, LSC | ( Please note: My opinions do not ) |
| P.O. Box 179, M/S 5422 | ( represent official Martin policy. ) |
| Denver, Colorado 80201-0179 | Voice: 303-977-9998 |
+------------------------------+---------------------------------------+