We're currently working on a lot of stuff, including an Objective C / Dylan bridge, a new build toolchain and an experimental REPL that may work outside of Windows until we can bring over the real one (once our LLVM backend is in place).
3,597 karma · joined December 11, 2011
We're currently working on a lot of stuff, including an Objective C / Dylan bridge, a new build toolchain and an experimental REPL that may work outside of Windows until we can bring over the real one (once our LLVM backend is in place).
They have the right to limit the distribution of their beta software.
I have a branch that will soon allow using either Boehm or MPS on the various backends. That'll probably be the case for the LLVM backend as well.
Part of the reason that I'm doing that is to help gather some performance data on the MPS. (I'm actually doing that Dylan runtime work under contract.)
Functional Developer and now Open Dylan also support debugging on Windows, have a REPL (on Windows) and many other features.
With the upcoming LLVM backend, we'll be able to bring those features to other platforms, but we'll need DUIM backends to support the user interface. That's a big part of why this call for help mentions several GUI related things.
With some luck and a lot of hard work, this will be a great year for Dylan.
Lately, we've made our test framework integrate well with Jenkins (using Surefire output) and have been getting more and more of our libraries and tests building via Jenkins.
We've also been pulling out some chunks of code and turning them into useful and usable libraries. Our binary data library is an example of this (http://opendylan.org/documentation/binary-data/).
And one of our hackers has spent a large amount of time this week cleaning up and re-working a tool that he had for visualizing the compiler's optimizer. This will let us better perform bugfixes, ensure that the transforms are operating correctly.
We do have areas where we intend to improve the language. There are some extensions to the type system that we're looking at, improving Unicode support, and improving our numerics. But these aren't our main or daily areas of focus.
We want to bring our IDE to non-Windows platforms, we're improving our compiler backends, improving the GC integration, working on editor integration with CodeMirror, vim, emacs, and IntelliJ.
It is highly readable. And you can use '!' and '?' in names!
An optimized implementation of multimethods is always nice.
The ability to apply optional static typing is great for putting stuff into production and feeling good about it.
Having multiple return values, keyword arguments and rest arguments is nice (and yes, Python can do much of that).
But at the time, the Apple Dylan IDE was pretty slow and buggy. It is amazing what a few years make much more feasible!
I work on http://opendylan.org/ and have been working to revive it for the last couple of years. We've done new releases, improved usability of the compiler and some of the libraries, new website, updated all of the documentation to modern formats, including a couple of books.
We've also been creating a new IDE via a plugin to IntelliJ that is rapidly changing how I go about writing Dylan.
I think it is cool because it is a great substrate for experimenting with some features in programming languages and runtimes, like coroutines and numerics. It is great to start from a working and industrial strength system.
I think it is great to prevent things from being lost to history (and to hopefully have them be useful again). Dylan is a great combination of ideas from Common Lisp, Smalltalk but with a focus on creating native executables and libraries.
I've also got something that I'm building in Dylan that takes advantage of Dylan's strengths, but it is in very early days.
Most days are pretty easy. Being that I maintain a large project (Open Dylan), there is almost always a simple bug to fix, documentation to improve, typos to correct, bugs to file, pull requests to merge from others.
It has been great for keeping things moving and making sure that every day, I make at least a little bit of progress. Every day, at least a tiny step forward.
Dispatch is dynamic, except where the compiler has determined (perhaps with hints from the programmer in the form of sealing) that it can be optimized into a static dispatch. One mode of the compiler extends this to help further eliminate runtime dynamic dispatch but that isn't enabled currently (as we aren't sure of the state of that code).
Dylan's OO isn't traditional OO at all in that it isn't like Java, Smalltalk, C++, Python, etc. Instead, it is CLOS-style OO. I wouldn't say that it was new and hot and had to be included as the OO in Dylan is a direct descendent of what was already in Common Lisp and going back from there to Flavors from Symbolics on the Lisp Machine and so on. (In fact, some of the same people were responsible...)
As for #2, I don't really see that at all. Dylan has a very intelligent and hard working compiler that tries to let you have the freedom that you want, but still be able to make things run efficiently. After all, it was targeted originally at hardware from 15-20 years ago.
I'm not a Julia expert, so I won't try to address the other points.
I've asked someone else if they might respond to you with some further and more useful info. Hopefully they can!