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.
As much as I would like to see it, fourth generation languages are never going to standardize. Most are derivatives of a standard well known languages like C or Java. Teaching yourself the 4thGen language is never that hard. Most of the vendors have 10+ years in a language that would break existing code on a upgrade. Plus it would make it easier for a migration to a competitor.
I don't believe OpenSourceCRM has a 4th generation language. All of the open source CRM packages I have researched are really just collections of code without any application level programming abilities. Customizations would involve changing the low level source. I guess open source packages feel there is no need to separate the functional programming from technical programming. An application server that runs the same business code for a web page as an integration is a must. Some companies are never going to take a CRM application seriously if a customization involves changing a PHP file. It may work great in a small environment but it will never replace Siebel or OracleCRM unless it packaged with a developer application that generates "forms/page" and compiles 4th generation code.
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.
There's not much in FORTH to standardize, anyway.
push pop push pop push pop push pop push pop push pop
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).
Anybody can embed anything in anything, if they really want. That is not a criteria for anything. For example, C will support embedded assembly, but neither C nor assembly are fourth-generation.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
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?