Dylan: A New Language Is Blowin' in the Wind
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