Path: csiph.com!news.swapon.de!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c++,comp.lang.c Subject: Re: =?utf-8?Q?=22=E2=80=9CRust?= is the future of systems programming, C is the new =?utf-8?Q?Assembly=E2=80=9D=3A?= Intel principal engineer, Josh Triplett" Date: Thu, 29 Aug 2019 23:11:46 -0700 Organization: None to speak of Lines: 34 Message-ID: References: <0TG9F.183628$vW4.72670@fx24.am4> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: reader02.eternal-september.org; posting-host="850fdfdbf5ce6c91cc1b551f0a180e5a"; logging-data="24184"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ZS/IXKxKVAM7Wu56tH1Be" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:feQ3JRZNnjP66vWeHCiYPtv8gEQ= sha1:ibMZn32AAizZW3SNso4ALkB0DTU= Xref: csiph.com comp.lang.c++:68011 comp.lang.c:145849 Mel writes: > On Thu, 29 Aug 2019 13:29:11 -0700, Keith Thompson > wrote: >> David Brown writes: >> > On 29/08/2019 04:36, Melzzzzz wrote: >> [...] >> >> Rust is nowhere near C. Actually, nowhere near C++. It is nice >> >> language, but not for low level programming. During years they >> >> ditched GC and most of the things that cripples determinism and >> >> performance, it is ok, but without pointer arithmetic and null >> >> pointers it is high level language. Having to convert pointer to >> >> int and back in order to perform arithmetic is worse that doing it >> >> in assembler. >> > >> > That sounds terrible. (I am not very familiar with Rust.) > >> What's terrible about it? Rust doesn't particularly need pointer >> arithmetic; unlike C, it's array indexing isn't defined in terms of >> pointers. > > You need pointers for low level things. You need pointer *arithmetic* for far fewer things than you need pointers for. > In rust you need unsafe > blocks for almost anything. So use unsafe blocks. -- Keith Thompson (The_Other_Keith) kst-u@mib.org Will write code for food. void Void(void) { Void(); } /* The recursive call of the void */