Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Whatever Happened To 4GL Tools? 15

ghoti asks: "A while back, I read about 4GL tools, and what could be done with them. Now I wonder why nobody is using them. The idea sounded so logical: Design a program at an abstract level, then add more information until the tool can create code or at least a framework. Now this might not be the best way to go about writing Quake IV, but for many applications, this would be very nice. Is anybody using such tools? Why not?"
This discussion has been archived. No new comments can be posted.

Whatever Happened To 4GL Tools?

Comments Filter:
  • This question caught my attention as my first job out of college was working on GURU [mdbs.com] which evolved from Knowledge Man, a very early (circa early 1980s) 4GL. It may well have been the first 4GL for microcomputers (MDBS was founded in 1978 on the principle that you could run a database on a microcomputer).

    Knowledge Man did some really cutting edge stuff when it went out. Like machine independent bytecode generation which the interpreter generated on the fly. Sound familiar?

    My job at Micro was helping to port GURU (which at one time supported like 10 or so different microcomputers, most of which time has forgotten) from DOS to Win32. This is where my strong beliefs regarding Microsoft products comes from: most of our work involved working around bugs in 95 (which would then break it on NT. . .)

    GURU still only has a text based menuing system for most of its operations (I actually rewrote one of its subsystems in Java using the AWT, and it uses Win32 FileDialogs, but that's about it). Which echos the point one commenter made: they tend to be stuck on the platform they were designed for. GURU could be ported to have a complete GUI front-end, but I shudder at the effort that would be required. Nowdays, almost all of GURUs customers are legacy users (except for those that want it for its great expert system engine). Everyone else has gone to a newer 4GL like PowerBuilder (which I've never actually used).

    A couple of the other posters hit the nail on the head when they observed that 4GLs have evolved. But I think they've evolved into more general purpose tools like Perl, Python, or (ych!) VB. For more web oriented, db specific apps there's PHP (which I've really been meaning to learn). All of those tools tend to be more general purpose than the traditional 4GL. Where someone mentioned that a 4GL only solved 60% of their problem, I've found that using Perl or Python nowdays can usually solve 100% of my problem unless performance is an issue. Even most of the traditional programming languages are getting IDEs that give easy access to frameworks for GUIs and DB access, allowing you to do most everything that was once done in a 4GL in C++. Now if that qualifies as evolution, I'll leave as an exercise for the reader.

  • by Vetinari ( 6520 )
    I was on an ADABAS/Natural project for a year, and am now being trained for an RPG programming project. Who says there's no 4GLs? :-)

    OTOH I find RPG needs as much training as COBOL easily - I was trained in COBOL 2 years ago, and if anything I'm finding RPG harder because it is more column sensitive. 4GLs are pretty powerful stuff though for financial apps.

    (Having said that I'd much rather be programming in Java!)
  • Used a few fourth generatio languages, for the most part I've abandoned them as well.

    Why? two simple reasons: the web and class libraries (C++ and Java, among others.

    Why pay license fees into the thousands of dollars and get locked into a proprietary solution when effective foundation class libraries, etc. can be used to program things just as quickly, offer higher performance, etc.

  • by Div0 ( 41952 )
    I was forced to use a 4gl tool called select at university... and if select is anything to go by, then 4gl tools haven't taken off because they are shit.

    Select is (or was) a shoderly written tool, with a really bad user interface that crashed all the time.

    Still I think the main reason that 4gl tools aren't reaching the main stream, is that people who can program are too busy writting other apps. After all a 4gl tool isn't as sexy as hacking on the lastest cool project.

  • I think you hit the nail on the head. These tools tend to be great at one specific thing, but not very flexible.

    One of the things these tools do is generate code. Code generators can be fairly brittle -- great for one-off jobs, but difficult to maintain.

    I think Delphi has the best approach. Delphi generates very little code, just stubs and stuff. All the graphical info is saved in some sort of resource file that gets linked into the .exe. It's data, not code.

    I think that 4GL tools still have a place for developing quick guis. We're starting to see really thin clients that are often generated by tools (like JBuilder or Visual Cafe), which talk to EJB or CORBA middle-ware stuff written in a tradional programming lanugages like C++, Java, Python, etc.

  • "..two simple reasons: the web and class libraries (C++ and Java, among others."

    Yup. Writing gui's used to be incredibly mungy, using the Windows API/MFC, or Xlib/Xt. (Motif was OK). Now, however, we've got Java Swing, Qt, Tk, Gtk+, wxWin, and Delhi/C++ Builder's VCL (very nice to use even without the ide tools). All of these libraries make it simple to write gui apps in code, without using wizards. (Of course, Delphi comes with wizards also).

  • I think market pressures have relegated most 4GLs to taking a back seat to Visual Basic. My impression is that Microsoft's marketing machine has convinced everyone who doesn't know better that everything can and should be done in VB, whether VB is the right tool for the job or not.

    I can give you one perspective from using a little known 4GL for the last ten years, DataFlex from Data Access. We started out using it the 80's for accounting software packages under MS-DOS and it was a vast improvement over Microsoft QuickBASIC when it came to database handling. We actually used little of the "4GL" part of it since we hand coded most of our apps to fit our application "framework"/look & feel and used third party add-ons to accomplish that. While we developed apps for DOS, they did have a high degree of cross platform compatibility, supporting Unix and OS/2 development and deployment environments. I don't think the OS/2 version is supported anymore, but they do provide current versions for Unix and Linux, still in character mode.

    Dataflex developed an OOP model in the early 90's (still operating in "character mode"). It was (and still is) a decent OOP implementation.

    This was followed by an effort to go to Windows, which was eventually abandoned because they were trying to develop their own GUI which would have given DataFlex apps a different "look and feel" than other Windows apps.

    As Christopher Brown pointed out above, 4GLs tend to be proprietary, and they were going in this direction on the front end GUI initially, but came to their senses and started over from scratch. The current product is called Visual DataFlex, and is in its third major version (started at VDF 4, now at VDF 6). The GUI doesn't look proprietary, and in fact you have complete access to Windows API calls if you want to extend or add to the capabilities provided.

    On the back end, their proprietary DataFlex database is of course supported, and for a long time they've supported access to Pervasive(Btreive), and within the last few years DB2 and SQL and well anything that can be done under ODBC.

    One really nice aspect of VDF are the data dictionary (DD) classes, which allow you to specify your business/update/database integrity/etc rules for your database files, and these rules are applied no matter what back end database is used. In addition, the DD classes may be used for character mode applications as well, so if you need to support applications on both Linux and/or MS-DOS and/or Windows accessing the same back-end database then this code can be shared between your windows-based and character-mode based applications. And actually now they have a web server product that also uses the data dictionary rules, so you can actually now create web-based applications.

    I think Data Access has "gotten religon" when it comes to making their product as interoperable as possible with other database system, work with Windows standards, and work with other popular programs (like Crystal Reports which comes with VDF 6) and operating systems (ie Linux).

    My impression is that 4GL's in general seemed to be geared toward database applications, and if what you're building fits within that framework, then I belive you'll get a productivity boost after getting past the OOP learning curve (if necessary, if you already have OOP experience it's just a matter of learning VDF's syntax).

    There are downsides of course, and the primary one in my view is that with such a small market share, VDF has a hard time competing against the limitless resources of Microsoft and the third party market that has sprung up around their development products. With fewer resources, Data Access' development may be a little behind the curve and some bugs have lingered in the product much longer than any developers desire. But I still wouldn't want to develop the type of applications we are developing in Visual Basic!

    It would be nice to see Data Access develop a GUI version for Linux as well, but again they have limited resources...it would be interesting if they were to open source that part of the project but I don't think they've gotten "open source religon" quite yet...
  • I was wondering if anyone else would mention the PowerHouse 4GL from Cognos. I used it under VAX/VMS for several years in the 90s, and it met our needs fairly well. I didn't really feel that it lived up to the supposed benefits of a 4GL, at least in terms of extending programming capability to "non-programmers." We did have a handful of users who could write ad-hoc Quiz reports, but writing Quick screens or QTP runs was definitely in the programmers-only realm.

    Now I'm part of the VFP Elite [homestead.com]... {smirk}

  • Those tools might well be out there and used on a regular basis, but there probably isn't much buzz about them because it's considered Programming-Lite. I used a 4GL quite a bit in the HMO biz (Cognos' Powerhouse on the HP3000), as a report writer, file processor, and EDI document generator - nothing I'd get really excited about, but it worked well and is very easy to maintain amongst a team of constantly-changing IT staff.

    Frankly, I'm a little surprised that 4GL's haven't prospered - they provide a solid means to satisfy many business needs, and require less training than languages like Cobol, Java, or something else.

  • I've since moved into the AS/400 world, and appreciate Powerhouse even more now that I don't have it!
  • My first feeling is that most apps are moving towards the web. I have not seen any really good 4GL programming languages for the web. My last job they had started using a program that produced java code and HTML, but I do not remeber what it was called. It was also expensive as most are. It allowed you to set up your business rules and your GUI and then generated the code for you. This allowed for very little programming. THe drawback is that you basically needed 128 Meg of RAM and a 500Mhz processor to run it and even then it ran slow. This was the same problem that we encountered with Visual Cafe. It too is slow. Most 4GL's IDE's are this way they tend to be slow.

    People are using 4GL's though. My current job we use Tcl. This is a 4GL scripting langauge. Many companies use this internally as it can provide a quick GUI.

    Java is another 4GL that is getting much language.

    Personally with the move to the web, I prefer to use Perl or php or if you know vb and want to use IIS there is asp. Personally I think asp stands for actually slow pages, but that is just my opinion.

    My guess is you are looking for a 4GL IDE not a 4GL. There are nmany 4GL's that are in use now, but when people want speed as they often do, they program in C and drop the GUI. Many programmers I know prefer a simple editor like vi or emacs or vim or even notepad (some use visual studio for it syntax highlightening) but they all code pretty much by hadstill. This gives you better control over the code.

    send flames > /dev/null

  • 4GLs aren't dead, but they have evolved. Tools such as SilverStream aim to generate complete applications with no or little programming. Allaire ColdFusion is an IDE and proprietary language requiring more programming. If you throw out the IDE, then you have things tools such as PHP. Approaching the problem from a standard language viewpoint, there is Java as a foundation for JSP and EJB.

    Another consideration is that 4GLs were aimed at applications with simple architectures, usually no more complex than client/server, (there are certainly exceptions). The tools I've mentioned are geared toward multi-tier applications on the internet, with a browser front-end.

  • If you watch 4GLs over time -- I'm thinking PowerBuilder particularly here, but 4th Dimension and VB have similar curves -- you'll see rapid adoption followed by abandonment. I think these tools come into existence to solve a particular class of problem, solve it very well, get widely deployed, and then just can't adapt to the real world with the same effectiveness as general-purpose programming languages.

    4GL tools have also required intensive vendor backing, and as the tool vendor finds himself on the downslope of the adoption curve it becomes more likely that the tool you have based your project on will be orphaned.

    Seriously, you folks who have been around for 10 years or more, are you still eager to start projects in VB or WebObjects or PowerBuilder or even Delphi? Or are C, Java, C++, Perl and Python looking a whole lot sweeter over the long haul?

  • I worked with a group that was building a GIS system atop PowerBuilder; they got about 1/2 done, and then had to discard it and recreate the whole application using MFC/C++ because they just couldn't push PowerBuilder far enough.

    I have seen exactly the same thing happen with Oracle and their Designer 2000 built apps. They all turn out with the same cheap looking interfaces and are very hard to maintain. Like they say, when all you have is a hammer, everything starts looking like a nail.

    • They tend to be extremely proprietary.

      You can't just buy into the 4GL; you have to buy into the database on the back end, and whatever "TUI" or "GUI" is on the front end.

      In the case of tightly integrated options, which buy you decent performance, such as Oracle's tools, this means "marrying" Oracle. (And no "With this ring I thee wed," and no "You may kiss the bride." There does, however, tend to be a rather one-way form of "wedding night"...)

      Alternatively, SAP R/3 [hex.net] provides a DB-independent and OS-independent option, but is a rather heavyweight system.

    • When the Development Model Du Jour changes, the 4GL becomes obsolete.

      Text-based systems were obsoleted by GUIed ones, and both have tended to be obsoleted by "web app" ones.

      In order for the 4GL to buy "ease of use," it has to provide a very specific development approach, and that results in it being very "brittle" in a changing environment.

    • Incomplete Results

      The "benefit" of a 4GL is that it makes certain things (perhaps creating certain forms of reports) very easy.

      Unfortunately, this may only extend to covering 60% of system requirements. Which is wonderful when prototyping, when you only need to fulful 40% of system requirements. But it is not so wonderful when you're fighting to get the rest of the way, and have to fight with a tool that just wasn't meant to add in whatever that last 10% is.

      I worked with a group that was building a GIS system atop PowerBuilder; they got about 1/2 done, and then had to discard it and recreate the whole application using MFC/C++ because they just couldn't push PowerBuilder far enough.

Any circuit design must contain at least one part which is obsolete, two parts which are unobtainable, and three parts which are still under development.

Working...