Friday, May 07, 2004
Last night I posted a question on c.l.l asking about modernizing Common Lisp. I had found a paper in a Google search that had suggested some new areas for CL standardization. The features under consideration were basically high-level library features, the two notable ones being theading and network APIs. I personally think this would be useful to encourage more portable complex library code. While you can share portable CL library code today, it gets more difficult when you get into higher-level "OS interface features."
Put another way, we all standardized CAR, CDR, LIST, and MAPCAR a while ago. Now, it's possible to have completely portable functions at the level of FACTORIAL. ;-) But we don't have a portable networking API, so it's more difficult have portable HTTP libraries. Can those libraries be written? Yes, but the implementor either has to retrieve a compatibility library and build on that (then which one?), or do all the implementation-specific coding herself.
Does this mean that it's impossible to write portable code? No, absolutely not. But the overall friction means that less portable code gets written and thus people spend more time porting code between implementations or rewriting code entirely because they are unaware of code that works with another platform.
Links to this post: