From mboxrd@z Thu Jan 1 00:00:00 1970 Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Ada vs. Rust for low level system software Date: Wed, 13 Dec 2023 09:27:34 +0100 Organization: A noiseless patient Spider Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Wed, 13 Dec 2023 08:27:35 -0000 (UTC) Injection-Info: dont-email.me; posting-host="103a7d2d41e48b7ed5b154aa9dd2d92e"; logging-data="104118"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+bOT/deVm9GGl9ZZwtAaVfYcypHeJO3xo=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:MMLk3miacZGJF0vpuDlQcr/Pwpw= In-Reply-To: Content-Language: en-US Xref: news.eternal-september.org comp.lang.ada:65911 List-Id: On 2023-12-13 05:28, Nasser M. Abbasi wrote: > Has anyone made study of difference between Rust and Ada for low level > hardware > system software? What for? Any language comparisons lost their meaning long ago as the whole language business degraded into hobbyist/corporate bullshit. > Since Ada is mainly used in this area, why has Rust, which is much > younger language, and target this same area has gained so much > popularity but not Ada? Because it is always someone's arbitrary decision. > https://dl.acm.org/doi/fullHtml/10.1145/3551349.3559494 > > "Rust is a rising programming language designed to build system > software [4, 10, 20]. On the one hand, Rust offers access to and control > of the low-level system resources. On the other hand, > unlike conventional systems programming languages, Rust > ensures memory and concurrency safety" > > "Rust often inserts bound checks at the execution time to rule > out out-of-bound accesses" > > Well, does not Ada also "ensures memory and concurrency safety" > and checks for out-of-bound accesses? > > I am just wondering what does Rust brings to the table that > Ada does not have and why is Rust becoming so popular when > Ada is not. In my view Rust brings nothing and moreover is a huge step back comparing to Ada. Its main and only idea is to force the programmer to explicitly manage memory through references where Ada simply uses object notation regardless the mechanism doing same under the hood. Safety comes not through references but by limiting the number of cases you must resort to using dynamic allocation for statically scoped objects. E.g. Unbounded_String in Ada. As for my major concern - the type system and the abstraction mechanisms in general, there is nothing in Rust at all. Then of course Rust continues the worst practices tried by Ada and C++: templates/generics, macros. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de