Whatever Happened To 4GL Tools?
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?"
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
Only 'flamers' flame!
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 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.
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 provides a DB-independent and OS-independent option, but is a rather heavyweight system.
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.
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.
If you're not part of the solution, you're part of the precipitate.