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
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:
| |
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
| Release | Timing | Highlights |
|---|---|---|
| Initial release | 1989 | HP 250/260 to HP-UX migration environment |
| B.07.00 era | 2000s | Substantially expanded TurboIMAGE compatibility |
| B.08.00 | Dec 2008 (HP-UX, Linux); Windows Feb 2009 | Major platform release; 32-bit and 64-bit Windows |
| B.08.10 | Jul 2010 (HP-UX, Linux); Windows Sep 2010 | Windows x86 and x64 |
| B.08.20 | May 2013 | General availability across all three platforms |
| B.08.30 | Beta announced Jun 2018; Webdlg2 added in a Nov 2022 update | Browser dialog server |
| B.08.40 | Nov 2024 | Cross-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
- Once upon a time — history of HP250/HP260 and Eloquence, Marxmeier Software
- Eloquence Product Information, Marxmeier Software
- Eloquence News archive (release announcements and dates)
- Eloquence Transition, Marxmeier Software (2002 transfer of product responsibility from HP)
- Introduction to Eloquence, Robelle (installation and VAR/ISV counts, early 2000s)
- Eloquence B.08.40 Release Notes
- Eloquence DBMS Manual — programming examples
- Eloquence Language Manual — types and forms of variables
Timeline
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.