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!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.ada Subject: Re: How to get Ada to ?cross the chasm?? Date: Mon, 30 Apr 2018 20:45:06 -0700 Organization: A noiseless patient Spider Message-ID: <87in88m43h.fsf@nightsong.com> References: <1c73f159-eae4-4ae7-a348-03964b007197@googlegroups.com> <87k1su7nag.fsf@nightsong.com> <87po2la2qt.fsf@nightsong.com> <87in8buttb.fsf@jacob-sparre.dk> <87wowqpowu.fsf@nightsong.com> <16406268-83df-4564-8855-9bd0fe9caac0@googlegroups.com> <87o9i2pkcr.fsf@nightsong.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="d740b49da12eaabd4c203ceddc63754d"; logging-data="6281"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/r/XAt72Ae6dAulQHCz6AC" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) Cancel-Lock: sha1:zx7muutjAP5Qzy2X+leq7VaLwo8= sha1:67WswVRlI2VugfSJOu451x1rvJo= Xref: reader02.eternal-september.org comp.lang.ada:51864 Date: 2018-04-30T20:45:06-07:00 List-Id: "Randy Brukardt" writes: >> of attention, and constrains your style quite a lot. > Which is a good thing. It escapes me why spaghetti code is long since > considered a bad thing, but writing spaghetti data is some sort of > necessity. I think you and Jeff misunderstood me about style constraining. I mean the constraints MAKE you write spaghetti code when you prefer otherwise. Like if Ada got rid of its structured control flow statements so the only thing you could use was if...goto, that's the type of style constraint I'm thinking of. You might have imagined something like eliminating goto (decreasing spaghetti instead of increasing it) but I meant it the other way around ;-). > "Smart pointers" are rather kick-the-can; the only sensible solution > is no pointers. A cleaner approach imho is immutable data passed by reference (this is how most of functional programming works). It's not really feasible to code in that style in Ada, as far as I can tell. Aside from language issues, I think it's unfeasible without a gc, but maybe I'm wrong.