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.
...just kidding
...but then think about all the "standard" tools. Um, how many "standards" do we have today? Perl, Python, C/C++, Java, shells, PHP, JS, etc.
But seriously...4GL's that survive today have big followings, and are just another market. Who's to say that platforms must be consolidated and homogenized?
Even though they all strive to complete the same goals (and all try to balance generalization, approachability and brand) - there isn't anything wrong with having them around, to me.
Think of all the 4GLs and embedded languages that could be replaced with a standard
Languages aren't the problem. The FOSS world needs to make commodities out of common solution patterns. Regardless of languages, if they support the access flavor of the decade (lib, shared lib, COM/CORBA, classfile, SOAP, webservice, etc) then it'll be useful to any platform. The richer and more reliable those modules are, the more these integration languages not need to be so complex. This is a hypothesis, yes.
Anyway, when I see enterprise corporations mulling decisions like Subversion over PVCS for example, I'm tickled that FOSS is slowly scraping away the fallacy of (some, sorry RJS) software as "property" and more just "concept".
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).
This thread awaits the appearance of "tablizer", who needs a type system when you have tables and relationships?
Tablizer is to "alternative programming" what Arthur T Murray is to AI and Ray Gordon to dating.
then they belong wherever the fantasy land is that the fifth, sixth, seventh, eighth, and so on generation languages are. As soon as I saw that named, I nearly fell over on my keyboard. ARS is not a 4GL, it's a tool of psychological torture more fiendish than making one listen to Abba records played backwards for eternity.
Come to think of it, when an AI language app writes its own language to communicate with humans all on its own, then we'll have a 4GL.
If my grammar and spelling are off, I am [distracted/tired/careless] (take your pick)
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)
Commercial companies are not interested in interoperability, because it only makes it easier for their customers to switch another vendor. And although these languages may look similar, it still doens not mean that it is only a matter of syntax. And as a commercial company, you are not going to change the exact semantics of your language in order to make it interoperatble with the language used by others, and let all your customers do the conversion (which is never as trivial as it seems). Microsoft tried to unify VB, C++ and Java in the .Net environment. And see what came from it.
sorry, couldn't resist.
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?
tsk, you true to crack a joke and look what happens you get modded as a troll.
the worst it should have been was off-topic, I am not trying to incite people here, just spread a bit of mirth.
to paraphrase the Kurgan - "Mods! no sense of Humour."
'By the pricking of my thumbs, something wicked this way comes'