hn-classics/_stories/1992/15106802.md

16 KiB

created_at title url author points story_text comment_text num_comments story_id story_title story_url parent_id created_at_i _tags objectID year
2017-08-26T18:53:05.000Z Dylan: A New Language Is Blowin' in the Wind (1992) https://www.schneier.com/essays/archives/1992/09/dylan_a_new_language.html e12e 123 101 1503773585
story
author_e12e
story_15106802
15106802 1992

Source

Essays: Dylan: A New Language Is Blowin' in the Wind - Schneier on Security

Schneier on Security

Powered by DuckDuckGo

blog essays whole site

Subscribe

Atom Feed Facebook Twitter Kindle E-Mail Newsletter \(Crypto-Gram\)

Essays >

Dylan: A New Language Is Blowin' in the Wind

  • Bruce Schneier
  • MacWEEK
  • September 14, 1992

Cupertino, Calif. - Programmers will be able to use a new computer language called Dylan to build applications on the Newton Personal Digital Assistants. While this language incorporates numerous advances from the world of academia, many developers wonder how well it will perform in the real world.

Dylan is an object-oriented dynamic language - one that makes it possible to modify programs, at the source-code level, on the fly. (In fact, the name Dylan is short for dynamic language.) It retains much of the basic syntax of LISP, the language from which it is derived, but it offers far more power, its developers say.

According to Apple, Dylan will run efficiently on a variety of hardware platforms, including small machines with limited power and memory capacity. And because Dylan is dynamic, it will allow programmers to prototype designs, reuse pieces of code and rapidly build programs out of those code objects.

In the mid-1980s, Cambridge, Mass.-based Coral Software Inc. created a Mac implementation of Common LISP. It was fast, required only small amounts of memory, incorporated object-oriented technology and was thoroughly integrated with the Mac environment.

Apple acquired Coral in 1989, hired most of the staff and rechristened it the Apple Advanced Technology Group East. The group has since been renamed Apple Computer Cambridge Research and Development.

At its inception, ATG East had two missions. It continued development of Coral's LISP, which eventually led to this year's release of Macintosh Common LISP 2.0. It also began wor ing n a new set of design criteria, which led to Dylan.

"We certainly don't invent new languages lightly, but no existing language met our needs," said Ike Nassi, director of research and technology for Apple Computer Cambridge Research and Development. "We wanted a language that provided the benefits of Smalltalk and Common LISP and that would attract static-language programmers."

While its similarity to LISP will make it easier for LISP programmers to learn Dylan, C and Pascal developers weren't impressed with Dylan's LISP heritage. "The syntax is unreadable," said Howard Shere, president of Green Dragon Creations Inc., a Mac software company based in Lake in the Hills, Ill.

Nassi responded: "We are less concerned about the syntax than the underlying structure. There are other syntaxes that we can apply to Dylan." An ALGOL-like syntax and a Smalltalk-like syntax are possibilities, he said.

Developers said they welcome alternate syntax options but wonder about Apple's support for them. "I don't know whether that is something they intend to deliver or something that we are going to have to do ourselves," said Jeff Alger, a Palo Alto, Calif., consultant and co-author of "Developing Object-Oriented Software for the Macintosh."

Key advantages of Dylan include:

  • Complete object orientation. Unlike many other object-oriented languages, Dylan is object-oriented throughout its design. The programming environment presents debugging information in terms of objects, it treats Dylan programs as object collections, and it includes tools for inspecting and monitoring the performance of individual objects.

Dylan also supports tools - both pre-existing libraries that all applications use and custom-developed libraries - for organizing objects.

All these features integrate to form what Apple calls an "organic whole," meaning that Dylan objects are mutually supportive: The simplest implementation of each depends on the existence of the others.

  • Dynamism. To achieve this level of integration, Dylan's designers abandoned standard language techniques.

"Traditional static languages discard most of the information about objects during compilation, so programs cannot be easily modified and debugged," Nassi said. Dylan's dynamic nature retains the object-oriented structure of programs from design to the final application.

With a static language, programmers must write a complete program before they can compile and test it. With a dynamic language, the programming process is more interactive. A Dylan programmer will be able to design and test each object on the fly, as well as add and delete components without having to go through tedious recompile cycles.

"I think that C++ is the Cobol of the '90s. People have hammered at the static-language model for years," Alger said. "A dynamic language opens a new set of possibilities."

Shere said: "I like the ability to dynamically redefine classes and methods. Anything I can do with a conventional language before compile time, I could do with Dylan at execution time."

  • Efficiency. Programmers normally view dynamic languages as slow memory hogs.

According to Apple, Dylan is neither. "We've designed Dylan so a variety of implementation techniques are possible. We can optimize it for each hardware platform," Nassi said.

Nassi downplayed the rumors that programs written in Dylan would somehow consume less battery power than equivalent programs written in C++.

However, he said, "We can develop implementation strategies that could take into account different power-consumption profiles for different machines." For example, on a machine where battery life is critical, such as a PowerBook, Dylan's memory management could use the disk drive less frequently.

"What we have done is engineered Dylan for a wide variety of computers. We have taken into account the needs of both small and large machines," Nassi said.

Although Apple CEO John Sculley has talked publicly about Dylan, Apple has made it clear that Dylan is not an announced product. Nor has it announced that Dylan will be the Newton language of choice.

"We wanted to announce things that we thought were reasonably polished," Nassi said.

Even so, Dylan represents the kind of programming language needed to develop a single piece of software for different machines with different hardware requirements, as reportedly will be the case with the variety of intelligent devices expected to use Newton technology.

For Mac developers Dylan means mastering a new language, but most contacted said they are excited at the prospect. "We have to keep defining new languages because concepts keep changing," Shere said. "If you're a good programmer, it's just another language to learn.

Categories: Non-Security Articles

Tags: MacWEEK

CDDI Breathes Life into FDDI Standard Does Telecommuting Work? Bosses, Employees Hammer out Terms →

Photo of Bruce Schneier by Per Ervland.

Schneier on Security is a personal website. Opinions expressed are not necessarily those of IBM Resilient.

About Bruce Schneier

Bruce Schneier

I've been writing about security issues on my blog since 2004, and in my monthly newsletter since 1998. I write books, articles, and academic papers. Currently, I'm the Chief Technology Officer of IBM Resilient, a fellow at Harvard's Berkman Center, and a board member of EFF.

more essays

Essay Archives

Essay Categories

Essay Tags

more tags

Latest Book

Data and Goliath

more books

Support Bloggers' Rights! Defend Privacy--Support Epic

Resilient Systems