3 ms·
Dylan is simply a historical curio, so there are no situations in which anyone should use it apart to study programming language history and to take inspiration
by patrec 2y ago
Dylan is simply a historical curio, so there are no situations in which anyone should use it apart to study programming language history and to take inspiration from roads not taken. It's basically Common Lisp, with Algol-like syntax, less historical baggage (everything is a class, no weird stuff like prog and so and so forth) and more emphasis on efficient implementation. Unfortunately, it didn't catch on, but it's IMO a nicer language than python (which modelled inheritance rules on Dylan), Java, Javascript or C++.
Here are some interesting things about it:
1. It has an simple but nice trick for avoiding ugly_underscores: a-b is a single symbol, a - b is subtraction.
2. IIRC it was the first non-sexp language with a sophisticated macro system.
3. Like Common Lisp it has multi-methods and resumable exceptions (but unlikely Common Lisp all exceptions are resumable). If you want to play around with either multi methods and resumable exceptions, Common Lisp or Dylan are probably your best bets and Dylan has the advantage of being probably simpler to pick up.
- pjmlp 2y agoSome of the Dylan's ideas live on Julia, though. Which has had a good adoption story thus far. https://info.juliahub.com/case-studies https://info.juliahub.com/case-studies
- patrec 2y agoGreat point – I should definitely have mentioned Julia as your best bet for playing around with multi-methods. I think it's basically the only language with any eco-system to speak of that has them. Julia also happens to be the only extant language I'm aware of that has a well designed shell interpolation syntax. For resumable exceptions, however, playing around with Dylan or CL remains your best bet, as far as I'm aware of (and Common Lisp at least also integrates them into the interactive development experience).
- emorning3 2y agoExcellent point. Multi-methods are awesome.