6 ms·
Looking at Python: https://wiki.python.org/moin/PythonImplementations https://wiki.python.org/moin/PythonImplementations There is a reference implementation,
by junke 9y ago
Looking at Python:
https://wiki.python.org/moin/PythonImplementations https://wiki.python.org/moin/PythonImplementations
There is a reference implementation, no standard, and a bunch of implementations and/or extensions. Is it really better? What guarantees do you have? If you need to provide an extension, you have to discuss about extensions and push patches to CPython, just like you could push patches to SBCL or ABCL.
But at least (which I do not consider "undeniably worse"), CL is its own platform and offers a standard extension mechanism (e.g. compiler-macros), and implementations offer more specific extensions mechanisms (sb-vm, ...), as well as a standard way of building portability layers across implementations. Those features are used to define and implement new standards. How is that "undeniably worse"?
- KirinDave 9y agoYou can't use compiler-macros to build cross-platform higher order abstractions, so I don't get why they come up. They're exactly as useful as any indirection facility. So why are they relevant here? Not that I like Python, mind you. I miss CL, but I wouldn't go back to it. My experience is that way too many of these beloved libraries have an audience of 1 or 2, sometimes a single company. If I'm going to engage with an environment like that, I'd rather do so to access the leading edge of research and compilation results like w/ Haskell. Even Racket is more desirable than CL on this scale. EDIT: I just wanna repeat I loathe python and carry no water for that standing wave of bad design decisions. Really. Seriously. Worst.
- junke 9y agoNot sure what you count as higher order abstractions, but lparallel, fset, cl-ppcre and other libraries make use of compiler macros; this is relevant w.r.t. efficiency.
- KirinDave 9y agoHaxl is modern. Ponylang's concurrency is modern. Rust's concurrency is modern. lparallel and fset's affordances are not. I'm not sure why a single threaded regular expression compiler is mentioned here. I'd have to check. Is fset even using the current standard (not the newest stuff) for immutable-friendly data structures? Last time I checked they had used a lot of older stuff from Okasaki's work and much of that has been improved upon substantially now. Even Clojure is out of date, compared to this year's innovations!