3 ms·
> Clojure is a Lisp. One of the distinctive things about Lisp is that it has dialects. When one of those dialects is completely source-incompatible with every
by kbp 9y ago
> Clojure is a Lisp. One of the distinctive things about Lisp is that it has dialects.
When one of those dialects is completely source-incompatible with every other dialect (the rest of them share non-trivial programs freely), and doesn't share the same core features as every other dialect (like list structure), then why is it still a dialect and not a different language? Calling all the other Lisps that share core features and run the same code different versions of one language makes sense to me; I don't see the point in applying it to any language that borrowed a couple ideas.
If I have a large codebase written in (any) Lisp, will porting it to Clojure be significantly easier than porting it to Javascript or Ruby or any other modernish language? Not really; it's a complete rewrite either way. That sounds to me like it might just be a different programming language.
- tazjin 9y ago> the rest of them share non-trivial programs freely Heh. Most Scheme dialects don't even have source compatibility despite implementing the same standards. Common Lisp lets you write portable (between different CL implementations) applications, but it's easy to end up doing something that is implementation-dependent if you're not careful.
- ScottBurson 9y ago> it's easy to end up doing something that is implementation-dependent if you're not careful. I wouldn't say that. I've done a fair amount of porting code between CL implementations, and it's usually pretty straightforward. Implementation dependencies tend to be found only in code doing OS-y things like threads, external processes, network sockets, etc. This code is usually not difficult to find, and I would think that the authors would have expected it to be implementation-dependent. Computational code usually ports with zero effort, even when the machine word size changes.
- DonHopkins 9y agoSays the guy who wrote an interactive C compiler for Lisp machines! ;) "C combines the power and performance of assembly language with the flexibility and ease-of-use of assembly language." https://github.com/navoj/clisp-c https://github.com/navoj/clisp-c
- kamaal 9y ago>>Not really; it's a complete rewrite either way. Most languages are a evolutionary dead end. They won't even get this far.