3 ms·
ISLISP is indeed interesting, albeit more from a political standpoint than a technical one. It really was not an overnight process -- ISO had started the proje
by groovy2shoes 10y ago
ISLISP is indeed interesting, albeit more from a political standpoint than a technical one. It really was not an overnight process -- ISO had started the project shortly after the ANSI committee for Common Lisp was formed. There was fear in Europe and in Japan that the US would have too much control over the future of Lisp with only an ANSI standard and no international one. What ISLISP actually wound up being, after about a decade in development, is a crippled subset of Common Lisp, modulo alpha conversion (some things were renamed). Politically, it worked to assuage the fears over American control, but technically it was a flop. As far as I can tell, the only implementation currently available is OpenLisp from Eligis, which is commercial, expensive, and features many extensions to the standard language.
I have a hunch that the politics surrounding ISLISP also lead to the demise of EuLisp, which was a much more interesting language than ISLISP turned out to be. If ISLISP had been based on EuLisp rather than Common Lisp, I think it might not have fallen flat on its face the way it did, because it would have had something to offer beyond what Common Lisp offers.
On a related note, Kent Pitman, the guy who actually wrote the ANSI Common Lisp standard, also wrote the ISLISP standard. Of course, he was not the sole designer of either language, but he's the guy who put the design into words. If you're interested in knowing some more about ISLISP, he may be willing to give you some information. He's active on Twitter and comp.lang.lisp (Usenet).
- kazinator 10y agoI don't understand why ISLISP needed an update in 2007. Was the large and vibrant ISLISP world beginning to fragment due to vendors pulling in different directions?
- groovy2shoes 10y agoHonestly, I don't understand why, either. To be honest, I'm not quite sure what the differences are between the 1997 edition and the 2007 edition, despite having read both. Perhaps if I were actually an ISLISP programmer, something would've jumped out at me, or if I had read them with the intent of doing comparison (which I may do, now that I think of it). ISLISP's biggest weakness, in my opinion, is that it lacks a standard module system. Perhaps if they decide to do a 2017 update, modules will make it in there ;)
- netsettler 10y agoStandards organizations periodically insist on updates in order for a document to be considered active. This assures things don't decay but it can also be a way to churn business. But also there are sometimes typos and other details to fix, noticed through use, which I thin was the case here (though I'd have to go back and look at records I don't have at my fingertips to be sure, so please don't hold me to that--these remarks are extemporaneous, written on a subway while traveling), and yes there is an ISLISP community even if not at the scale of the CL community. One of the effects of ISLISP was to legitimize various dialects of Lisp that did not want or need to be Common Lisp. By being ISLISP compliant, they have some degree of interchange capability with one another. ANSI CL has things it could fix, but the problem is that you can't open the process for edits merely to fix those things. Any opening of it to small edits opens the floodgates for many kinds of changes, and it might destabilize it. (There is a strong analogy to be made with having a second constitutional convention for the US Constitution, by the way.) SO opening for edits and improvements might seem benign, but understand that in order to have voting standing (something there is a HUGE rulebook to assure), you have to be a member. ANSI's claim of fairness, which is all that stands between its entire business model and an antitrust suit, relies on fairness. Normally, companies cannot collude, but standards are a deliberate mechanism to avoid that, and they rely on strict application of rules to achieve a constructive notion of fairness, since any intangible notion of fairness would be untestable. But it's pretty high overhead to have membership. Certainly it's expensive for individuals to be members in ANSI and it's left to mostly whichever companies go, so although the intent is fairness, in my personal view it's very difficult to assure fairness exactly because of the rules that try to assure it. It's almost a catch-22. The very fact of the rules means people with should-be standing are locked out by cost, and so in practice all members who would want to be represented are not going to be, and the people making the decisions will be those who can afford membership. In the international arena, where the members are countries, there are similar issues though only countries can be members. As discussed in Untold Story, there is a risk of single individuals in countries that don't really care about a standard getting the same vote as a country like the US that might care a lot (or vice versa, perhaps, for other standards--I apologize for the US-centric nature of that remark, but the problem is quite general and I just perceive and express it as a US issue when really it's the same for everyone rule-wise and it's the business world and/or wealth and/or activity that is unevenly divided). In fact, I think the ISLISP world is pretty fairly administered and I don't think there was much debate about the 2007 update. It was smoothly and easily handled by Taiichi Yuasa. I did editorial work to help with that.
- theoh 10y agoBy "modulo alpha conversion" I understand you to mean that the functionality was the same, only the names changed in some cases. A clearer way to put this would be to talk about "equivalence" or maybe even isomorphism? I'm commenting because the notion of alpha conversion always seems like an inflated idea in the lambda calculus context. Of course \x.x means the same thing as \y.y, no need to make a song and dance about it... Edit: to add a bit of value, here's Andrew Pitts on the subject: "The tedious and error-prone nature of ad hoc solutions to this semantically trivial, but pragmatically non-trivial issue of α-equivalence is widely acknowledged" https://www.cl.cam.ac.uk/~amp12/research/freshml/freshml-final-report.pdf https://www.cl.cam.ac.uk/~amp12/research/freshml/freshml-fin... (He is talking about programming language support for actually doing metaprogramming jobs that involve preserving alpha equivalence.)
- groovy2shoes 10y agoI disagree that talking about equivalence or isomorphism would be clearer, simply because those two terms are ambiguous. They each have multiple definitions, whereas, as far as I'm aware, alpha conversion only has one. You are correct in your interpretation. I'm not making a song or a dance about alpha conversion, I'm simply using it for description because it is a well-defined notion with a precise meaning. I don't see the point in trying to come up with some other term that means the same thing, when a perfectly good term is already available. Anyway, I appreciate that you are trying to be helpful, but I stand by my phrasing :)