3

A discussion on programs that used the 8087 mentions several categories I expected, and one I did not:

  • Database programs (dBase IV, FoxBase, Paradox, Revelation)

The more I think about it, the more that sounds really weird. I expect databases to bottleneck on memory and disk, and perhaps on CPU integer/general logic operations if they accept a complex query language like SQL, or stored procedures.

But I never, ever heard of a database bottlenecking on floating-point calculation. A Google search for 'borland paradox 8087' doesn't indicate such either.

How on Earth were those old DOS database programs bottlenecking on floating-point arithmetic? Or is the claim simply incorrect?

6
  • 2
    SQL supports floating point operations which are useful for weather modeling and so on. Nov 10, 2020 at 1:43
  • 2
    @snips-n-snails - I don't recall any SQL databases back then running on 8086/8087 machines ... At that time SQL was large machine territory. You took a big performance hit by going to SQL for its clean expression of data operations compared to contemporary alternative database access methods. It took a long time for SQL implementations to displace other access methods because of this. (I'm going to google now to make sure reality matches my memory ...)
    – davidbak
    Nov 10, 2020 at 2:25
  • 1
    Maybe the programmers all the time knew it was useless. It could be that one of the programs started just because they could and the rest just followed. Never underestimate the power of the market department.
    – UncleBod
    Nov 10, 2020 at 5:19
  • 2
    Microsoft C had an alternative math library which could be used if an 8087 was not available. The main problem was PCs in those days had very limited memory and disk space. Once you went over 64K all sorts of programming complications arose.
    – cup
    Nov 10, 2020 at 6:51
  • 1
    I used Informix SQL for DOS. The engine was implemented as a TSR if I remember correctly.
    – mannaggia
    Nov 10, 2020 at 11:13

2 Answers 2

6

You need to understand that using the 8087 was effectively "free" for the developers and for the users. You linked in a floating point library that determined the existence of the 8087, and if it was there, it used it. If not it fell back to a software method. This means that the users don't have to do anything special to their code to leverage it. The singular issue would be for a legacy database system using a floating point format that was not compatible with the 8087.

When something like that is "free", then there's no reason for a database program to not use it and make it available to it users. While database programs aren't known for their number crunching applications, people do perform extensive FP calculations on data, including that in databases. Not all databases were financial in nature (financial data, as a rule, should not use floating point).

So, for essentially zero effort, the database program and their users get enhanced FP support. No reason to not use it if it's available. Whether its noticeable is up to the application.

2

Many database programs, including later versions of dBase and Paradox, provided features beyond simple database table storage lookup. They could generate tables dynamically, and also had programming languages that enabled open-ended calculations and report generation.

Some people used them somewhat like spreadsheets, or where one might use a statistics or math programming language. One might wish to calculate the average value of every completed sale in the last month, for example. With tens of thousands or even millions of entries, that's a nontrivial calculation.

2
  • 1
    Unlikely, though, that anyone was doing databases with millions of entries on a machine that supported an 8087. Tens of thousands would be possible on such a machine - but would be so hopelessly I/O bound that you probably wouldn't need hardware floating point to support arithmetic done on rows ... in my opinion.
    – davidbak
    Nov 10, 2020 at 2:23
  • 1
    @davidbak This is likely true, and in fact I can't find any reference to floating point support in dBase until version 4, which is into the 32-bit era.
    – RETRAC
    Nov 10, 2020 at 2:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .