Hacker News new | ask | show | jobs
by patrec 523 days 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.

1 comments

Some of the Dylan's ideas live on Julia, though.

Which has had a good adoption story thus far.

https://info.juliahub.com/case-studies

Great 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).
Excellent point. Multi-methods are awesome.