Apple Dylan

Last updated
Apple Dylan
Paradigms Multi-paradigm: functional, object-oriented
Family Lisp
Developer Apple Computer
First appeared1992;30 years ago (1992)
Stable release
Final / 1995;27 years ago (1995)
Typing discipline Strong, dynamic
Implementation language Macintosh Common Lisp (MCL), Dylan
Platform ARM, IA-32
OS Newton OS, Classic Mac OS
License Proprietary
Filename extensions dylan
Major implementations
Apple Dylan
Influenced by
Macintosh Common Lisp, Smalltalk, Think C
Influenced
Lasso, Python, Ruby

Apple Dylan is the original implementation of the programming language Dylan. It was developed by Apple Computer from 1992 to 1995. [1]

Contents

Dylan was developed at Apple Cambridge, formerly Coral Software, developers of Macintosh Common Lisp. The original language had much in common with Lisp, including its parenthetical S-expression syntax. For a time, it was developed with the intent of being the primary language of the Apple Newton. When that project was ordered into production earlier than expected, Dylan was not ready for release. A new operating system for the Newton was written in C++.

Dylan was then repositioned as a desktop programming system for the classic Mac OS. This led to a major change in syntax to a more C-like infix notation syntax, apparently at the prompting of a group at Carnegie Mellon University, to make it more appealing to programmers familiar with other languages. The resulting system was making progress when development was canceled in April 1995. Work continued for another six months to produce the Apple Dylan Technology Release. It was released at the 1996 WWDC show as the first and only official Apple version of the system.

Development environment

Apple Dylan includes a dynamic, integrated development environment inspired by Smalltalk, Macintosh Common Lisp (MCL), and Think C, and originally codenamed Hula. Like Think C, but unlike Smalltalk and Lisp, it draws a clear distinction between the development environment and the program being developed. It does this by linking code, called a stub, into the target program, allowing the integrated development environment (IDE) to communicate with it (to inject code, perform introspection, etc.), without sharing a runtime system environment with the IDE.

The IDE includes Binder (a tool for configuring browsers), a source database, a definition database, incremental compiling, a cross-platform source debugger, profiling tools, and an interface builder.

The basic browser window in the Apple Dylan environment is Binder. A Binder window consists of one or more linked panes. Each pane has an input, an output, an aspect, and a presentation style. A pane's input is the output of another pane: a pane displays information about the selected object(s) in its input pane. Aspects are properties of the input, such as source code, contents, callers, readers, writers, references or compiling warnings. This information can be presented in an outline or a graph. Inputs, aspects and styles can be used to construct replicas of the Smalltalk source browser, or static call graphs, or ad hoc displays such as the callers of readers of variables that the selected function writes. All views are live: recompiling a function updates any displays that include its who-calls information, for example.

The outline view includes visual indicators that display whether a source record has unsaved changes, has changed since it was last compiled, or has compiler-generated messages (warnings and errors).

User interface framework

Apple Dylan includes a graphical user interface (GUI) framework, [2] written in Dylan by Mike Lockwood. The framework is tightly integrated with a WYSIWYG (What You See Is What You Get) interface builder code-named Meccano, written by Robin Mair. The interface builder is linked into an application, allowing users to switch between Edit and Run modes while the application is running. Decorators are represented as graphical objects that can be dragged onto a user interface object to modify its behavior or appearance via object composition.

Implementation

The core of Apple Dylan is implemented in Macintosh Common Lisp, upon which the rest is implemented in Dylan. The Apple Cambridge office started as an acquisition of Coral Software, the developers of Macintosh Common Lisp.

When Dylan was retargeted from the ARM processor of the Newton, to the desktop Macintosh, the back end was modified to use APPLEX, a portable assembler designed by Wayne Loofbourrow's team at Apple in Cupertino.

See also

Related Research Articles

Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (S20018). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived from the ANSI Common Lisp standard.

<span class="mw-page-title-main">Dylan (programming language)</span>

Dylan is a multi-paradigm programming language that includes support for functional and object-oriented programming (OOP), and is dynamic and reflective while providing a programming model designed to support generating efficient machine code, including fine-grained control over dynamic and static behaviors. It was created in the early 1990s by a group led by Apple Computer.

An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

<span class="mw-page-title-main">Lisp (programming language)</span> Programming language family

Lisp is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language still in common use. Only Fortran is older, by one year. Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Common Lisp, Scheme, Racket and Clojure.

<span class="mw-page-title-main">Smalltalk</span> Object-oriented programming language first released in 1972

Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Diana Merry, Scott Wallace, and others during the 1970s.

<span class="mw-page-title-main">Liberty BASIC</span>

Liberty BASIC (LB) is a commercial computer programming language and integrated development environment (IDE). It has an interpreter, developed in Smalltalk, which recognizes its own dialect of the BASIC programming language. It runs on 16- and 32-bit Windows and OS/2.

<span class="mw-page-title-main">Genera (operating system)</span> Symbolics operating system based on Lisp

Genera is a commercial operating system and integrated development environment for Lisp machines created by Symbolics. It is essentially a fork of an earlier operating system originating on the Massachusetts Institute of Technology (MIT) AI Lab's Lisp machines which Symbolics had used in common with Lisp Machines, Inc. (LMI), and Texas Instruments (TI). Genera was also sold by Symbolics as Open Genera, which runs Genera on computers based on a Digital Equipment Corporation (DEC) Alpha processor using Tru64 UNIX. In 2021 a new version was released as Portable Genera which runs on DEC Alpha Tru64 UNIX, x86_64 and Arm64 Linux, x86_64 and Apple M1 macOS. It is released and licensed as proprietary software.

Bytecode is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.

Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods.

Kaleida Labs formed in 1991 to produce the multimedia cross-platform Kaleida Media Player and the object oriented scripting language ScriptX that was used to program its behavior. The system was aimed at the production of interactive CD ROM titles, an area of major effort in the early 1990s. When the system was delivered in 1994, it had relatively high system requirements and memory footprint, and lacked a native PowerPC version on the Mac platform. Around the same time, rapid changes in the market, especially the expansion of the World Wide Web and the Java programming language, pushed the interactive CD market into a niche role. The Kaleida platform failed to gain significant traction and the company was closed in 1996.

<span class="mw-page-title-main">SK8 (programming language)</span>

SK8 was a multimedia authoring environment developed in Apple's Advanced Technology Group from 1988 until 1997. It was described as "HyperCard on steroids", combining a version of HyperCard's HyperTalk programming language with a modern object-oriented application platform. The project's goal was to allow creative designers to create complex, stand-alone applications. The main components of SK8 included the object system, the programming language, the graphics and components libraries, and the Project Builder, an integrated development environment.

A read–eval–print loop (REPL), also termed an interactive toplevel or language shell, is a simple interactive computer programming environment that takes single user inputs, executes them, and returns the result to the user; a program written in a REPL environment is executed piecewise. The term usually refers to programming interfaces similar to the classic Lisp machine interactive environment. Common examples include command-line shells and similar environments for programming languages, and the technique is very characteristic of scripting languages.

<span class="mw-page-title-main">Class browser</span> Feature of coding platforms

A class browser is a feature of an integrated development environment (IDE) that allows the programmer to browse, navigate, or visualize the structure of object-oriented programming code.

Dylan programming language history first introduces the history with a continuous text. The second section gives a timeline overview of the history and present several milestones and watersheds. The third section presents quotations related to the history of the Dylan programming language.

LispWorks is computer software, a proprietary implementation and integrated development environment (IDE) for the programming language Common Lisp. LispWorks was developed by the UK software company Harlequin Ltd., and first published in 1989. Harlequin ultimately spun off its Lisp division as Xanalys Ltd., which took over management and rights to LispWorks. In January 2005, the Xanalys Lisp team formed LispWorks Ltd. to market, develop, and support the software.

<span class="mw-page-title-main">FutureBASIC</span>

FutureBasic is a free BASIC compiler for Apple Inc.'s Macintosh.

Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXTSTEP operating system. Objective-C was the standard programming language supported by Apple for developing macOS and iOS applications using their respective application programming interfaces (APIs), Cocoa and Cocoa Touch, until the introduction of Swift in 2014.

References

  1. Dylan Hackers (2011–2019). "History". Open Dylan. Retrieved 2019-10-27.
  2. Steele, Oliver. "Apple Dylan". Oliver Steele. Retrieved 2019-10-27.