Lasso (programming language)

Lasso
LassoSoft Inc. Logo
ParadigmMulti-paradigm: structured object-oriented (multi-dis),

imperative: procedural, concurrent, exp-oriented,

Meta: reflective
Designed byKyle Jessup
DeveloperLassoSoft Inc.
First appeared1995; 29 years ago (1995)
Stable release
9.3.1 / October 23, 2015; 9 years ago (2015-10-23)
Typing disciplineDynamic with constraints (strict-hybrid), nominative, duck (hybrid)
Implementation languageC, Lasso
PlatformCross-platform
OS(OS X, Windows, Linux)
LicenseProprietary
Filename extensions.lasso, .LassoApp
Websitewww.lassosoft.com
Major implementations
Lasso 8, Lasso 9
Influenced by
Dylan, Smalltalk, Scala
Preview warning: Page using Template:Infobox programming language with unknown parameter "frequently updated"

Lasso is an application server and server management interface designed to develop internet applications. It is also a general-purpose, high-level programming language. Originally a web datasource connection tool[1] for Filemaker and later included in Apple Computer's FileMaker 4.0 and Claris Homepage as CDML,[2][3] it has since evolved into a complex language used to develop and serve large-scale internet applications and web pages.

Lasso includes a simple template system allowing code to control generation of HTML and other content types. Lasso is an object-oriented programming language in which every value is an object. It also supports procedural programming through unbound methods. The language uses traits and multiple dispatch extensively.

Lasso has a dynamic type system, where objects can be loaded and augmented at runtime, automatic memory management, a comprehensive standard library, and three compiling methodologies: dynamic (comparable to PHP-Python), just-in-time compilation (comparable to Java or .NET Framework), and pre-compiled (comparable to C). Lasso also supports Query Expressions,[4] allowing elements within arrays and other types of sequences to be iterated, filtered, and manipulated using a natural language syntax similar to SQL.[5] Lasso includes full Unicode character support in the standard string object, allowing it to serve and support multi-byte characters such as Japanese and Swedish, and supports transparent UTF-8 conversion when writing string data to the network or file system.

Lasso is often used as a scripting language, and also used in a wide range of non-scripting contexts. Lasso code can be packaged into standalone executable programs called "LassoApps", in which folder structures are compiled into single files.[6]

The Lasso Server application server runs as a system service and receives requests from the web server through FastCGI. It then hands the request off to the appropriate Lasso Instance, which formulates the response. Multiple individual instances are supported, allowing one server to handle multiple sites, each as separate processes. The server uses a high performance IO-based green threading system designed for multi-core systems.

Lasso can be compared to the server-side scripting languages PHP[7][8] and Python, ColdFusion, Ruby, etc.[9][10]

  1. ^ Dave, Parkhurst (April 25, 1997), "New Web tools help servers link to legacy data", MacWEEK Magazine
  2. ^ "Filemaker Pro Requires external connector". Feb 1, 2000.
  3. ^ "Web-Enabling Filemaker Pro Databases". Aug 1, 2002.
  4. ^ "Microsoft on Query Expressions".
  5. ^ "Query Expressions Defined".
  6. ^ "An explanation of LassoApps".
  7. ^ Chris, Tracewell (2006). "A Closer Look at Two OS X Scripting Languages". MACTech.
  8. ^ Brian, Dunning (February 1, 2005). "Pick the Right Tool for the Job".
  9. ^ "Lasso vs Scripting Languages on W3Techs".
  10. ^ "Comparison of Popular Languages". Archived from the original on 2009-01-16.