Est. 2000 Beginner

Lasso 3.6.6

The final generation of Blue World's classic tag-based Lasso - LDML, the square-bracket web language that put FileMaker Pro, 4D and ODBC databases on the web from Mac OS and Windows servers, last updated as Lasso Web Data Engine 3.6.6 in November 2000

Created by Blue World Communications (Kyle Jessup, lead programmer); the Lasso lineage began with Vince Bonfanti's 1995 FileMaker CGI

Paradigm Procedural, tag-based template language (LDML) embedded in HTML
Typing Dynamic and largely text-oriented; variables and list variables, with no user-defined types
First Appeared 2000 (Lasso Web Data Engine 3.6.6, November 15, 2000); the Lasso 3 language dates to October 7, 1998 and the Lasso lineage to fall 1995
Latest Version Lasso Web Data Engine 3.6.6.2 (December 4, 2000), the last documented 3.x release

Lasso 3.6.6 is the last major build of the original, tag-based Lasso: the web language that Blue World Communications developed from a 1995 FileMaker Pro CGI into one of the early commercial tools for putting databases on the web. Blue World shipped it as a free maintenance release of the Lasso Web Data Engine on November 15, 2000. It was the end of the 3.x line, whose language Blue World called LDML (Lasso Dynamic Markup Language). An LDML page was ordinary HTML with square-bracket tags such as [Field: 'Name'] and [Records] ... [/Records]. The server replaced those tags with database content before sending the page to the browser. Fifteen months later Lasso 5 replaced the 3.x line with a rewritten, cross-platform product and the new LassoScript syntax. Lasso 3.6.6 is therefore the final form of “Classic Lasso” as it ran on Mac OS and Windows servers.

The master catalog dates this entry to 1995, the year the Lasso lineage began. Lasso 3.6.6 itself is a 2000 release, and that is the year this page uses. The 3.x language it belongs to dates from October 1998.

History & Origins

From a FileMaker CGI to Lasso 1.0

By the mid-1990s, Mac web developers were trying to serve FileMaker Pro databases on the web. The early tools were written in AppleScript, among them Russell Owens’ FileMaker CGI (ROFM). In the fall of 1995 Vince Bonfanti wrote a replacement in C/C++. It was based on ROFM but used HTML “templates” instead of FileMaker calculation fields to format output. Bill Doerrfeld’s Blue World Communications, a print and web firm in Washington State (Wikipedia places it in Issaquah; its 1999-2000 press releases give Bellevue), bought the source code. Blue World shipped Lasso 1.0 on September 27, 1996. It ran with FileMaker Pro 3.x and the WebSTAR web server on the Mac OS.

In 1997 the technology spread well beyond Blue World. Claris, Apple’s software subsidiary, licensed the post-1.2 Lasso source code and shipped it as the Web Companion in FileMaker Pro 4.0. The Web Companion’s tag language was CDML. Kyle Jessup became Lasso’s lead programmer at Blue World, and Lasso 2.0 (July 17, 1997) added variables, mathematical calculations, conditionals, server-side includes and multiple database actions in a single request.

The 3.x line

Lasso 3 shipped on October 7, 1998, for FileMaker Pro and ODBC-compliant databases. Its tag language is known as Lasso Dynamic Markup Language (LDML); Wikipedia applies that name as far back as Lasso 1.2, and exactly when Blue World adopted it has not been confirmed. Lasso 3 added ODBC data sources and Windows NT servers alongside the FileMaker-on-Mac core. Blue World’s July 1998 announcement of the 3.0 line also promised Windows 95/98, but the April 1999 Lasso 3.5 release lists Windows 95/98 support as new, so 95/98 support appears to have arrived with 3.5. On the language side it introduced data validation filters, macros, file and directory management, date and time tags, list variables, multiple named tokens, error handling, MIME email with attachments, and expanded math, string and encoding tags. Reportedly Blue World also introduced an alternative syntax so that Lasso pages could be edited in visual HTML editors without the editors mangling the tags; Lasso 3.5’s release in April 1999 explicitly added WYSIWYG authoring with Macromedia Dreamweaver 2 and Adobe GoLive 4.

