Where Should all the 4th Gens Go?
ARSDeveloperGuy writes "Fourth generation languages are cool, but there seems to be little to no effort being spent to standardize them. The current state is commercialized pseudo-languages are created to allow vertical apps to be expanded. (ARS Remedy, Siebel, Oracle JDeveloper) The concepts of a form, field, and workflow can be standardized, and when you look at many of these languages they aren't terribly different. Why don't we create a standard and start writing "workflow converters" for these powerful languages? That would allow conversions to happen more readily, maybe even to an open source offering like OpenSourceCRM."
Isn't part of the point of the 4th & higher gen languages that they are customized to a specific application. TFA gives MATLAB and Mathcad as examples. I don't think a 'generic' 4th lvl language would be helpful or even possible.
I don't see the advantages to standardizing these languages. One of the things that makes them useful is that they are designed to perform a smallish set of tasks efficiently and with little effort for the programmer. Standardizing them seems like it would move them all away from their problem domains making them less useful.
Philosophy.
Maybe mathematics is a special domain in the the 4GL's we are seeing are really trying to represent the same 7GL (i.e. maths notation), so the problem is intrinsically easy.
I'm getting kind of worried by the conservatism of the Slashdot crew. Any new idea coming along (database yesterday, 4GL's today) seems to get shot down. Are we going to actually see new ideas coming from the opensource movement, or is it just going to be limited to reimplementing existing programs?
There are four sorts of people in the world: fools, lunatics, idiots and morons. - Umberto Eco, Foucaut's pendulum.
The so-called 3GLs didn't get replaced by the so-called 4GLs, because the latter aren't superior languages in every respect -- they just do some things better. The most conspicuous area where 4GLs excel is database access. As a result, many people think 4GL means "database language", and apply it to 3GL languages like Delphi and Visual Basic that are widely used in database apps.
I guess the term "4GL" will be around forever, but it really isn't very useful. If you want to categorize languages in a meaningful way, use terms that describe how they actually work, like "imperative" (3GL, more or less) and "functional" (4GL, ditto).
Admittedly, I'm an EE and not a Software person, but I've been working a lot with FPGA design and this involves the use of a few "functional" programming languages such as the Scheme-like confluence Hardware Description Language (HDL).
ANSI and ISO C are imperative, sequential, PROCEDURAL languages.
From my (possibly wrong) understanding, languages such as Haskell (Wikipedia) and Scheme (Wikipedia) are "functional".
These are so far from anything at all like C programming, Haskell in particular for some reason reminds me of that movie Event Horizon, but that's probably just my warped mind thinking irrelevant thoughts again...
I'm told that the Haskell course taught at my University is a source of great frustration to many programmer wannabes who can never get their head around the "functional" programming paradigm and are forever stuck in their Java ways.
So, if C is classed as "functional" in your books, what would Haskell be?