Hacker News new | past | comments | ask | show | jobs | submit login
Exploring Borland DBase IV for DOS (2020) (psychocod3r.wordpress.com)
77 points by elvis70 on March 4, 2021 | hide | past | favorite | 102 comments



Ah the good times when you could build a functioning business application in a day or two or three.

Now it takes 2 weeks to evaluate the latest UI frameworks only to find the one you chose (or it's tooling) is obsolete before you finish the project:

https://hackernoon.com/how-it-feels-to-learn-javascript-in-2... (from 2016).


I was thinking the same thing. In fact, I've been thinking along these lines for a while now. It would be cool if someone were to revisit the idea and re-create it in a modern form.

Modern, but without all the nonsense we waste time on today.


Airtable (https://airtable.com/) and Coda (https://coda.io/) are two products which might fit the bill.


No they are not at all because you don't own the final product and the cost over the life of the project is just insane, users don't see that because it scales slowly and once you're hooked that's hard to escape...


In case anyone doesn’t get the Guy Fieri reference: https://medium.com/s/silicon-satire/i-peeked-into-my-node-mo...

It has been removed though: https://github.com/babel/babel/pull/3646


> just wait for it, we are going to do assembly in the web in a year or two.

Oh no... He predicted WASM.


dBase IV tanked the dBase Line. dBase III+ was an amazing product - that everyone used, was super reliable - I made a ton[1] of money in college writing up, teaching dBase III+ systems (Along with with FoxBase PRO).

When dBase IV came out (From Ashton Tate, Not Borland) it was buggy, and much of the stuff in the user manual literally did not work. I was super excited about the SQL support in dBase IV - until after an entire evening of trying to get it to work I realized they had shipped non-functional code. Not buggy - it just didn't actually work as documented. Ended the company. (They came up with massive patches years later - but it was too late - people had moved on).

I would love to read a story on how they decided to ship a product that was essentially still 12-18 months from being completed. I'm guessing (?) they were about to run out of cash - and selling something, even if it didn't work, kept the lights on? Hard to believe given how dominant dBase III+ was back then.

[1] Where, by ton, I mean many, many hundreds of dollars. Which felt like a lot of money back then.


"In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters" is a great book that covers Ashton Tate's blunders, as well as others from the golden age of tech.


This book is mandatory reading.


Loved FoxBase PRO. In college I traded a gym membership for foxbase programming. I sometimes wonder that we haven't progressed much at all from those days.


First real job and all I had was Foxbase Pro, Turbo C 2.01, and a PostScript printer. It made for some interesting programing and data display.


Dbase IV biggest issue was that it supported the SQL syntax for the first time and it's implementation was just buggy and FoxPro just worked better.


dBase III+ was pretty good but I wouldn't call it super reliable.

It had a bad habit of corrupting the database often requiring a rebuild. Not a big deal but a bit of a productivity killer.


Fun times and all in an era without raid storage, though the likes of Novell Netware soon did well addressing that in the years that followed.

I didn't do much DBase work in that time, but did do Dataease https://en.wikipedia.org/wiki/DataEase (if you get an old copy hold down the CTRL key and type DEBUG and you will get a hidden debug mode, might also need to hold shift and do not recall if debug was upper or lower case but one or the other will work in the old DOS versions at least).

Which was pretty powerful stuff and was used for bespoke construction projects - what would be the realm of ERP in many ways. But large projects like the construction of oil-rigs was not isolated and few large engineering projects would be using your DBase, Dataease and Paradox! as well as few that I do not recall at the moment.

Was not long after that we saw SQL start to take some traction in usage and availability. Which was also around the time that the GUI war (however brief the GEM/Windows and then Windows/ OS/2 was) and saw many of those legacy databases fall upon those swords over the comming decade and early 90's release of Access sure did cat those who was left, combined with some aggressive office bundles and that included later their server system with backoffice - all priced together for the price of a competitions single package offering and that further hammered many of the competition that come the end of the 90's - many just hang on to stalwart legacy customers and for some, that help for a while.


I still use DataEase v4 for DOS (no interest in the Windows versions). For rapid development of databases, with forms and reporting, nothing current beats it for speed and flexibility (if you have the familiarity of course).


Borlands database was Paradox not dbase. Looks like borland was picking up the pieces of failing PCDOS companies A better history is on Wikipedia https://en.wikipedia.org/wiki/XBase

For dbase look at Nantucket Clipper and Fox Base (which MS bought). They lasted into the Windows era. Also see the open source harbour which round on unix


Borland bought Aston-Tate in 1991, and thereafter owned dBase.

Borland also developed Paradox prior to that acquisition.

Clipper and FoxBase were dBase clones, and not always compatible.

I did a lot of Clipper programming in the 90s, and a lot of reporting in MS Access. The dBase ODBC drivers could sometimes be hit or miss when used with Clipper DBFs.


For DB applications, I got introduced to xBase via dBase III, then moved into Clipper Summer '87, followed by Clipper 5.x including doing OOP stuff in it.

And that was it, Visual Objects was a disappointment and I eventually fully focused on C++/TPW based applications on Windows 3.x.


And let's not forget Btrieve. Prior to my Clipper work, I did a lot of work building an estimation and accounting system based on Btrieve databases, using an obscure system called TAS Professional. Evidently it still survives in some incarnation: http://www.cassoftware.com/tas/manual/index.html?btrievesetu...


We used it under DOS for our backoffice system - you talked to the "database" engine using an interrupt via loaded as a TSR utility.


I know of at least one government contractor that was still shipping a clipper application at least until 2019. It is amazing the software that is foisted on government grantees.


Borland bought Paradox (was developed by Ansana (???)) as a me-too move when their biggest competitors Microsoft/Lotus was moving into databases.


I don't remember this history -- Borland bought Ansa Paradox in 1987.

Microsoft had no desktop database product then. It bought FoxPro in 1992 and Access was released in 1992.

Lotus also had no desktop database product then. Lotus bought Approach in 1994.

The dominant desktop database products of the time were dBASE/xBASE (Clipper, FoxPro etc.).

Which database products from MS/Lotus were you thinking of?


Recall their Sprint word processor and Quattro Pro , part of their demise was stepping out of the niche compiler market into more mainstream office market.


Borland had very little except "me too" products, TBH. Pascal, C++, etc. But Delphi was a nice system, FWIW. Of all the Borland products, this one had the longest shelf-life, now still actively developed by Embarcadero.


I really don't agree and I don't think creating a product in the same category is "me-too".

Borland had some truly great products back in the day. Quattro Pro had innovations that surpassed the incumbent 1-2-3's. Paradox had innovations that superseded dBASE. Turbo Pascal was a popular product on its own merit (UCSD Pascal, Quick/MS Pascal never caught on commercially). Turbo C and Quick C were competitors, and many applications back in the day used the Turbo Vision text UI.

In the 1980s and early 90s, the marketplace was full of competing office products before Microsoft Office came around and dominated then scene (folks might remember Lotus SmartSuite and Corel WordPerfect Office).

Spreadsheets weren't always synonymous Excel, nor word processors with Word.


Dude, I used to use Visicalc.


Which should help you understand my perspective better. I don’t agree that Borland “had very little except "me too" products“ just because another product in the same category existed first. Lotus 1-2-3 was essentially a clone of VisiCalc on the IBM PC but it was also its own thing.


I recently came across my old Clarion disks. Clarion on OS/2 - those were the days!


Harbour is really interesting and, last time I saw it some years ago, its development was pretty active.

I have already messed around a bit with Harbour and even wrote some small tools for personal use. I was pretty happy with the combination of modern capabilities with the old-school "TUI ergonomics", allowing one to render a TUI to a Win32 GDI context (they give a name to that capability, which I can't recall. It seems that there is also the possibility of rendering to X11 windows, if I'm not mistaken).

I know a couple of decades-old Clipper shops which continued their development with Harbour (although they migrated from DBF files to relational databases), and their businesses are doing fairly well.


Borland acquired Paradox from Ansa. They later acquired Ashton Tate which gave them dBASE.

For those who have used both, many consider Paradox the superior product (technically and also in terms of ease of use, hence the name “paradox”). It had innovations like QBE and a modern Turbo Vision interface. The Paradox Application Language (PAL) was a joy to write in. dBASE had name recognition but was unwieldy in many ways.

Having two flagship database products unfortunately led to a confused strategy and neither product thrived after the acquisition.


FWIW, Paradox was also originally an acquisition by Borland, from a company named "Ansa Software".


In the end Borland acquired what was left of Aston Tate, so I guess it's fair to call it Borland now.


Something that popped into my head the other day, is that I think we missed a trick going straight from text based UIs with their uniform simplicity to rich, pixel-perfect GUIs.

Would be interesting to see a design system that somehow sits in-between these two extremes. I've got no idea what that looks like.


I experimented with building something like that (at the time) as a potential graphical BBS interface with low bandwidth requirements. Basically combination of sprite editor / "level editor" to create graphical screens as a grid of entries into the sprite table, the sprite set & graphical screens required very little bandwidth.


I agree completely, and I'm actively working on this. There have been many advances in "text-based UIs" and the modern TUI can have both the uniform simplicity you speak of, along with a rich, mouseable, colorful, unicode interface.


Are you imagining something like the PLATO system? https://en.wikipedia.org/wiki/PLATO_(computer_system)


Not quite. What I envision is something that has a broader colour palette, say 256 colours. Themeable. Perhaps like subpixels, there’s some kind of sub-character addressing mode to give more control aesthetics but not too much. And for contiguous blocks some basic capability to support proportional width text. Same with ability to fill blocks with images.

I may have already gone too far with the proportional text.


Yeah, there's something about character-cell displays that makes knocking out a UI prototype really easy, because everything naturally aligns itself to the grid.

It's a bit depressing to watch the HTML/CSS users go through huge contortions to set up a reliable cross-browser typographic grid (i.e. a consistent line-height) and equally-spaced 12 column layout. On the VT100 you get all of that for free. :)

I don't think I've ever seen anyone explore the concept of mixing proportional fonts with the standard 80-column monospaced character-cell display. One problem to solve is how to inform the program driving the terminal about the font metrics (i.e. width of each character) -- this already rears its head when showing UTF-8 text on a terminal thanks to CJK full-width characters, but in that case the width is always exactly 1.0 (half-width) or 2.0 (full-width) and isn't a property of the terminal's current font.



Sounds like you're describing an Amiga http://toastytech.com/guis/amiga1.html


Another good thing of text based UIs is that they can be way faster without the need for a mouse.


Sounds like Emacs' GUI mode.


plan9/9front/acme.


Both dBase III and dBase IV predate the acquisition by Borland. This kind of stuff is super easy to fact-check, so I'm always a bit put off by pieces which make those kinds of factual errors.


In fact, it was at least in part the screwed up introduction of dBase IV that led to Borland's acquisition of Ashton-Tate.


Yet the installer screenshots pretty clearly say Borland.


As per the sibling comment, Borland acquired Ashton-Tate after dBase IV 1.0 shipped in part because it was such a disastrous release. I think 2.0 was the first Borland release.


Presumably Borland rebranded after they acquired Ashton-Tate.


I remember doing a project for my CS degree in DBase III, and in my first job out of university I built a back office system for a very large UK cinema chain in Clipper. Discovering Blinker was a game changer, and Mike Schinkel's "Programming in Clipper 5" was my bible.

The nostalgia is real.


Blink and you'll miss it !!

Oh the nostalgia. Linkers were exotic at the time. Before I discovered Blinker, I got to use Exospace that was shipped with Clipper 5.3. A lot of old goodies are still availabe at the The Oasis mirror at https://harbour.github.io/the-oasis/ftpgenrl.htm


Good to see Exospace being remembered. My brother Greg created that and a lot of other Clipper addons. He passed away a few years ago but I know me enjoyed being part of that community.


"dBase was THE first commercially successful DBMS in computing history"

Got to love people who think computing didn't exist before the PC.


Ah, yes, the IBM PC. I think of it as the Permian extinction (Great Dying) of computer science.

I’m joking, but... most higher level languages were tossed aside for “serious” app development. First to use x86 assembly, then “portable assembly” (C). Much of the “worse is better” methodology can be attributed to giving many people computers, but initially very underpowered computers.


Please name this first commercial succesful DBMS you are thinking about then.

For me, only Oracle comes to mind.


MicroRIM's R:Base had modest success, pre client/server. It was always a true RDBMS. I had used R:Base for "real work" and dBase (and kin) for flatfile type stuff.

https://en.wikipedia.org/wiki/R:Base

I've always wondered how Oracle swept the industry, and R:Base did not. Probably multiple factors.

Like Oracle's initial customers had big iron and those enterprise contracts are big money. Whereas R:Base was part of the personal computer revolution and so probably wasn't even considered.

In my mind, MS Access was the market fit successor. IIRC, Access was the first "workgroup" (network file sharing vs true client/server) RDBMS to make the jump to GUI. A bit like Excel displaced Lotus 1-2-3.

Too bad. Much as I came to love Access, I also loved R:Base.


For certain values of "database", MUMPS came out in 1966: https://en.wikipedia.org/wiki/MUMPS


IBM IMS goes back to 1968 (originally developed for NASA). Cincom's TOTAL was sometime around the early 1970s. I'm sure there were databases on DEC's PDP systems. And so forth. dBase II was an important early database product for CP/M and then DOS systems but there were many earlier databases on mainframes and minicomputers.


Thanks for the follow-up.

> there were many earlier databases on mainframes and minicomputers

We were talking about commercially successful DBMS. From the Wikipedia-page it is still not clear to me when IMS became a DBMS for example. Wikipedia lists TOTAL as released in 1982.


IMS was always a database. But it was hierarchical rather than relational. I was thinking TOTAL was earlier than it was though given the company had been in business for quite a while.

What is true is that pretty much all the earlier database products were tied to specific system hardware. In fact, Cincom (which developed TOTAL over time) was arguably the first independent software vendor. So there were lots of databases being put out by successful computer companies (indeed most of them). They just weren't products you would buy or use unless you were also using a particular manufacturer's hardware.


TOTAL was around and already considered old-fashioned (because it was hierarchical rather than relational) in early 1981, when I persuaded my boss not to use it.


In computing history claims like "first" and "commercial success" need to be qualified and defined, and therein things become difficult since timing and thresholds matter to meet a generally acceptable standard of either claim.

In the 1960s, several companies were selling commercial database management systems (as a distinct product), for example: IBM IMS, Univac DMS and General Electric IDS. These ideas were established to a level that there was a database standard committee known as CODASYL active from 1959 onward.

There is a good overview of the 1960s here: https://link.springer.com/content/pdf/10.1007/978-0-387-3474...


Not relational but IBMs Information Management System (IMS) comes to mind.

https://en.wikipedia.org/wiki/IBM_Information_Management_Sys...

dBase appears to be the first DBMS for minicomputers however.


microcomputers. But, yes, that was probably the case. At least the first one of any significance that I can recall.


Ingress (not sure if that meets the "commercial" or "successful" criteria, but enough that I remember it). The ancestor of Sybase and SQL Server.


A friend of mine did a lot of work with Model 204 about 1990. According to Wikipedia, it was first deployed in 1972.


It just wasn't a strongly-relational one. Marketing! xD


Back then I refused to call it a database. It was more like a data bundle or data bunch.


Pretty much. It was a queryable, flat file spreadsheet verging on what we would call a NoSQL these days. Referential disintegrity.


Brought back some good memories of my old days writing Clipper software. Performance was fast, I mean really fast, even on plain 486 PC hardware. I still have some sources around, although I made use of external libraries iirc for .nsx indexes and other things and they wouldn't compile with some free Clipper clones.


Clipper was the first programming language I learned as a kid outside of bat files. My dad worked with it at work, so we had a copy at home that I played with. Loved making those textual UIs using the double border boxes.


dBASE was a product of Ashton-Tate, not Borland. [1] Odd sidebar: Ashton-Tate had a BBS accessible via a toll-free (800) number for many years and it was extremely popular. I shudder at the thought of their monthly phone bill.

I built several systems using dBASE III and Clipper. Ah, the Summer of 87. [2]

I know I'm old and washed up when I wish I could time travel back to this era. I miss it.

[1] https://en.wikipedia.org/wiki/Ashton-Tate

[2] https://en.wikipedia.org/wiki/Clipper_(programming_language)


When a program could be written and be useable within hours.

Now it takes me days to install VM's and butchered/forked SDK's and cloud connectors and incant the various sacred undocumented mantras before I can actually open VSCode and start coding.


The tool that impressed me most back then was Dataflex version 2. Version 3 felt very PC-centric and added some OOP ideas that didn't feel right. It was trivially easy to quickly write a screen layout and derive table structure from it. From there to a full-function CRUD was more or less nothing.

I like to compare it to "Rails for the VT-100".

That and Mantis (not sure the version) on an IBM mainframe (something like "Rails for the 3270")


I spent a whole summer in my early teens were my dad paid me to write a DBase IV database/app and to inventory all of their parts (he was a co-owner in a business that serviced CNC machine tools). When I'd get tired of DB 'coding' and data entry I'd go and count parts and write the data in a little notebook to later be entered. Of course it was all a waste because neither he nor the staff ever updated the database when things came and went and it quickly went out of date. I think I was 13 and it was my first introduction to computers being used for business reasons. I was soo over it by the end but now I look back at that summer fondly - I got to go to work with him every day and he took me to lunch and I actually went from a blank PC and copy of DBase to a functional thing myself. I think it put me on my path to computing career and success (next MS VisualBasic and MS Access then 'proper' CS at College etc.).


Library terminals! I remember the public library in my hometown had both an InfoTrac PC (with CD-ROM, in the 80s!) with a horribly burned-in amber monitor, and actual green screen terminals connected to some beast in the basement or someplace (VAX?) to search the card catalog.


I remember that half the searches at the main library would refer you to the microfiche (for some reason they'd know which one to look at but wouldn't have the data).


I was actually still using Sequiter CodeBase (dBase/FoxPro/Clipper) until last year, when I upgraded to 64-bit and couldn't compile the CodeBase source. There were 64-bit flags in the code, but it failed to work. Switched to SQLite, should have done years ago.


Cough, cough, Ashton Tate. Would someone like to fix the headline?

https://en.m.wikipedia.org/wiki/Ashton-Tate


Headline's fine, you need to update your historical timeline. I'm also sure you missed the part of the article that illustrates install screens with the company name "Borland" displayed.


Does anyone remember WordTech's dbXL? It was yet another DBase clone.

When I was a kid, my dad brought a copy home to play with. I fiddled with it but never really found any use for it. Unfortunately somebody (not me) threw out all the 5.25 inch floppies years ago, it was on one of them.

(There's a copy of it on vetusware, but not the English version.)

Edit: I found the English version here: https://www.swcs.com.au/db3.zip


That progressions of screens is remarkably similar to what you see today with things like Quickbase, Zoho Creator, Knack.com, Ragic.com, etc.


A lot of low-code solutions aimed at collecting and reporting on data are based on streamlined versions of the workflows from old-world DBs like this (and, later, Access): Define your data, define how it is joined for reports, drag-and-drop form/table designers of varying complexity for data entry. So the UI is likely to feel similar unless/until someone comes up with a genuinely new paradigm for this sort of thing. Some are a bit more spreadsheet+transformation based, but that is the "define data & connections" part and once you add custom forms for easier data entry you are essentially back to the same place just maybe hiding the table structure less.


Neat, this was the first db I was exposed to at school and didn't touch another for years. Didn't know it could be so colorful, my memory is of grey on black. CP 437 FTW though.

I thought the lang was a precursor of SQL, but people are saying that's not the case. Might explain why I also didn't know SQL for a long time.


SQL dated back to work at IBM in the early 1970s but it didn't actually find its way into products from IBM and Oracle for almost another decade. I can't say to what degree any of that work influenced dBase. Certainly, the relational model wasn't dominant at the time.


Interesting, I definitely remember tables of records of fields, etc. Foreign keys I can't remember if they existed or not.


I'm not sure I'd go with the green terminal feel. By the time dBase IV was released, VGA was becoming popular a lot of us moved to color monitors. Even the monochrome ones were white, thanks to the adoption of GUIs.

Last green-screen I used was on a CGA system. It was horrendous.


You really only wanted CGA when you had to do something graphical. The nicest thing you could probably say was it was better than nothing. For most purposes, it was better to just use text monochrome. (There was monochrome graphics with Hercules and some other proprietary variants but they were never very widely supported.)


At least in Brazil, where I lived, CGA monitors were much cheaper because they had high commonality with B&W TVs, CCTV monitors, and the monitors that have been used with 8-bit computers. Color RGBi monitors were not as common because they required better CRTs than most TVs that size and decent color monitors only started appearing when it became easier to import them and their parts.

I'm not really fond on the MDA/EGA/VGA default fonts either unless we are talking about the ones that came with the Cordata or Toshiba portables ;-)


> dBase was THE first commercially successful DBMS in computing history

Is that true? I worked only with PC’s back then but I’m sure that the “mainframe” computers of the day were doing mostly database workloads. Think banks, insurance companies, accounting software...


I started my coding career when I discovered you could compile your Dbase III code (CRUD stuff) using the Clipper compiler into a DOS executable.

Then Clarion was released with it's amazing app generator.


I still have my Clarion disks. I'm a bit shocked you are the first to mention it in this thread - and so far I'm more than several pages down into it :p


I‘d love to see it used as a DB backend for a small website. :-D


First job is dBase system building,in parallel to use sir/dbms in univac. Just 1 person in those days. It is very different when I work as DB2 dba.


Last year of mathematical high-school (Bulgaria, 1993-94) I had assignment for dBase. I hated it, but I was rebel back then :)


Interesting. Maybe take a look at R:BASE too. It was the first relational database for the PC. dBASE wasn't very relational (didn't emphasize referential integrity) at first. MicroRIM also took/takes pride in its code.


"referential integrity" is not necessary to make something relational.

Is just that for some reasons, everyone on the RDBMS/relational space instantly add EVERYTHING that make a rdbms.

Is like adding transactions to OO... and if a OO implementation don't have it claim is not OO.

P.D: I'm building a relational language... And also start with FoxPro. What it not have at the time was well rounded SQL support but is until this day MUCH better rdbms tool than any other on the market, by a mile (considering the difference on time and scope, btw)


Never said that. And I'm having difficulty following what point you're trying to make because there's little coherence or grammar to your writing.

Referential integrity is a real DBMS term, so I don't know why you're poo-pooing it. It means never having dangling foreign key references.

The drop or preserve semantics of RI are dependent on R-E DBMS design (foreign keys). RI is fundamental to data hygiene, unless you'd prefer customers have a huge mess and then blame you for it.

FoxPro is/was based on dBASE II/III. R:BASE predates it by 3 years.

Good luck to you!


Relational databases were pretty new at the time of dBase II, although at least IBM and Oracle had SQL-based products. There were a bunch of other databases in the market however.


IBM's System R came out in 1977, and DB/2 in 83.

R:BASE was the first RDBMS on the PC. Oracle existed in 1979 but was only ported to PC in 1984.

NonStop SQL in 1987 was revolutionary.


I entirely forgot about R:BASE. Thanks for the memories. I worked in it only briefly, as a teenager. My uncle, an early PC adopter, introduced me to it.


Foxbase/FoxPro and Clipper also.




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

Search: