"As platforms and operating systems proliferated in the early 1980s, the company found it difficult to port the assembly language-based dBase to target systems. This led to a rewrite of the platform in the C programming language, using automated code conversion tools. The resulting code worked, but was essentially undocumented and inhuman in syntax due to the automated conversion, a problem that would prove to be serious in the future."
I built this because I missed the dot prompt. Before SQL and ORMs, you typed USE customers, then LIST, and your data was just there. WebBase-III is that whole world rebuilt from scratch as a web app: a W3Script interpreter (lexer, recursive-descent parser, async executor) in TypeScript, backed by Node, WebSockets and SQLite. BROWSE, @ SAY GET forms, .prg programs, indexes with SEEK, reports — it's all there.
One-click try (no install) via Codespaces: https://codespaces.new/DDecoene/WebBaseIII. Open port 5173 and you're at the dot prompt.
It's deliberately a toy (AGPL to keep it that way). Happy to answer anything about the interpreter or the dBASE quirks I had to decide whether to preserve — like the 10 work-area limit, which I dropped.
Gotta plug the delightful, 80s-core hour length ad for dBASE
https://youtu.be/bYU3CQomE5M?is=BysfXD3ybPme-DoL
Before my time, but fun to see how much could be done with it!
Gentry Lee is in this? That's very funny.
Delightful indeed. Brings back memories, thanks for sharing!
Using dBase3 then Clipper, I wrote this music recommending system, back in 1997.
Here it is again, reborn using Claude Code, using modern tech (Cloudflare, D1, Workers/TypeScript, Pages):
The Similarities Engine
https://SimilaritiesEngine.com
"As platforms and operating systems proliferated in the early 1980s, the company found it difficult to port the assembly language-based dBase to target systems. This led to a rewrite of the platform in the C programming language, using automated code conversion tools. The resulting code worked, but was essentially undocumented and inhuman in syntax due to the automated conversion, a problem that would prove to be serious in the future."
Rewriting it with an LLM, is surprisingly apt.
Haha :-) - FoxPro and Clipper next.
I built this because I missed the dot prompt. Before SQL and ORMs, you typed USE customers, then LIST, and your data was just there. WebBase-III is that whole world rebuilt from scratch as a web app: a W3Script interpreter (lexer, recursive-descent parser, async executor) in TypeScript, backed by Node, WebSockets and SQLite. BROWSE, @ SAY GET forms, .prg programs, indexes with SEEK, reports — it's all there. One-click try (no install) via Codespaces: https://codespaces.new/DDecoene/WebBaseIII. Open port 5173 and you're at the dot prompt. It's deliberately a toy (AGPL to keep it that way). Happy to answer anything about the interpreter or the dBASE quirks I had to decide whether to preserve — like the 10 work-area limit, which I dropped.