3 ms·
The incompatibilities between Schemes is one for starters.
by enupten 12y ago
The incompatibilities between Schemes is one for starters.
- Steltek 12y agoThe core Scheme language seems pretty small compared to CL so compatibility might not be the best argument to make. The best you can say about CL is that it was designed with the expectation of incompatibility. For libraries, CL has the same problems as Scheme so it's a wash. I hit this keenly when interacting with the OS (POSIX calls, mostly).
- _delirium 12y agoI do find even outside-the-standard CL libraries somewhat more portable than Scheme libraries. Varies by library, but CL library authors seem to make more of an effort to test on multiple implementations, using conditional compilation where necessary. It's semi-standard to use a compatibility layer for extensions, e.g. use Bordeaux-Threads rather than directly using sb-thread. Whereas Scheme programming style (at least in the Chicken and Racket ecosystems, the two I've used) seems to make more direct use of implementation-specific functions and comes with less expectation that any nontrivial program will run on another implementation without porting. At least that's the case in the newer "open" CL world; older CL code, especially commercial code, more often did target a specific implementation like Franz, which is more like the Scheme approach.
- latiera 12y agoNo, CL doesn't have the same problems as Scheme, not by a long shot. See Quicklisp or cliki.net even. All these libraries (Quicklisp alone has 1000+ libraries last I checked) work perfectly fine on _multiple_ CL implementations. You doing work on Linux and need a very fast compiler? Use SBCL, 3rd party libraries continue to work (unless they're platform specific) Doing work on OSX or Windows? Use CCL. 3rd party libraries continue to work (unless they're platform specific). This flexibility is absent from the Scheme world, with the myriad slightly incompatible implementations and extremely fragmented library space. The emergence of Quicklisp for Common Lisp was so important that it alone KILLED Scheme for any sort of practical use. For most cases, one has not the slightest incentive to stray from using Common Lisp these days, and if he does, he better have a good reason. What is the equivalent for Scheme? The SRFI hell? _shudder_
- enupten 12y agoYes, I'm sure that's what's behind the new R7RS.