Open Dylan looks really interesting. However before I would use it in real development, I would like to know how mature the implementation is. I know that Dylan itself is an old language and it has been used by Apple.
-
FORTRAN and Lisp are "old" - Dylan is not even middle-aged. – Paul R Dec 11 '11 at 17:59
-
What is the metric of code maturity? – Matt Ball Dec 11 '11 at 18:03
-
Basically I'm interested if it's ready for production for non-critical applications. – mikkom Dec 11 '11 at 19:08
-
paul, bo "old" I just meant that I know that the language itself is not new and untested. Sorry if I was unclear. – mikkom Dec 11 '11 at 19:11
3 Answers
Well, the current implementation, Open Dylan, has been developed since '95 by Harlequin and Functional Objects, before it became open source in 2003.
How is maturity defined? The compiler includes an IDE (Win32 only, sorry), CORBA, OLE, all in all 850000 lines of code. This is (nearly) all Dylan code.
Meaning, unlike other languages, it is self-hosted. The compiler itself is written in Dylan (with an exception of some lines of C (~4000 lines of code) for the runtime/garbage collector binding. The back-ends are either native x86 code or C.
Please do not confuse this implementation with the two others, which are around: Gwydion Dylan (also written in Dylan; developed formerly at CMU, now open source as well), which compiles Dylan to C; and Apple Dylan (closed somewhere in Apples big storage ;).

- 96
- 1
-
1I have a copy of Apple Dylan. It's actually a fun system but unfinished and rushed out as the project was being closed down iirc. It won't run on MacOS X, obviously. I used d2c for practical hobby projects but didn't have access to Fun-O Dylan. Now it's OpenDylan and available on GNU/Linux, that's changed. I'd certainly recommend Dylan the language. I still miss it when programming C++ and hitting a problem with the class hierarchy, type system, or function calling conventions that just wouldn't be an issue in Dylan. – Rob Myers Dec 19 '11 at 13:26
According to a comment on Hacker News it isn't ready yet. They just started to revive the project.

- 7,202
- 6
- 47
- 62
-
1It depends on what you want to do. For example, if you want to do something for which there is no library, you may have to write more code than otherwise. But it’s in fine shape for basic use of the language for general programming. – Chris Page Feb 08 '12 at 09:50
-
1
-
@stesch -- I appreciate your contribution, but it is sorely outdated. The "comment on Hacker News" you referenced was made on Dec 11, 2011 about the Open Dylan 2011.1 release. As of Oct 2020, here is the current list of all releases, in reverse order: 2019.01, 2014.1, 2013.2, 2013.1, 2012.1, and the one you wrote about, 2011.1. Here is the [Release Notes page](https://opendylan.org/documentation/release-notes/) where this information comes from. After a quick look at all of the release notes, the project looks like it is alive and well, especially with a recent release in 2019. – MicroservicesOnDDD Oct 08 '20 at 19:54
-
@stesch -- Would you care to update / revise this answer? I do not think that anybody can say that it "isn't ready yet", after five additional releases. – MicroservicesOnDDD Oct 08 '20 at 19:59
As of June 4, 2020, the breakdown of files in the OpenDylan project, downloaded from https://github.com/dylan-lang/opendylan, includes:
So you can see that there are 3,112 Dylan files consisting of 30,643,409 total bytes, and also that there are only 104 files in the C Language consisting of only 1,288,062 bytes. And this supports the answer by Hannes, but also sort of quantifies things.
To deemphasize the answer by stesch, which should no longer be considered relevant... This does not look like a "project that's not ready yet". This also does not look like a project just being revived. Therefore, please discount the possibly misleading answer by "stesch".
I research programming languages, and Dylan is my number one pick because:
- It is founded on Lisp principles, a very solid foundation
- It is the only Infix Lisp, and was originally created by Apple, who so far has produced an astounding amount of value to their customers.
- Because it is Infix, it will be easier for the common programmer who uses a C-Like language (JavaScript, C#, C, Java, and many more) to be able to learn a great and powerful language.
- This language has full Lisp macro power. In the C languages, the macro languages there seem bolted-on, a completely different language, and sometimes requires extra parentheses to make it work, leading to subtle bugs. Lisp macros are implemented at a higher level, further along in the compilation process, and also use the same language (Lisp) not a completely different language so it has the same "shape" (is homoiconic) and is much easier to use. Macro use is much more common in the Lisp languages because it is so much easier, in addition to being more powerful.
Read this, if you are interested: D-Expressions: Lisp Power, Dylan Style
And also this, for an understanding of why and how Lisp macros are powerful: Let over Lambda -- 50 Years of Lisp This is most of the book, online, free to read. I purchased the book for the last few chapters, the one on performance, and the one implementing Forth on Lisp, and then implementing Lisp on Forth. Lisp and the concatenative languages have a lot of powerful machinery in common (the ones I have some knowledge of are Forth, Factor, Joy, and Cat), and the chapter on writing a Forth using Lisp helps one to see this.
Domain Specific Languages are a huge tool in our arsenal that we have not done terribly well using. The Macro power of Lisp (and Forth's similar flexibility) allows the on-the-fly definition of DSL's as integral additions to the solution being created. You extend the language -- provide new ways of expressing solutions along side the more usual code.
On a slightly off topic, I sort of like Factor as a better Forth. Created by Slava Pestov, a genius currently working for Apple.
In his video, Slava explains that Factor is based on Forth, but also Lisp. I intend to delve into that to find out what that means, since I've been hopefully looking for the presence of true Lisp-style macro power implemented in other languages.
Edit:
Also in the video on Factor by Slava Pestov, he explains why his implementation of Object-Orientation is better than many other languages, which I consider to be very significant, since so much is built on OO.

- 332
- 2
- 12