3 ms·
I’m curious - what is Dylan really for? Who should use it, and in what situations? I totally could have missed something obvious, but I read through the intro a
by dahart 2y ago
I’m curious - what is Dylan really for? Who should use it, and in what situations? I totally could have missed something obvious, but I read through the intro and the ‘Tour’, and it has a lot of detail about what the language is, but not much on when and where to use it. The closest thing seems to be it’s LISP but faster? What are the reasons to choose Dylan over C++, Swift, JavaScript, or Python?
- patrec 2y agoDylan 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.