HotTEA
A BASIC interpreter written in Java from the first year of the applet era - embed the TeaPot applet in a web page, hand it BASIC source, and your page runs BASIC in the browser.
Created by Mike (Michael G.) Lehman. The product was trademarked as "Mike Lehman's HotTEA" and distributed exclusively by Cereus Design Corp., a small software design and consulting firm - based in Pacific Grove, California in the free version's era, later in Los Altos - which described itself as specializing in language compilers and interpreters
HotTEA is a small piece of 1996 preserved in amber: an implementation of BASIC, written in Java, whose entire reason for existing was the web browser’s brief, feverish love affair with the Java applet. Its creator, Mike Lehman, put the pitch in two sentences on the language’s home page - the self-described “Tea Room” - and they are worth quoting because they capture the moment perfectly: “Have you ever wanted to make cool applets, but don’t know JAVA? Have you longed for the platform independence of JAVA but didn’t want to learn yet-another-language?”
The answer, for a few years in the late 1990s, was to embed a Java applet called TeaPot in your web page, hand it your BASIC source, and let it interpret your program right there in the browser - graphics, animations, sounds, mouse clicks and all.
History and origins
HotTEA appeared in 1996, within a year of Java’s public launch. Sun’s HotJava browser had demonstrated applets in 1995, Netscape had licensed Java, and for a moment it seemed every interactive thing on the web would be an applet. But Java itself - object-oriented, statically typed, compiled - was a genuinely foreign country for the enormous population of hobbyist programmers whose native language was BASIC.
Mike Lehman’s insight was that an interpreter is also an applet. Write a BASIC interpreter in Java, ship it as compiled .class files, and anyone could put BASIC programs on the web without touching Java at all. Because the interpreter ran inside the standard applet sandbox, a HotTEA program automatically inherited what the documentation called “all of the cross-platform and security protection that comes with all JAVA programs.”
The language was distributed by Cereus Design Corp. of Pacific Grove, California - a small consulting firm, exclusively licensed to distribute the trademarked “Mike Lehman’s HotTEA”, that described itself as specializing in language compilers and interpreters. The free version was hosted not on some corporate infrastructure but on a personal page at mbay.net, a Monterey Bay ISP. The whole operation was steeped - sorry - in tea-versus-coffee wordplay aimed at Java and HotJava: the home page was the Tea Room, the interpreter was the TeaPot, the try-it-online page invited you to “Brew Your Own Applet”, the loading applets pleaded “Please be patient while we brew you a cup!”, and the commercial editions were named after tea varieties.
The first release - “first brewed in May 1996”, as the company’s later press materials put it - was followed quickly by HotTEA V2.0, dated June 26, 1996, a free beta that remained the free public version for the rest of the language’s life. By early 1997 HotTEA had already entered the academic record: Andreas Krall and Jan Vitek’s paper “On Extending Java” at the Joint Modular Languages Conference (JMLC ‘97) cited it as the Basic entry in a list of languages “already” hosted on Java, alongside Ada, Scheme and NESL - making HotTEA one of the first documented members of what would eventually become the vast family of non-Java JVM languages.
The language
Free HotTEA implemented what its documentation called “level 1” - a deliberately minimal subset of BASIC. The core statement set is classic unstructured BASIC with a few structured comforts:
| Category | Statements |
|---|---|
| Assignment | LET (the keyword optional) |
| Flow control | GOTO, IF/THEN/ELSE/ENDIF, labels ending in :, END |
| Loops | FOR … TO … STEP / NEXT |
| Subroutines | SUB / ENDSUB, CALL, RETURN |
| Output | PRINT (with , for tabbed and ; for adjacent output) |
| Comments | ' to end of line |
V2.0 added a set of drawing statements - PenColor, PenWidth, DrawLine, DrawRect, SetFont, TextColor, DrawText - plus a TRACE ON/TRACE OFF facility that echoed each source statement to the Java console as it executed, a genuinely useful debugging aid for programs running inside a browser.
The built-in function library shows exactly what the language was for. Beyond the BASIC staples (ABS, INT, RND, LEFT, RIGHT, MID), nearly everything is multimedia plumbing: IMAGE() and ANIMATE() loaded pictures and filmstrip-style GIF animations from the server, SOUND() loaded audio, and handles returned by these functions were passed to SHOW, HIDE, MOVE, START and STOP. An INRECT() function tested whether a mouse click landed inside a rectangle - the documentation notes it was used primarily inside a specially named MOUSE_CLICK subroutine, which is how a HotTEA program received click events. A SHOWURL() function could navigate the browser to a new page, though the documentation flags it as working “only within Netscape”.
Everything is global (and arrays are an illusion)
Level 1 HotTEA had striking limitations, honestly documented: all variables were global, subroutines took no parameters, and every expression was “either number or string dependent upon usage.” There were no real arrays. Instead, V2.0 introduced what the documentation charmingly called “virtually real arrays”: writing a[3] caused the interpreter to evaluate the subscript and synthesize a global variable literally named A#3 - the # character being illegal in user variable names, so collisions were impossible. String subscripts and multiple dimensions fell out for free: A["MIKE"] became the variable A#MIKE, and var[3][5] became var#3#5. It is a hack, but a rather elegant one for an interpreter that stored all variables in a single global symbol table.
A small program in documented HotTEA V2.0 looks like vintage BASIC with a paint set:
| |
Deployment: an interpreter in an applet tag
A HotTEA “program” deployed to the web was just the TeaPot applet plus a parameter pointing at your BASIC source. The Tea Room practiced what it preached: the animated welcome on the home page was itself a HotTEA program, embedded exactly like this (the Keno game was deployed the same way, from its own .bas file):
| |
The Applet Factory’s interactive version used a separate UserTeaPot applet that took the BASIC code you typed into the form instead of a file from the server.
The free license terms were unusually permissive for 1996 commercial software: the beta could be embedded “in any web page you choose” with the .class files posted “on any server you wish”, with copyright retained by Cereus Design Corp. - in exchange, the download form asked for your name and contact details.
The commercial turn
The commercial push came sooner than the free version’s quiet stasis suggests. On June 9, 1997, Cereus - by now relocated from Pacific Grove to Los Altos - announced HotTEA 5.0, no longer a “level 1” toy but a BASIC compiler and run-time for the JVM, initially sold as an Embeddable Scripting System for OEM customers. That July, Sun Microsystems certified HotTEA 5.0 as 100% Pure Java, an announcement carried on PRNewswire with a supporting quote from JavaSoft’s director of corporate marketing. The company’s materials also claimed awards from the Java directories of the day, including “Gamelan’s Best” and “JARS Top 5%”.
By 1998, the cereus7.com storefront - billing HotTEA as “the premiere BASIC development environment for the Java Virtual Machine” - sold it in three tea-themed flavors:
- URLGrey TEA - “a compact scripting tool for small jobs”, the applet-oriented edition
- Green TEA - a $149 BASIC scripting engine packaged “as a JavaBean for medium sized jobs”
- B.R.I.S.K. TEA - “a full-blown embeddable class library” for script-enabling entire Java applications
Green TEA and B.R.I.S.K. TEA were advertised as compatible with Microsoft’s Visual Basic for Applications (VBA), and the commercial language went well beyond free HotTEA’s level 1: the 5.0 marketing promised objects, late binding, and direct interaction with Java classes and JavaBeans. This was a genuinely forward-looking reframing. The idea of embedding a small, safe interpreter inside a Java application so end users can script it - the niche later occupied on the JVM by scripting engines of many stripes - is exactly what Green TEA and B.R.I.S.K. TEA were selling, with BASIC as the end-user language on the theory, as the site put it, that BASIC was “a tool they already know”.
Decline
HotTEA’s fate was bound to the applet’s. As the late 1990s wore on, JavaScript - which needed no plugin, no JVM startup wait, and no .class downloads - absorbed the “make your web page do things” market, while the applet ecosystem buckled under browser incompatibilities and slow load times (even the Tea Room’s own demo pages pleaded “Please be patient while we brew you a cup!”). There is no evidence of a free release after V2.0 of June 1996, and the commercial line faded too: by 2001 the archived cereus7.com advertised Cereus as a general Java consulting shop, with no mention of HotTEA at all.
The end is visible in the archaeological record with unusual precision: the Internet Archive shows the mbay.net HotTEA page alive through February 2003 and returning 404 errors from April 2003 onward, and the cereus7.com domain subsequently lapsed into an unrelated parked page. 2003, then, is the year the language’s home disappeared, not the year it appeared. The language itself dates to 1996, and today no distribution is readily available at all: HotTEA survives only in web archives, in the JVM-language censuses that recorded it, and in that 1997 conference citation.
Why it matters
HotTEA earns its place in the encyclopedia on three counts.
It was among the very first non-Java languages on the Java platform. When a 1997 academic paper needed evidence that Java could host other languages, HotTEA was the BASIC evidence, cited alongside Ada, Scheme and NESL. The JVM now hosts hundreds of languages - Kotlin, Scala, Clojure, Groovy and JRuby among them - and HotTEA stands near the very top of that family tree, not as an influence but as an existence proof.
It anticipated the language playground. The 1996 Applet Factory - type code into a web form, click “Brew”, watch it run in the page - is recognizably the ancestor experience of JSFiddle, CodePen, and every online language sandbox, improvised by a one-man language project a decade early.
It is a perfect specimen of a recurring pattern. “Implement a friendly language on top of the intimidating new platform” is one of computing’s most reliable moves - BASIC itself played this role on 1970s microcomputers, and languages from CoffeeScript to TypeScript played it for JavaScript later. HotTEA is the pattern executed at applet-era web speed: conceived, shipped, versioned, commercialized into three tea-punned editions, and gone, all inside seven years, leaving behind one of the more cheerfully named artifacts in the JVM’s history.
Timeline
Notable Uses & Legacy
The Keno demo applet
The showcase program on the HotTEA site was a playable game of Keno written entirely in HotTEA V2, offered both as a demo and as the reference example for the "virtually real arrays" feature - the site's documentation pointed users to the Keno source to see the technique in practice
The Applet Factory - an in-browser playground in 1996
The site's "Brew Your Own Applet" page let visitors type BASIC code into a form, combine it with stock images, animations and sounds, and run the result instantly as a live applet in the page - an early example of the try-it-online language playground, more than a decade before such tools became standard
Evidence in early JVM-languages research
Krall and Vitek's "On Extending Java" at JMLC '97 cited HotTEA as the proof that BASIC had joined Ada, Scheme and NESL on the Java platform, and Robert Tolksdorf's "Programming Languages for the JVM" census carried the entry for years - HotTEA's main historical footprint is as a documented data point in the earliest surveys of non-Java languages on the JVM
Embedded end-user scripting for Java applications
The commercial Green TEA and B.R.I.S.K. TEA editions repositioned the interpreter as an embeddable, VBA-compatible scripting engine, letting Java applications expose BASIC as an end-user scripting language - the same embeddable-BASIC niche later served by tools in other ecosystems. Cereus's own materials claimed B.R.I.S.K. TEA had been "licensed by Fortune 500 companies for use in future products", and its 1997 press release quoted the president of Merimac Software as a customer, though no shipped third-party product using HotTEA has been independently documented