Slashdot Mirror


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."

3 of 39 comments (clear)

  1. Re:the point of higher lvl languages by Dan+Ost · · Score: 4, Informative

    You're exactly right. People who think that there should be standardization
    of 4th generation languages are missing the point. 3rd generation languages
    are general purpose. 4th generation languages are designed with specific
    problem areas in mind and so adopt syntax and paradigms that are convenient
    to that problem space.

    --

    *sigh* back to work...
  2. Generations of Language by jd · · Score: 4, Informative
    Computer languages are broken down in Computer Science to five generations and three flavours, which have nothing to do with how they are used, or even how they are implemented, but rather the level of complexity required to actually use the language.


    • First Generation: Trivial Machine Code. (Processors capable of running Java, etc, natively run "non-trivial" machine code.)
    • Second Generation: Assembly Language. This is the first generation in which actual compilation is required.
    • Third Generation: Procedural Language. Support for basic code and data structures, but no encapsulation of combined code/data.
    • Fourth Generation: Abstract Language. You tell the computer WHAT to do, not how to do it, allowing the computer to work out what is best, rather than having a rigid, pre-built solution. Some level of encapsulation is implicit.
    • Fifth Generation: Intelligent Language. You describe the problem and let the computer derive the most implementable specification from that description. In theory, this maximises reuse, portability AND performance. In practice, nobody ever did get it right.


    • Functional Design: Code and data are seperate. This allows for multiple bits of code to scan the same data very efficiently, but it also means that you can't guarantee that the code will understand the data correctly. C is Functional and anyone who has used pipes in DOS or Unix is familiar with the idea of rapid scanning.
    • Object-Oriented Design: Code and data are linked, such that code can only operate on data it can provably process and is provably present and set to a valid state. Smalltalk is really the closest to a "pure" OO system out there.
    • Object-Based Design: Any hybrid, in which data can be encapulated with code, but this is not a requirement. C++ is Opbject-Based, as is Java.


    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)
  3. Re:MathML by Forbman · · Score: 2, Informative

    Math already has a standard meatworld/cellulose/chalkboard representation, familiar to just about everyone.

    MathML simply allows one to simulate that kind of data interchange between computers, applications and people. The underlying message, though, is the same.

    Having worked a bit with some 4GL-ish apps (PeopleSoft, some SAP), while they may share the visible results and the same ends, at the programmer/developer level both systems are about as different as LISP and APL.