Over the next two years the line grew in small steps:

VersionDateHighlights
3.0October 7, 1998LDML; ODBC; validation, macros, list variables, MIME email
3.5April 14, 1999Server-Side JavaScript, XML form of the tags, syntax-error reporting, Netscape servers, Windows 95/98
3.6January 5, 2000FileMaker Pro 5 / 5 Unlimited support, SQL wizard, global error pages, stricter security
3.6.5April 3, 2000Free update with new image, validation and email tags and Java 2 support on Windows
Lite 3.6.5October 2, 2000Free build for Mac OS X, Apache and MySQL
3.6.6November 15, 2000Free maintenance release
3.6.6.2December 4, 2000Fixes to the FM Remote and Java Adapter modules

Some sources, including Wikipedia, date “3.6.5” to October 2000. That date belongs to the separate Lasso Lite 3.6.5 build for Mac OS X. The Lasso Web Data Engine 3.6.5 update had been announced on April 3, 2000.

With 3.6, Blue World consolidated its products into two families. The Lasso Web Data Engine came in three editions, Lasso FMP, Lasso ODBC and Lasso 4D (the last co-developed with ACI US). Lasso Studio was the authoring family. 3.6 also changed the security defaults. Earlier versions registered every accessible database automatically with search privileges. From 3.6 on, Lasso served only databases that an administrator had registered in its built-in security, each with explicit privileges.

Lasso 3.6.6 and 3.6.6.2

Blue World announced Lasso Web Data Engine 3.6.6 on November 15, 2000, as a free maintenance release for registered Lasso 3.x customers, with no new serial number required. According to the press release as reprinted by MacTech, it addressed numerous stability and reliability issues and added enhanced installers with an installation wizard, tighter security for Instant Web Database Publishing (database information visible only to the global administrator unless explicitly granted), Instant XML and Instant WML publishing, an XML Developer Kit, an updated LDML 3.6.6 reference database, and a documentation addendum of over 50 pages.

Within weeks Blue World shipped 3.6.6.2, announced on December 4, 2000. It corrected two modules that had shipped with 3.6.6. The FM Remote fix addressed related FileMaker fields that could not be used as search arguments. The Java Adapter fix applied only to the Mac and addressed compatibility with third-party LJAPI (Lasso Java API) modules. Blue World offered both a 3.6.6-to-3.6.6.2 updater and a complete installer. The update was free to current Lasso 3.x customers and needed no new serial number. No later 3.x release has been documented.

Design Philosophy

Lasso 3 was designed for FileMaker developers and web designers, not programmers. Its central idea was that a dynamic page is an HTML document with holes in it. The designer writes the page in HTML. Wherever database content should go, they drop in a bracketed tag. The Lasso server does the substitution.

Lasso pages ran database actions in two ways. The first, inherited from Lasso 1, was the HTML form or URL. A form posted to the special action.lasso target, and hidden inputs named command tags (-database, -search, -response and so on) said which database to query, which action to run and which page to return. The second, used in later Lasso 3 code, was the [Inline] container, which ran a database action from inside the page itself.

This design made Lasso easy for anyone who already knew FileMaker. A 1998 ISO FileMaker Magazine walkthrough mapped CDML’s commands to their LDML equivalents. CDML’s -Find became LDML’s -search, and -format became -response.

Key Features

Square-bracket tags in HTML

The example below illustrates the classic pattern. It follows the forms shown in period FileMaker Magazine articles and is not copied from Blue World’s 3.6 manual. A search form posts to action.lasso:

1
2
3
4
5
6
<form action="action.lasso" method="post">
  <input type="hidden" name="-database" value="Contacts.fp5">
  <input type="hidden" name="-response" value="results.html">
  Last name: <input type="text" name="last_name">
  <input type="submit" name="-search" value="Find">
</form>

and the response page loops over the found records:

<h1>Search results</h1>
[Records]
  [Field: 'first_name'] [Field: 'last_name']<br>
[/Records]

Container tags open with [Tag] and close with [/Tag]. Field references could also be written without quotes, as in the 1998 FileMaker Magazine example Thank you, [field: full_name], for taking the time to fill out our survey.

What the 3.x tag set covered

By version 3.6 the language was large. The LDML 3.6 reference database listed 330 tags, 300 of which worked with FileMaker data sources. The main areas were:

  • Database actions: search, add, update, delete, duplicate and show records, plus [Inline] for running actions from within a page.
  • Variables: page variables and, from 3.0, list variables.
  • Macros: reusable code blocks called with a short custom tag. FileMaker Magazine gave [test_macro:'value one', 'value_two'] as an example.
  • Conditionals and calculations: inherited from Lasso 2 and extended with math and string tags.
  • Date and time tags: for example Date_GetMonth, which the magazine compared to FileMaker’s Month function.
  • Email: MIME email with attachments. According to FileMaker Magazine, email and some other tags (extended math, file tags) needed Java on Windows and Mac OS, although an author’s note added that on Mac OS Java was needed for email only when sending attachments.
  • Validation and error handling: validation filters (3.0), customizable global error pages (3.6), and from 3.5 a tag parser that reported syntax errors.
  • Extensibility: LJAPI let developers write Lasso tags and modules in Java, and from 3.5 Server-Side JavaScript could run in Lasso pages.

Servers and platforms

The core 3.6-era Lasso Web Data Engine ran on two platform families, as documented in Blue World’s releases and FileMaker Magazine’s November 2000 review:

  • Mac OS: WebSTAR, AppleShare IP and WebTen. On the Mac, Lasso could talk to FileMaker on the same machine through Apple Events, and it supported FileMaker Pro 3.x through 5.x.
  • Windows 95/98/NT: Lasso ran with servers including Microsoft IIS, reached FileMaker 4.x and 5.x through FileMaker’s Web Companion, and reached other databases through ODBC.

Lasso 3.5 added support for Netscape web servers. The Mac OS X, Apache and MySQL support of late 2000 came in the separate, free Lasso Lite 3.6.5 build. Mac OS X itself was still in public beta at the time; Blue World billed Lite as the first commercial middleware to support the Mac OS X Public Beta, Apache and MySQL, and it ran FileMaker Pro 4 and 5 as Classic applications.

Evolution: What Came After

Lasso 3.6.6 was the final step for a product line built on the classic Mac OS. Its successor took a long time. There was never a Lasso 4. Lasso 5, released February 26, 2002, was a new architecture for Mac OS X, Windows and Linux. It had an embedded MySQL database, native Apache support, sessions and file manipulation. It also added the LassoScript syntax, which let the same tags be written as semicolon-terminated statements inside <?LassoScript ... ?> blocks. Lasso 5 did not support Mac OS 9, the classic Mac OS that the 3.x line had been built around.

The square-bracket tags survived. According to later Lasso documentation they remained valid in Lasso 5 through 8.6, so 3.x pages could in principle be carried forward. The product moved through several owners. OmniPilot Software bought it on August 1, 2004. LassoSoft LLC, a partnership of Kyle Jessup, Fletcher Sandbeck and Kerry Adams, acquired it from OmniPilot (the deal is dated November 2006 in LassoSoft’s later boilerplate and was announced in March 2007). According to Wikipedia, a new Canadian company, LassoSoft Inc., took it over in December 2010. Lasso 9 (January 2010) was a major architectural rewrite of the language.

Current Relevance

Lasso 3.6.6 is historical in the strict sense. It ran mainly on Mac OS 8 and 9 servers and on Windows NT-era systems. Its FileMaker data sources expected FileMaker Pro 3 through 5, and its vendor stopped developing the line more than twenty-five years ago. It has no open-source implementation, no Docker image and no maintained documentation. LassoSoft’s later documentation still covers the classic tag syntax, and the Macintosh Repository hosts a copy of a Lasso 3.6 installer for Mac OS 8.5 through 9.2.2 on PowerPC. Running it today means an emulated or vintage classic Mac with WebSTAR and an old FileMaker Pro.

