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!feeder.eternal-september.org!gandalf.srv.welterde.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: How to get Ada to ?cross the chasm?? Date: Mon, 30 Apr 2018 22:08:22 -0500 Organization: JSA Research & Innovation Message-ID: 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> <87bme2oy91.fsf@nightsong.com> Injection-Date: Tue, 1 May 2018 03:08:24 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="21274"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: reader02.eternal-september.org comp.lang.ada:51861 Date: 2018-04-30T22:08:22-05:00 List-Id: "Paul Rubin" wrote in message news:87bme2oy91.fsf@nightsong.com... ... > It's the other way around. You're constrained from using HOFs and > immutable data that are simple to reason about, instead of finicky > control structures and other low-level manipulation that it's far > preferable to leave to the compiler. If you're doing that in Ada, you're doing it wrong. Use a container, use bignums if you have to (although that is very rarely necessary - integer algorithms tend to have small ranges). Futzing with "finicky control structures" (what the heck is that anyway, the only control structures Ada has are the normal ones like if and case) is unnecessary and "low-level manipulation" is something you do only when you need direct hardware acesss. If you're writing "new" in Ada 2012, you had better be rewriting something that proved to be too slow in testing. (Or writing an Ada runtime.:-) Otherwise, you are wasting your time and energies. If you're explicitly putting "access" into an the interface of an ADT, you probably are copying the design of some other language -- it's almost never necessary in Ada. And so on. If Ada has a problem in these areas, it is that you *can* do those lower-level things. That causes people (even ones that know better, like me) try to do better than the compiler/runtime stuff. You aren't likely to do so. Randy.