HN2new | past | comments | ask | show | jobs | submitlogin

dBase-derived languages in general were a lot of fun. And incredibly productive, basically taylor-made for cranking out CRUD apps.

I do ponder sometimes why we don't have something quite like that these days. Oh, people do try, but it's never that simple, and there are always a lot of moving bits with plenty of friction between them. The ease with which I could collect a bunch of data from a form and shove it into a record in a table somewhere in FoxPro is still unmatched (remember SCATTER/GATHER MEMVAR?).



>dBase-derived languages in general were a lot of fun. And incredibly productive, basically taylor-made for cranking out CRUD apps.

Yes, true. I did a good amount of XBASE (which is the generic term for dBASE, Foxpro, Clipper, etc., and I worked on all 3 of those) in my early programming days (along with Turbo Pascal and Turbo C) - including a very interesting line-of-business app for a switchgear manufacturer's factory - that one was in Visual Foxpro and using a Novell Netware LAN and Windows. Was on site there for around 10 months for the project. Turned out to be ~180 KLOC in size and had a lot of features, from CRUD to parameterized SQL reports of all sorts to somewhat advanced (for the time at least) decision-support sort of stuff, plus production planning.

>I do ponder sometimes why we don't have something quite like that these days.

There actually are a few options (maybe you are aware of them). Harbour project, Flagship (both names are probably plays on Clipper), and a few others. There are also both paid and free libraries that can read and write XBASE formats. My own xtopdf toolkit includes DBFReader, a class that can read dBASE files, both the metadata and data.

http://slides.com/vasudevram/xtopdf

https://bitbucket.org/vasudevram/xtopdf


I know that Harbour is a re-implementation of Clipper with some added features, but not much else.

I think it's less about the DBF file format and xBase syntax, and more about the high-level conceptual approach, with the language built around concepts like database cursors and mapping data (rather than relegating it all to a library). If this stuff is to be redesigned from scratch in a modern environment, it would have to deal with contemporary data sources - meaning SQL RDBMS - and the syntax could definitely be more consistent and less crufty.


I think you're right on that. Having the database-related features built-in to the language makes a difference. A bit like how REBOL has many data types built-in (~45, IIRC [1]). And if not now, I guess over time, Red will have them too.

[1] https://en.wikibooks.org/wiki/REBOL_Programming/Language_Fea...


I don't, but I'd like to. Most of the online documentation on Foxpro is old, and doesn't convey the magic that I've seen happen with it. I'd love to see some combination of Delphi with Foxpro, probably with LISP syntax and Qt bindings. And a little bit of sugar from haskell and kona languages.

What made Turbo Pascal great was the help system. For every single standard library function, it had a snippet of code that you could cut, paste, run, and tweak.


FoxPro also had a great help system, including context help with F1 for whatever was under the cursor. It wasn't quite as good as TP, because it didn't have true hyperlinked text - but it had a separate section in each article just for links ("See Also"), and it had very fast keyword search, so it was "good enough" in practice. And yes, also tons of examples!


With the exception of the LISP syntax, I agree with you!

I wanna get a relational / kdb+ / ml hybrid.

----

One of the gems of FoxPro was the always-on terminal. It have his own terminal/repl. In the IDE. Always ON. You can do

CREATE FORM name

and open the form as a table

then do

BROWSE

and see how was made. And you could activa the terminal on a shipped app, so you can fix things on the fly.

And the debugger (specially the var windows) was good. To date, no single debugger/var window have bees as good as was with Visual FoxPro.


I'd love to hear more about your thoughts on this. I couldn't find an email address in your profile, but I have an address in mine, so please shoot me an email.


I totally agree.

I'm pondering about build a Fox-in-spirit. I still mantain that NO programming tool today is good for database-development, and we need a modern take on the dbase.

My idea is build a relational language with a lot of the ideas of fox but with a modern syntax.

If somebody wanna to talk about this, and maybe help, I'm open!


Judging by the all comments and the upvotes in this thread, it looks like it's a more popular sentiment than I expected - so, sure? But this is probably best discussed in a setting more convenient than HN comments.


What about skype or slack? In http://www.elmalabarista.com I have my contact info


Why don't you make a small github organization and drop a link here? I've done some programming language work on the side, and I've been wondering a little about stuff like this.


Look like I have already a very old project (dormant) at https://bitbucket.org/elmalabarista/tablam/src, but more learning how do languages that seriously take the problem.

We could continue talking from here, in http://elmalabarista.com I have my contact info


I have the same sensation, I moved to systems and mobile development but I would feel a bit lost if I went back. I catch myself reimplementing xBase-style utility functions like date and string manipulation in other languages, since they felt so sane in comparison. But I wonder that part of this nostalgic sensation was the result of an era that was simpler - no Internet, Web sites were a luxury, security was a distant concern, etc.


What would it take to make a good dBase style environment? Would PicoLisp be an example? (granted it's a LISP, but it seems to have a focus on simplicity and CRUD style things)


On a different note, there is also Dabo, a framework for writing database-backed apps in wxPython that can use XBASE data formats, IIRC.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: