TweetFollow Us on Twitter

January 93 - Dylan(tm) FAQ

Dylan(tm) FAQ

This memo answers questions which are frequently asked about the Dylan programming language. The latest version of this memo is available by anonymous ftp from cambridge.apple.com in the file /pub/dylan/dylan-faq.txt. We expect to make other Dylan documents available for ftp from the same directory.

The Dylan manual is not available in electronic form, but a bound copy may be requested by sending your name and address to dylan-manual-request@cambridge.apple.com. (Applelink users should send to dylan-request@ cambridge.apple.com@internet#.). As of this writing, there is no charge for the manual.

If you want to keep up with Dylan news, consider joining the info-dylan mailing list, described below.

General Questions About Dylan

What is Dylan?

Dylan is a new Object Oriented Dynamic Language (OODL), developed by the Eastern Research and Technology Lab of Apple Computer. Dylan was designed to make the advantages of OODLs available for commercial programming on a variety of computing devices. Dylan most closely resembles CLOS and Scheme. Other languages which influenced the design of Dylan include Smalltalk, Self, and OakLisp.

Dylan is consistently object-oriented. It is not a procedural language with an object-oriented extension. To this end, Dylan does not attempt to be compatible with any previously existing programming language.

What is the target audience for Dylan?

The target audience for Dylan is software application programmers, most of whom are currently using static languages such as C and C++. We realize that the current manual is more appropriate for people already familiar with OODLs. We have plans for additional documents directed at static language programmers.

How does Dylan differ from previous OODLs?

Dylan is designed to allow the powerful and flexible programming techniques and development environments associated with OODLs, while also allowing the small, fast delivered applications currently associated with static languages.

Unlike many dynamic languages, Dylan's design consciously enables the runtime environment to execute without the development environment present. In addition, Dylan will let you selectively 'turn-off' dynamic capabilities when they are no longer needed, allowing more efficient compilation.

Are there any public mailing lists for discussing Dylan?

Yes. There are four mailing lists of interest to the public. Three of these addresses have a corresponding administrative address. If you want to be added to or removed from a mailing list, send mail to the administrative address, not the mailing list address.
info-dylan@cambridge.apple.com
info-dylan-request@cambridge.apple.com
    (administration)
info-dylan-req@cambridge.apple.com@internet# 
    (administration from Applelink)

This is a two-way mailing list for discussing any and all issues related to Dylan.

announce-dylan@cambridge.apple.com
announce-dylan-request@cambridge.apple.com
    (administration)
announce-d-req@cambridge.apple.com@internet#
    (admin from Applelink)

This is a mailing list for major announcements about Dylan (new implementation availability, new manual availability, etc). This mailing list is for people who want to keep up on Dylan news, but don't want the quantity of mail that comes through info-dylan.

dylan-builders@cambridge.apple.com
dylan-builders-request@cambridge.apple.com
    (administration)
d-builders-req@cambridge.apple.com@internet#
    (admin from Applelink)

This is a two-way mailing list for people who are working on Dylan implementations or who are considering working on an implementation. If you want to join this list, please send mail describing your plans to dylan-builders-request.

dylan-comments@cambridge.apple.com

This is a one way mailing list for sending comments to the people working on Dylan at Apple. Most Dylan discussions can take place on info-dylan.

Does Apple have an implementation of Dylan?

Apple hasn't announced plans to release an implementation of Dylan. However, we are working on implementations, and our implementation efforts have been an important proving ground for the Dylan design.

Will there be Apple products based on Dylan?

Apple has not announced any use of Dylan in products.

Is Dylan related to the Apple PDA project called Newton?

No. Dylan is being created by Apple's Advanced Technology Group, and no product-specific implementations of Dylan have been announced yet. If you are looking for more information on Newton development, you need to contact the Newton Developer Relations at NEWTON.DEVS @applelink.apple.com.

Are there third-party implementations of Dylan available?

Several third-parties have expressed interest in implementing Dylan. A group at DEC has succeeded in implementing a language based on the Dylan manual. They describe it as follows:

Thomas, a compiler written at Digital Equipment Corporation's Cambridge Research Laboratory, is now available to the public. Thomas compiles a language compatible with the language described in the book "Dylan(TM) an object-oriented dynamic language" by Apple Computer Eastern Research and Technology, April 1992.

The Thomas system is written in Scheme and is available to run under any one of three public implementations of Scheme: MIT's CScheme, DEC's Scheme->C, and Marc Feeley's Gambit. It can run on a wide range of machines including the Macintosh, PC compatibles, Vax, MIPS, Alpha, and 680x0. Thomas generates IEEE compatible Scheme code. The entire system (including sources) is available by anonymous ftp from:

   crl.dec.com:pub/DEC/Thomas
    gatekeeper.pa.dec.com:pub/DEC/Thomas
    altdorf.ai.mit.edu:archive/Thomas

We've also made Thomas available in the Dylan ftp directory at cambridge.apple.com.

Thanks to Marc Feeley, Thomas embedded in Gambit is now available as a stand-alone Macintosh application. We've placed this in the ftp directory on cambridge.apple.com.

[MADA hopes to make Thomas available on a CD-ROM in the near future.]

Is Dylan a proprietary language? Why is the Dylan name trademarked?

We want Dylan to be available on as many computers as possible. To this end, we are encouraging groups outside Apple to implement Dylan.

It is our intention to license the Dylan trademark to any implementation which passes a standard test suite. The purpose of the trademark is to ensure quality and consistency among implementations.

What should I do if I want to implement Dylan?

Send mail to dylan-builders-request@cambridge. apple.com. We are putting together a program to support implementors, and we want to hear from you. (Applelink users should send mail to d-builders-req@applelink.apple.com @internet#.)

If you've written an implementation of Dylan and want to release it, please contact us for a trademark license.

Is the Dylan language design frozen?

We don't plan changes to the general structure of the language, but we expect to continue working on the details. We also expect to specify some extensions and libraries.

We welcome your comments on the Dylan design. Your feedback is very important to the further evolution of the language. We haven't specified a limited review period.

Please understand that because of the amount of mail we are receiving, we may not be able to respond to your message in detail.

Are design clarifications available?

We are working on design clarifications. They will be made available via anonymous ftp from cambridge.apple.com.

Is there a group which promotes the use of object-oriented dynamic languages?

Yes. There is an OODL special interest group of MADA. MADA is a group which champions object-oriented programming on the Macintosh. The OODL sig is currently focusing on Macintosh Common Lisp, but it intends to expand to other languages and environments.

To subscribe to the OODL sig mailing list from Applelink send mail to OODL.SIG. Internet subscriptions should be requested from oodl-sig-request@cambridge.apple.com.

Questions about the Dylan Language Design

Is Apple planning to specify an alternate syntax for Dylan?

Yes. We recognize that many people prefer an algebraic syntax, and we plan to create and document such a syntax for Dylan.

Are there plans to specify a standard i/o package for Dylan?

Simple i/o will probably be specified in an optional library, rather than in the core language. A single i/o system wouldn't make sense on all computing devices because of the variation in user interfaces and storage systems.

Will Dylan specify a standard threading mechanism?

We recognize that threads are important and that most implementations of Dylan will support them. We haven't yet decided whether a standard thread mechanism would be appropriate for all platforms.

Why is 'make' allowed to return a previously allocated instance, or an object which is an indirect instance of the class passed to 'make'?

We feel that this is a very important abstraction mechanism. A class should have flexibility in how it implements 'make', as long as the object returned fulfills the protocol of the class.

For example, this allows a library to document a single abstract class which is supported by several undocumented implementation classes. The abstract class can choose which implementation class to instantiate based on the additional arguments to 'make'. This allows optimizations which are transparent to the clients of the library.

The default method for 'make' of a user-defined class returns a fresh direct instance of the requested class.

The Dylan manual doesn't require implementations to optimize tail recursion. Was this an intentional omission, or an editorial oversight?

It was an editorial oversight. Dylan implementations will be required to be properly tail recursive.

The Dylan manual doesn't say much about modules. Will this be specified in the future?

Dylan modules will be further specified in an upcoming design note. At this time we expect modules to exist only at compile-time, not at runtime. Non-portable extensions may support runtime module operations.

Can the 'method' special form be used to create closures?

Yes.

I don't understand how setter variables work. Is 'setter' a special form?

'setter' just provides an alternate way to spell variable names. For example, the following are all legal spellings of variable names:
foo
bar
(setter foo)
(setter quux)

'setter' is pure syntax, and nothing more. It's probably unnecessarily confusing to make setter variables look like function calls. For this reason, we are considering changing the syntax of setter variables.

Why not just have 'setter' be a function which takes a getter functio as an argument and returns the corresponding setter function?

If we did this, the action of exporting a getter function would automatically export the setter as well. We believe that it's important to allow the getter and setter to be exported and imported independently. The design of setter variables allows this.

What kind of object is used to return multiple values?

When a function returns multiple values, the return values are not stored in a wrapper object; they are returned directly. For example, if a function returns "the values 4 and 5", it returns two integers. It does not return a data structure which contains two integers.

Returning multiple values is similar to calling a function with more than one argument. When passing multiple objects as arguments to a function, the objects do not have to be stored in a single data structure before they are passed.

Is the specification of sealing complete?

No. We expect the specification of sealing to evolve as we gain implementation experience.

At this point, we believe that sealing operations should be expressed declaratively, as compile-time operations, rather than as run-time operations. In the Dylan manual they are described as run-time operations.

Will Dylan include 'eval'?

Some implementations may choose to support 'eval', but we do not have plans to add it to the language standard. We feel that the delivery of applications which are space efficient requires the separation of development time activity from runtime activity.

Will Dylan include an application framework?

We recognize the value of application frameworks, especially cross-platform application frameworks. Unfortunately, because of the great variation in computing platforms, a single application framework will not be part of the Dylan language. On each platform, there should either be a Dylan-specific application framework, or Dylan should be able to use application frameworks written in other languages.

Will Dylan interface to other languages?

We recognize that seamless integration with other languages, especially C and C++, is essential. We are working on addressing this issue. The solutions may not be part of the Dylan language proper.
 

Community Search:
MacTech Search:

Software Updates via MacUpdate

iExplorer 4.1.10 - View and transfer fil...
iExplorer is an iPhone browser for Mac lets you view the files on your iOS device. By using a drag and drop interface, you can quickly copy files and folders between your Mac and your iPhone or... Read more
iExplorer 4.1.10 - View and transfer fil...
iExplorer is an iPhone browser for Mac lets you view the files on your iOS device. By using a drag and drop interface, you can quickly copy files and folders between your Mac and your iPhone or... Read more
Adobe InCopy CC 2018 13.0.1.207 - Create...
InCopy CC 2018 is available as part of Adobe Creative Cloud for as little as $19.99/month (or $9.99/month if you're a previous InCopy customer). Adobe InCopy CC 2018, ideal for large team projects... Read more
Microsoft Office 2016 15.40 - Popular pr...
Microsoft Office 2016 - Unmistakably Office, designed for Mac. The new versions of Word, Excel, PowerPoint, Outlook and OneNote provide the best of both worlds for Mac users - the familiar Office... Read more
Adobe InDesign CC 2018 13.0.1.207 - Prof...
InDesign CC 2018 is available as part of Adobe Creative Cloud for as little as $19.99/month (or $9.99/month if you're a previous InDesign customer). Adobe InDesign CC 2018 is part of Creative Cloud.... Read more
Apple iOS 11.1.2 - The latest version of...
iOS 11 sets a new standard for what is already the world’s most advanced mobile operating system. It makes iPhone better than before. It makes iPad more capable than ever. And now it opens up both to... Read more
Slack 2.9.0 - Collaborative communicatio...
Slack is a collaborative communication app that simplifies real-time messaging, archiving, and search for modern working teams. Version 2.9.0: Slack now officially, and fully, supports Japanese.... Read more
iExplorer 4.1.9 - View and transfer file...
iExplorer is an iPhone browser for Mac lets you view the files on your iOS device. By using a drag and drop interface, you can quickly copy files and folders between your Mac and your iPhone or... Read more
PCalc 4.5.3 - Full-featured scientific c...
PCalc is a full-featured, scriptable scientific calculator with support for hexadecimal, octal, and binary calculations, as well as an RPN mode, programmable functions, and an extensive set of unit... Read more
iExplorer 4.1.9 - View and transfer file...
iExplorer is an iPhone browser for Mac lets you view the files on your iOS device. By using a drag and drop interface, you can quickly copy files and folders between your Mac and your iPhone or... Read more

Latest Forum Discussions

See All

Mighty Battles guide - how to build a so...
Mighty Battles, the latest title from Hothead Games, is set to take the App Store by storm. The game puts a welcome twist on lane battlers, adding FPS elements to spice things up a bit. You'll collect cards to put your own military unit to gether,... | Read more »
Rules of Survival guide - how to be the...
The PUBG craze makes its way to mobile, with more and more battle royale games debuting on iOS and Android. Rules of Survival joins the ranks of mobile PUBG-likes, offering a classic battle royale experiences that doesn't vary too much from its... | Read more »
The best new games we played this week -...
The weekend is upon us friends, and it's time to take a look back and reflect on all of the wonderful games we've played over the past few days. This week was jam packed with new releases. There were some big, long awaited launches, some fun... | Read more »
Lineage II: Revolution guide - tips and...
At long last, Lineage II: Revolution has now come to western shores, bring Netmarble's sweeping MMORPG to mobile devices. It's an addictive, epic experience, but some of the systems in the game can be a bit overwhelming. Here are a few tips to help... | Read more »
A Boy and His Blob (Games)
A Boy and His Blob 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: | Read more »
Fight terrible monsters and collect epic...
Released on Western markets early last month, Dragon Project, created by Japanese developer COLOPL, brings epic monster hunting action to mobile for the very first time. Collect a huge array of weapons and armor, and join up with friends to fight... | Read more »
I Am The Hero (Games)
I Am The Hero 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: I Am The Hero is a pixel art, beat 'em up, fighting game that tells the story of a "Hero" with a glorious but mysterious past.... | Read more »
Kauldron (Music)
Kauldron 1.0 Device: iOS Universal Category: Music Price: $3.99, Version: 1.0 (iTunes) Description: Kauldron is our warmest sounding, punchiest synth yet! A completely new modeling technology, combined with carefully designed... | Read more »
Lineage II: Revolution is mobile’s bigge...
NCSoft’s hit fantasy MMORPG series has just made the leap to mobile with the help of Netmarble in Lineage II: Revolution. With over 1.5 million players having already pre-registered ahead of the game’s launch, Revolution hit the app stores... | Read more »
Swing skilfully in new physics-based pla...
Sometimes it’s the most difficult of obstacles that can be the most rewarding. One game hoping to prove this is OCMO, the new tough but fair platformer from developers Team Ocmo. Primed to set every speedrunner’s pulse racing, as an otherworldly... | Read more »

Price Scanner via MacPrices.net

Black Friday pricing on Macs and iPads now av...
B&H Photo has lowered prices on many Macs, iPads, and iPad Pros as part of their Black Friday week sale. Save up to $200 on MacBooks and iMacs and up to $150 on iPads. B&H charges sales tax... Read more
Best Apple iPad deals this weekend, up to $80...
Apple resellers are offering 9.7″ iPads and 10.5″ iPad Pros for up to $80 off MSRP this weekend as part of their early Holiday and Black Friday sales: Adorama is offering new 2017 9.7″ 32GB WiFi... Read more
Early Black Friday sale: Apple iMacs for up t...
B&H Photo has 27-inch iMacs in stock and on sale for up $130-$150 off MSRP including free shipping. B&H charges sales tax in NY & NJ only: – 27″ 3.8GHz iMac (MNED2LL/A): $2149 $150 off... Read more
Apple restocks refurbished Mac minis starting...
Apple has restocked Certified Refurbished Mac minis starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: – 1.4GHz Mac mini: $419 $80 off MSRP – 2.6GHz Mac... Read more
Save on 12″ MacBooks, Apple refurbished model...
Apple has Certified Refurbished 2017 12″ Retina MacBooks available for $200-$240 off the cost of new models. Apple will include a standard one-year warranty with each MacBook, and shipping is free.... Read more
Early Holiday sale: 12″ iPad Pros for up to $...
B&H Photo has 12″ iPad Pros on sale today for up to $130 off MSRP. Shipping is free, and B&H collects no sales tax outside NY & NJ: – 12″ 64GB WiFi iPad Pro: $749, save $50 – 12″ 256GB... Read more
Holiday sale prices on Apple 13″ MacBook Pros...
B&H Photo has 2017 13″ MacBook Pros in stock today and on sale for $100-$150 off MSRP, each including free shipping plus NY & NJ sales tax only: – 13-inch 2.3GHz/128GB Space Gray MacBook Pro... Read more
Sale: 13″ MacBook Airs starting at $899, $100...
B&H Photo has 2017 13″ MacBook Airs on sale today for $100 off MSRP including free shipping. B&H charges NY & NJ sales tax only: – 13″ 1.8GHz/128GB MacBook Air (MQD32LL/A): $899, $100 off... Read more
Week’s Best Deal on 13″ MacBook Pros: Apple r...
Apple has a full line of Apple Certified Refurbished 2017 13″ MacBook Pros available for $200-$300 off MSRP. A standard Apple one-year warranty is included with each MacBook, and shipping is free.... Read more
Deal: 15″ 2.6GHz MacBook Pro for $1799 w/free...
B&H Photo has clearance 2016 15″ 2.6GHz Touch Bar MacBook Pros in stock today and available for $600 off original MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: – 15″ 2.... Read more

Jobs Board

Product Manager - *Apple* Pay on the *Appl...
Job Summary Apple is looking for a talented product manager to drive the expansion of Apple Pay on the Apple Online Store. This position includes a unique Read more
*Apple* Pro/Consumer Apps Support Engineer -...
…exemplify AppleCare's expert technical support paired with exceptional customer service for Apple 's software apps. This person is a problem solver, who understands Read more
Partner Marketing Manager, *Apple* Pay - Ap...
Job Summary The Apple Pay partner marketing team is looking for a Marketing Manager to develop and drive US programs. The right candidate will be passionate about Read more
*Apple* Solution Consultant - Apple (United...
# Apple Solution Consultant - Rochester, MN Job Number: 113037950 Rochester, MN, Minnesota, United States Posted: 19-Sep-2017 Weekly Hours: 40.00 **Job Summary** Are Read more
Sr. Experience Producer, Today at *Apple* -...
# Sr. Experience Producer, Today at Apple Job Number: 56495251 Santa Clara Valley, California, United States Posted: 23-Jun-2017 Weekly Hours: 40.00 **Job Summary** Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.