Why It Matters

Lasso 3.x is a clear example of the first generation of server-side web languages. These were tag languages designed so that people who wrote HTML and built databases could publish data without learning a general-purpose language. Lasso, CDML and ColdFusion’s CFML all took this approach in the late 1990s. Lasso’s version shaped FileMaker’s own web strategy, because Claris licensed it and shipped it as CDML in FileMaker Pro 4.0, and that gave Lasso a ready audience of FileMaker developers who already knew the model.

It also shows why that generation gave way to scripting languages. By 3.6 LDML had grown to more than three hundred tags, plus macros, Java extensions and embedded JavaScript, and it was still written one bracket pair at a time inside HTML. Lasso 5’s answer was LassoScript, a scripting syntax for the same tags. Lasso 3.6.6 is the last version of Lasso before that change, when the language was still purely tags.

Timeline

1995
In the fall, independent developer Vince Bonfanti writes a C/C++ CGI that serves FileMaker Pro data through HTML templates; Blue World Communications buys the source code
1996
Blue World ships Lasso 1.0 on September 27 for FileMaker Pro 3.x and the WebSTAR web server on the Mac OS
1997
Lasso 2.0 ships on July 17 with variables, calculations, conditionals and multiple database actions; on September 8 Blue World announces that Claris has licensed Lasso technology, which ships in FileMaker Pro 4.0 as CDML
1998
Lasso 3 ships on October 7 for FileMaker Pro and ODBC data sources, adding Windows NT support, macros, list variables, error handling and MIME email; its tag language is known as LDML (Lasso Dynamic Markup Language)
1999
Lasso 3.5 Web Data Engine ships on April 14, adding Server-Side JavaScript, an XML form of the Lasso tags, syntax-error reporting, Netscape web server support and Windows 95/98
2000
Lasso Web Data Engine 3.6 ships on January 5 as a free upgrade, adding FileMaker Pro 5 support and requiring every database to be registered explicitly in Lasso security; Lasso WDE 3.6.5 follows as a free update on April 3
2000
Blue World releases Lasso Lite 3.6.5 on October 2, a free build for Mac OS X, Apache and MySQL
2000
Lasso Web Data Engine 3.6.6 ships on November 15 as a free maintenance release for Lasso 3.x customers; the 3.6.6.2 update on December 4 fixes the FM Remote and Java Adapter modules
2002
Lasso 5 ships on February 26, skipping version 4. It is a rewritten product for Mac OS X, Windows and Linux, with the new LassoScript syntax, and it replaces the 3.x line

Notable Uses & Legacy

FileMaker Pro web publishing

Lasso 3.x was built mainly for FileMaker Pro databases. A November 2, 2000 ISO FileMaker Magazine article counted 330 tags in the LDML 3.6 reference database, 300 of which worked with FileMaker, and contrasted Lasso with FileMaker's built-in Web Companion, which could process only one request at a time

ACI US / 4D

Blue World and ACI US announced an agreement to co-develop Lasso 4D Web Data Engine on January 5, 2000, and Blue World shipped it on April 3, 2000. It put the Lasso 3.6-era language on top of 4D databases. It was one of the three Lasso Web Data Engine editions, alongside Lasso FMP and Lasso ODBC

Macromedia Dreamweaver authoring

Blue World's Lasso Studio for Macromedia Dreamweaver, announced on December 15, 1999, worked with Dreamweaver 3 and the bundled Lasso Studio Web Data Engine 3.6, and let designers build Lasso database pages visually in Dreamweaver

Language Influence

Influenced By

ROFM (FileMaker CGI)

Influenced

Running Today

Run examples using the official Docker image:

docker pull
Last updated: