Est. 1989 Intermediate

Eloquence

A Business BASIC dialect bundled with an IMAGE-style database, built to carry HP 250/260 business applications onto HP-UX, Linux, and Windows.

Created by Michael Marxmeier (Marxmeier Software), for Hewlett-Packard

Paradigm Procedural, Imperative
Typing Static, Strong (numeric and string types declared or implicit)
First Appeared 1989
Latest Version B.08.40 (2024)

Eloquence is a commercial development and runtime environment for business applications, built around a Business BASIC dialect and a tightly integrated network database descended from HP’s IMAGE. It was never designed to be a general-purpose language competing with C or Pascal. It was designed to do one job extremely well: take an existing Hewlett-Packard business application, written for hardware that was about to disappear, and keep it running somewhere else.

That narrow, pragmatic charter is exactly why Eloquence is interesting. Most migration bridges are temporary — a few years of breathing room while the real rewrite gets funded. This one was still shipping new major releases and patch bundles more than three decades after its first release.

History & Origins

The HP 250 and HP 260

The story starts with hardware. In 1979 Hewlett-Packard shipped the HP 250, described by Marxmeier as technically a descendant of the HP 9845 workstation, running an HP proprietary 16-bit processor similar to the 9845’s and supporting 192 KB to 512 KB of memory. What made it popular — reportedly especially in Europe — was not the silicon but the software stack: HP Business BASIC as the programming language, and the IMAGE database as first-class, built-in storage.

The original operating system was limited to single-user operation; subsequent OS releases added multi-user support. When the product was transferred from the United States to HP’s site in Böblingen, Germany, the line was renamed the HP 260. The last HP 260 system was discontinued in 1989.

Eloquence as an escape hatch

By the late 1980s, customers with substantial HP 250/260 investments faced the usual end-of-life problem: working, business-critical software with no hardware to run it on. Development on what became Eloquence began in 1987, aimed at porting those applications to HP-UX. Eloquence was first released in 1989, the same year the last HP 260 machines went away.

The approach was not translation-to-another-language. It was reimplementation of the environment: the same Business BASIC dialect, the same IMAGE-style database calls, the same terminal-oriented I/O model, running on Unix. Because the source did not have to change much, the vendor’s history claims applications could be ported “in a matter of hours” — an unbenchmarked vendor characterization rather than a measured average, and one that presumably describes straightforward applications.

Michael Marxmeier is credited as the author of Eloquence. For most of its life the product shipped as “HP Eloquence.” According to HP’s 2002 transition notice, Marxmeier Software AG had by then been responsible for HP Eloquence product development and back-level support under contract with Hewlett-Packard for 14 years, and had handled worldwide Eloquence distribution since 1997. Effective 20 November 2002, HP transferred full product responsibility to Marxmeier Software AG.

A note on dates: some language catalogs list Eloquence at 1984. The vendor’s own history places the port project at 1987 and the first release at 1989; the mid-1980s date most likely reflects the HP 260 era of the underlying Business BASIC environment rather than Eloquence itself.

Design Philosophy

Eloquence is organized around a small set of convictions that were unfashionable then and are unfashionable now.

Compatibility beats elegance. The language exists to preserve running software. Line numbers, IMAGE format strings, function-key handlers, and DBGET status arrays are all retained because breaking them would defeat the purpose.

The database is part of the language. There is no ORM, no connection string, no separate query dialect required for ordinary work. Database manipulation statements are plain statements in the language, sharing its variables and its error-handling conventions.

One environment, whole application. Language, database, user interfaces, and development tools ship as a single integrated product rather than a stack the customer must assemble.

Scale down as well as up. The same product is meant to run on a single-user laptop and on a multi-hundred-user server, which matters for a customer base of small and mid-sized VARs.

Key Features

The language

Eloquence programs are line-numbered Business BASIC with labels, structured control flow, and user-defined functions. Variables are numeric or string; numeric variables come in INTEGER, DINTEGER, SHORT, and REAL forms, and arrays may have from one to six dimensions. Later versions added user-defined types with TYPE ... END TYPE, including an EXTENDS clause for member inheritance.

Formatted output uses the classic HP IMAGE / PRINT USING mechanism, and PACKFMT with PACK/UNPACK maps database record buffers onto program variables.

Database access in the language

Database work is done through DBML statements — DBOPEN, DBGET, DBFIND, DBPUT, DBUPDATE, DBDELETE, DBLOCK, DBUNLOCK, DBINFO, DBCLOSE — each taking a status array that the program checks after every call. A representative fragment, in the style of the vendor’s own example programs:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
1040     INTEGER S(9)
1050     DIM B$[12],P$[10],Buf$[170]
1060     DIM Desc$[30],Order_no$[10],Name$[30]
1080     B$="  SAD,SALES"
1090     P$="MANAGER"
1100     DBOPEN (B$,P$,3,S(*))          ! OPEN FOR EXCLUSIVE ACCESS
1110     IF S(0) THEN Dberr
1220  Start_report:DBGET (B$,"CUSTOMER",2,S(*),"@",Buf$,0)
1230     IF S(0)=Eof THEN End_report
1250     UNPACK USING Pf2;Buf$
1260  Pf2:PACKFMT Order_no$,Name$,60X,16X,6X,12X,8X,2X,2X,6X,2X,Price
1270     PRINT USING Itm_image;Order_no$,Name$,Price
1280  Itm_image: IMAGE 16A,22A,2X,5D.DD
1330     GOTO Start_report

If that looks like IMAGE programming on an HP 3000, that is precisely the point.

The database engine

The Eloquence database derives from IMAGE but is not a straight clone. Marxmeier documents dynamic nested transactions with transaction isolation, deadlock detection and recovery, on-line backup, and files that grow dynamically as needed. Rather than the classic hashed master sets with migrating secondaries, Eloquence uses integrated indexing. Later releases added forward-logging, auditing, replication, field-level encryption, and item-level security by privilege level.

User interfaces

Applications are not stuck at the character terminal. Eloquence provides DLG-prefixed dialog statements driven by a dialog server, with an ASCII dialog manager for terminals and, more recently, WEBDLG and WEBDLG2 for running dialog-based programs in a browser. Marxmeier describes the B.08.40 web interface as working on any device with a web browser and requiring no client-side installation.

TurboIMAGE compatibility

The TurboIMAGE compatibility API, which dates to around 1999 and was later folded into the mainline distribution, lets HP e3000 applications talk to an Eloquence database. Marxmeier says it “aims at providing almost 100% compatibility with existing HPe3000 applications,” and that the compatibility layer does not itself impose a performance penalty — a vendor statement offered without published benchmark figures or test conditions. The B.07.00 release added native support for TurboIMAGE item types and further improved compatibility. A QUERY3K utility provides a QUERY/iX-compatible replacement.

Evolution

ReleaseTimingHighlights
Initial release1989HP 250/260 to HP-UX migration environment
B.07.00 era2000sSubstantially expanded TurboIMAGE compatibility
B.08.00Dec 2008 (HP-UX, Linux); Windows Feb 2009Major platform release; 32-bit and 64-bit Windows
B.08.10Jul 2010 (HP-UX, Linux); Windows Sep 2010Windows x86 and x64
B.08.20May 2013General availability across all three platforms
B.08.30Beta announced Jun 2018; Webdlg2 added in a Nov 2022 updateBrowser dialog server
B.08.40Nov 2024Cross-platform binary database compatibility, WEBDLG2, license server for cloud/container use

Marxmeier states that Eloquence is available on the HP-UX, Linux, and Windows platforms; the B.08.40 release notes cover HP-UX (including IA64 hardware), Linux (with yum and deb repositories), and Windows. Exact per-release architecture matrices vary, so check the release notes for the version you care about rather than assuming a given CPU or OS revision is supported. One documented narrowing: B.08.40 no longer includes any PA-RISC libraries for use with the Aries emulation on HP-UX 11.31 for IA64, though the vendor offers them on request.

Current Relevance

Eloquence occupies a specific and durable niche. It is not on language popularity charts, has no package ecosystem, and attracts no new greenfield projects. What it has is customers: Marxmeier has reported over 2,500 installations worldwide and roughly 60 VARs and ISVs building on it, though those figures come from vendor material dating to the early 2000s and no current independent count exists. The product does still receive patch bundles — B.08.40 patch documentation carries revision dates into 2026.

That combination is why “dormant” is a fair label for the language’s cultural momentum and a poor one for its operational status. Nobody is writing blog posts about Eloquence idioms. Businesses are, by all indications, still running vertical-market business software on it.

Why It Matters

Eloquence is a case study in a problem the industry keeps rediscovering: what happens to working software when its platform dies.

The usual answers are rewrite (expensive, risky, often abandoned) or emulate (fragile, performance-bound). Eloquence took a third path — faithfully reimplement the language and database semantics on new hardware, so the application source itself remains the asset. Then, having done that once for the HP 250/260, it did it again a decade later for HP e3000 TurboIMAGE shops. The same trick, applied to a second stranded community.

It also stands as a reminder that Business BASIC was serious infrastructure, not a toy. The HP 250 combination of an approachable language with a real network database built in was genuinely productive for commercial work, and the applications it produced outlived their hardware by decades — which is more than most software achieves.

Sources

Timeline

1979
HP releases the HP 250 business computer, whose development environment pairs HP Business BASIC with the IMAGE database
1980s
The product is transferred from the US to HP in Böblingen, Germany, and the system is renamed the HP 260
1987
Work begins on Eloquence as a way to port HP 250/HP 260 applications to HP-UX
1989
Eloquence is first released as a migration environment; the last HP 260 systems are discontinued the same year
1997
Marxmeier Software takes over worldwide Eloquence distribution
1999
Work on the TurboIMAGE compatibility API dates to around this period — the QUERY3K utility carries a 1999 copyright — and it is later folded into the standard distribution
2002
Effective November 20, Hewlett-Packard transfers Eloquence product responsibility to Marxmeier Software AG
2008
Eloquence B.08.00 released in December for HP-UX and Linux, with 32-bit and 64-bit Windows following in February 2009
2010
B.08.10 released in July for HP-UX and Linux; Windows support added by September
2013
B.08.20 reaches general availability in May across HP-UX, Linux, and Windows
2018
A first beta of B.08.30 is announced in June
2022
A B.08.30 update in November integrates the Webdlg2 server for browser-based application dialogs
2024
B.08.40 released in November with cross-platform binary database compatibility, the WEBDLG2 web UI, and a floating license server

Notable Uses & Legacy

HP 250 / HP 260 application migration

The original and defining use case: Eloquence let shops move Business BASIC and IMAGE applications off discontinued HP 250/260 minicomputers onto HP-UX. Marxmeier's own history claims applications could be ported "in a matter of hours while removing most of the previous limitations" — a vendor figure, with no independent benchmark of typical migration effort.

HP e3000 / TurboIMAGE migration

Eloquence's TurboIMAGE compatibility API, under way by the late 1990s, was well positioned when HP later announced the end of the HP e3000 line. Marxmeier says the API "aims at providing almost 100% compatibility with existing HPe3000 applications," making Eloquence a landing zone for MPE/iX shops.

VAR and ISV business applications

Michael Marxmeier reported 2,500-plus installations worldwide and roughly 60 VARs and ISVs building on Eloquence — figures given in conference and vendor material dating to the early 2000s — shipping ERP, order-processing, and other vertical-market business software. Individual customer names are not publicly documented.

Robelle tooling ecosystem

Robelle, a long-standing HP 3000 tools vendor, documented and promoted Eloquence as an IMAGE migration target and published introductory material and conference talks on it.

Language Influence

Influenced By

HP Business BASIC BASIC IMAGE

Running Today

Run examples using the official Docker image:

docker pull
Last updated: