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!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: How to get Ada to ?cross the chasm?? Date: Sun, 6 May 2018 11:53:28 +0200 Organization: Aioe.org NNTP Server 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> <87in88m43h.fsf@nightsong.com> <87efiuope8.fsf@nightsong.com> <87lgd1heva.fsf@nightsong.com> <87zi1gz3kl.fsf@nightsong.com> <878t8x7k1j.fsf@nightsong.com> NNTP-Posting-Host: kQkuQcRDy1QFvWpyB1foYw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 Content-Language: en-US X-Notice: Filtered by postfilter v. 0.8.3 Xref: reader02.eternal-september.org comp.lang.ada:52035 Date: 2018-05-06T11:53:28+02:00 List-Id: On 2018-05-06 10:34, Niklas Holsti wrote: > The problem for Ada, today, is that it is very difficult to extend the > Ada spectrum to cover both its traditional core area -- real-time > embedded systems -- and the areas where garbage-collected languages > shine, because of the non-functional issues (time and space consumption) > that require different approaches at the two ends of the spectrum. I disagree. It is not difficult if attention were paid to fixing the type system. These areas require an elaborated type system in order to be able to create more powerful abstractions without sinking into a mess of generic instances. I don't believe GC is ever needed. It is used to handle ad-hoc low-level objects or low-level spaghetti structures, as Randy called them. And a low-level network of ad-hoc functions in functional approach is not appealing either. Ada should stop parroting pool language and borrow their mistakes. > Moving the focus back to Ada, efficient applicative data structures are > interesting for real-time systems because they could reduce > locking/blocking times: a "reader task" could quickly grab a (logical) > immutable copy of a large data structure and read the data at its own > speed, without interfering with "writer" tasks that transform their own > (logical) copies of the data structure. You need to merge incoherent copies at some point later. More removed the point is, more difficult it becomes and more expensive could be a rollback, in case something happens. I have an intuitive feeling that in general lock-free approach does not work at large scale and is effective only at the low level and tight times. > The Ada programs for satellites on which I am currently working often > meet with such problems, and either work slower (mutual exclusion > between readers and writers), use more memory (dual physical copies of > the data structure) and/or pass the problem to the satellite operators > (commands to mutate the on-board data structure are delayed or failed if > the data structure is in use by some reader). Better solutions are needed. Yes. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de