From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!nntp-feed.chiark.greenend.org.uk!ewrotcd!newsfeed.xs3.de!reality.xs3.de!io.xs3.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: I am not understanding user defined exceptions Date: Mon, 13 Feb 2017 17:20:44 -0600 Organization: JSA Research & Innovation Message-ID: References: <6cb6e781-c6df-4962-99e3-760e7c7fab88@googlegroups.com> NNTP-Posting-Host: rrsoftware.com X-Trace: franka.jacob-sparre.dk 1487028045 13507 24.196.82.226 (13 Feb 2017 23:20:45 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Mon, 13 Feb 2017 23:20:45 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Response X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Xref: news.eternal-september.org comp.lang.ada:33349 Date: 2017-02-13T17:20:44-06:00 List-Id: "Dmitry A. Kazakov" wrote in message news:o7ldjo$10aj$1@gioia.aioe.org... > On 2017-02-10 22:09, Randy Brukardt wrote: > >> (2) It's important that all properties that clients can depend upon are >> declarable, so clients aren't depending on accidental properties. (That's >> the whole principle behind private types.) Static is such a property, > > Why is static a property? > > Not to confuse with immutability. Mutability is a property (a subtype), > observable through operations being visible or not. Staticness looks like > a language design artifact. Its a property because the language design depends on it so heavily. Perhaps one could design a language that enforced Legality Rules without having some property that controls whether that is possible or not, but I can't quite imagine how. (Only a language that enforced no rules until runtime could work that way, IMHO, and that eliminates most of the benefits of strong typing and early error detection.) If static was a declarable property, I'd also make it possible to declare user-defined static things, and apply that to all types. For instance, it should be possible to have static System.Address values, static Complex values, and the like. It wouldn't be limited to just whatever the language designers could define. Randy.