From: Matthias B. <bl...@re...> - 2001-09-26 15:03:37
|
David Matthews wrote: > > First, is there any reason to believe that programming languages must > change? Certainly languages must respond to their environment to the > extent of adding new libraries and modules. I think everyone accepts > that. Where there is disagreement is whether it is necessary to change > the fundamentals, the elements with which the Definition is concerned. > If one looks at other widely used and certainly viable languages such as > C I cannot see any evidence that they are changing in that area. C is a very fine example in support of Bob's analysis. Witness K&R C, ANSI C, C++ (arguably a "different" language altogether) and now C'99. > Second, is there any pressure for change? Ken Friis Larsen pointed out > that even among the implementers responding to these messages there > seemed to be a majority against change. Making such claims (about "majority" and such) would require taking a vote. Plus, you might even be right: Many of those disappointed with the current state of the language have already left us for the greener pastures of OCaml etc. Of course, we can let this continue to happen (and it will if SML proves unable to adapt to its users' needs). Ultimately this will lead to SML's death. (Arguable, it is very sick already.) > If Standard ML is to be treated > as a serious language the most important community is that of the users > of the language. I get no impression that they are calling out for > changes, rather the opposite. A quick look at the Isabelle theorem > prover suggests that it contains around 200 000 lines of Standard ML. I > am sure Larry and his colleagues would object to having to change this > to accommodate another change in the language definition. The effect is > that even if the definition of the language changed Poly/ML would have > to continue to support SML97 for the foreseeable future. Bob was quite explicit with the goals of the immediate endeavor: Moderate changes that clarify what hasn't been clarified so far and minor changes that are hopefully even backward-compatible. And if there end up being one or two minor incompatibilities, so be it: Even a 200,000 lines ML program can be brought up to speed very quickly. > Finally, is it possible to manage the diversity? There is a fundamental > difference of approach between implementers when it comes to the > language. Some see the Definition as a guideline to be followed as far > as possible but where they perceive deficiencies or where they wish to > make extensions they are happy to diverge from it. I would want to make one thing clear here: This is not something driven by implementers; this is driven by _users_ of the language (of which implementers are a part). Most of the changes that I would like to see are those for which I find the current workarounds to be too bothersome when _programming_ in ML. > Others, and I would > count myself among them, see the Definition as a form of contract with > the users and attempt to follow it as closely as possible. I see it the same way. But when following the existing contract is no longer desirable, then one can try to revise it. This requires some form of agreement among the parties, and that's what we are trying to get. We are not talking about some Holy Scripture here, ML is not a religion (despite the many religious wars that are being fought over programming languages). > I don't see > it is possible to "manage" this difference in philosophy. Some > implementers will wish to experiment with new language features beyond > any new Definition while others will feel that it is more important to > continue to support the older versions of the language. Bob was quite explicit about that, too. The changes we are talking about (in the framework of revising Standard ML) are not of the "language research and experiments" nature. For the latter (something that researchers will always be interested in), a standardized language is, indeed, not a good vehicle. But that's not the issue here. > Far from > creating harmony between the implementations I can see further change in > the Definition as leading to even greater divergence. Well, not having further changes will certainly create perfect harmony: All users and all implementers will agree perfectly (since there will be none). Unfortunately, it will be the harmony one usually experiences only in graveyards... (Sorry for sounding so depressed, but this discussion _is_ depressing!) Matthias |