
Ask HN: Why did 4GL tools like FoxPro, Clipper, Clarion, DBase disappear? - open-source-ux
These combined database and programming language products were described as 4th Generation Languages (4GL). They were powerful and far more accessible to beginners or casual users than stand-alone programming languages. Why did they disappear?<p>These 4GL products seem tailor-made for web projects that require database access. Where enormous scale isn&#x27;t required (i.e. the majority of web development projects), the 4GL approach seems like a perfect fit. Instead we&#x27;ve settled on a mish-mash of clumsily glued-together (and needlessly complicated) solutions for web development with databases.<p>Why did 4GL fail to adapt to the web era? Were the tools and language too restrictive? (Hard to believe this when CRUD is the bread-and-butter of many web apps. And these 4GL tools made accessing data far more easily and seamlessly than the solutions today.)<p>Or was there some snobbishness amongst programmers who didn&#x27;t view these products as &#x27;real&#x27; programming languages?
======
Finnucane
FoxPro was acquired by Microsoft and eventually discontinued in favor of
Access. How much of FoxPro's technology ended up in Access I couldn't tell
you. (On my Mac, I kept running an old version of FoxPro in 'Classic' mode
until that was no longer an option).

~~~
LarryMade2
Yep, and after MS (Apple, or some other controlling vendor) pulls the rug out
from under you on your development platform of choice you don't go back to
proprietary DBs.

Was doing some great stuff with FoxBase/FoxPRO on the Mac. After that mess
with dropping of support my next DB platform was open source (LAMP) way more
flexibility and am still using it.

------
le-mark
I have often wondered this myself. The 90's were all about the 4GLs taking
over, and that obviously didn't happen. Here are some thoughts in no
particular order.

The languages were usually some flavor of "business BASIC" which were in
reality pretty bad. It was far too easy to end up with "ball of mud" apps. I
worked for one company on a project over several years to replace a foxpro app
with EJB 3 backed desktop app. A lot of the complexity in that project came
from documenting and replacing what users were doing by _manually updating_
the tables with proper workflows (permissions to perform actions? egad!). Note
this is not the fault of the 4GL in particular, but more a result of the
"throw something together" ethos (so I maintain). So my take away here is:
great for prototyping, not so great for long term maintenance and support.

There are still companies offering 4GL solutions in this space like [1] and
[2]. I have no doubt there is some enterprise version of Microsoft Access that
will expose your app to the web, with an appropriate licensing fee.

Another thought I have is all the X compiled to Javascript to run on the
browser languages, like scalajs and java (GWT). GWT (in my view) was a failed
experiment, I don't know of anyone using it for new development, all the apps
I see are legacy. I welcome feedback on this.

Something else I think about is; in those days, although lisp and smalltalk
were around, doesn't seem like they were widely used. Nowadays, there's an
abundance of dynamically typed, highly productive languages with _extensive_
library ecosystems that essentially enable developers to move the language to
meet (any particular) problem domain, and create solutions quickly. So the
appeal of environments that bind language/database/display together isn't as
novel as it once was. In other words, Ruby and Rails is your 4GL today.

> Or was there some snobbishness amongst programmers who didn't view these
> products as 'real' programming languages?

Definitely some snobbishness; but also the fact that as developers, we have to
chase 'the new hot' on some level to stay current, and marketable. No one
wants to be stuck only knowing coldfusion, when those jobs all go away.

[1]
[https://www.elevatesoft.com/products?category=ewb](https://www.elevatesoft.com/products?category=ewb)

[2] [https://harbour.github.io/](https://harbour.github.io/)

------
codeonfire
These languages were supposed to eliminate programmers by having analysts do
all the tech work. However, doing tech work is career suicide for any non
programmer. What if a future VP was caught cleaning the toilets... The curse
of frameworks is that at some point businesses outgrow them and then they hit
a wall with performance, ability to add some feature, or huge licensing fees.

~~~
blablabla123
Didn't know that, can you elaborate on that? Anyways 2 guys directly come into
my mind which where not programmers but still involved into tech work. (One
guy was actually doing FoxPro stuff with his private license, and the other
guy had a server with some custom PHP. The one guy was on the lowest point of
the career ladder at the company and the 2nd guy got fired eventually.)

~~~
codeonfire
Well it is rooted in basic anti intellectual thought. How can computer nerds
possibly understand business? Therefore we will create fox pro and eliminate
the nerds. In reality non programmers have to do guerilla tech work in secret.
Yes, it was called guerrilla tech work because IT and nerds were so hated.

------
dzmitry_lahoda
Modern rival [http://witheve.com](http://witheve.com) . Current approaches
seems became much more math heavy.

~~~
a-saleh
I was thinking if something like eve, would be able to carve out a similar
niche. Someplace between spreadsheet (that can surpass simple desktop apps in
complexity), database, data-analytics worksheet and a thrown together
dashboard?

I need to get around to try eve. So far I got by using Jupyter/iPython
notebooks for similar purposes, which means I don't have as much of a need.

If you tried eve already, what did you build with it?

~~~
zubairq
Yes, I think Eve will stand a good chance as they integrate with the ecosystem
around them, ie: using Rest and javascript, so it will have a better chance of
lasting

------
miguelrochefort
Because 5th generation programming was better, until it too died for reasons I
can't explain.

