Jump to page: 1 27  
Page
Thread overview
Talk on what a systems programming language needs to replace C
Aug 25, 2019
Dibyendu Majumdar
Aug 26, 2019
IGotD-
Aug 26, 2019
Dibyendu Majumdar
Aug 26, 2019
drug
Aug 26, 2019
Dibyendu Majumdar
Aug 26, 2019
Russel Winder
Aug 26, 2019
Russel Winder
Aug 26, 2019
Dibyendu Majumdar
Aug 26, 2019
IGotD-
Aug 27, 2019
Russel Winder
Aug 27, 2019
Paulo Pinto
Aug 27, 2019
Russel Winder
Sep 03, 2019
Laeeth Isharc
Sep 05, 2019
Russel Winder
Aug 27, 2019
Dibyendu Majumdar
Aug 28, 2019
welkam
Sep 03, 2019
Russel Winder
Aug 27, 2019
Walter Bright
Aug 26, 2019
Russel Winder
Aug 26, 2019
IGotD-
Aug 27, 2019
Walter Bright
Aug 27, 2019
IGotD-
Aug 28, 2019
Robert M. Münch
Aug 28, 2019
Patrick Schluter
Aug 28, 2019
Eugene Wissner
Aug 28, 2019
Jacob Carlborg
Sep 04, 2019
bpr
Sep 04, 2019
Walter Bright
Sep 05, 2019
Russel Winder
Sep 05, 2019
bpr
Sep 05, 2019
bachmeier
Sep 05, 2019
H. S. Teoh
Sep 05, 2019
Walter Bright
Sep 07, 2019
IGotD-
Aug 27, 2019
Russel Winder
Aug 26, 2019
Paulo Pinto
Aug 26, 2019
Dibyendu Majumdar
Aug 26, 2019
Paulo Pinto
Aug 26, 2019
IGotD-
Aug 26, 2019
H. S. Teoh
Aug 27, 2019
drug
Aug 27, 2019
Chris
Aug 27, 2019
Walter Bright
Sep 03, 2019
Laeeth Isharc
Sep 03, 2019
Adam D. Ruppe
Sep 04, 2019
Bastiaan Veelo
Sep 05, 2019
Laeeth Isharc
Sep 04, 2019
Walter Bright
Sep 05, 2019
Laeeth Isharc
Sep 05, 2019
Russel Winder
Sep 05, 2019
Walter Bright
Sep 05, 2019
Russel Winder
Sep 05, 2019
Walter Bright
Sep 05, 2019
H. S. Teoh
Sep 07, 2019
Walter Bright
Sep 13, 2019
Andrea Fontana
Sep 07, 2019
Russel Winder
Sep 07, 2019
Jacob Carlborg
Sep 05, 2019
Jacob Carlborg
Sep 05, 2019
bpr
Sep 05, 2019
H. S. Teoh
Sep 12, 2019
a11e99z
August 25, 2019
https://youtu.be/l9hM0h6IQDo

August 26, 2019
On Sunday, 25 August 2019 at 10:06:07 UTC, Dibyendu Majumdar wrote:
> https://youtu.be/l9hM0h6IQDo

What he doesn't mention is that compared to other languages many of the algorithms and programming models will not work in Rust and you have rethink them often making them more complicated and slower. Therefore I think Rust is a bad fit for "system programming".

The entire talk is about evangelizing Rust contrary to what he says. He also says he constantly have to add more stuff into the language in order to make work better as a systems programming language which kind of contradicts the idea that Rust is suitable for system programming.

There are other languages that can do anything C can without any changes to the language.
August 26, 2019
On Monday, 26 August 2019 at 06:51:33 UTC, IGotD- wrote:
> On Sunday, 25 August 2019 at 10:06:07 UTC, Dibyendu Majumdar wrote:
>> https://youtu.be/l9hM0h6IQDo
>
>
> The entire talk is about evangelizing Rust contrary to what he says. He also says he constantly have to add more stuff into the language in order to make work better as a systems programming language which kind of contradicts the idea that Rust is suitable for system programming.
>

I ignored the evangelizing bits.

What I took from the talk is that there are two things:

a) The compelling feature is the Rust automatic memory management /memory safety without GC and runtime - that can motivate systems programmers to move from C.

b) Parity with C - this is where Rust lacks and needs enhancements.

Comparing with D, perhaps D excels at b) but lacks a compelling memory management solution that would motivate systems programmers.

Regards

August 26, 2019
26.08.2019 12:30, Dibyendu Majumdar пишет:
> 
> I ignored the evangelizing bits.
> 
> What I took from the talk is that there are two things:
> 
> a) The compelling feature is the Rust automatic memory management /memory safety without GC and runtime - that can motivate systems programmers to move from C.
Many people don't agree to you because very often low-level Rust code uses unsafe block very much. This definitely isn't as good as you say.

> 
> b) Parity with C - this is where Rust lacks and needs enhancements.
> 
> Comparing with D, perhaps D excels at b) but lacks a compelling memory management solution that would motivate systems programmers.
> 
> Regards
> 

August 26, 2019
On Monday, 26 August 2019 at 10:23:38 UTC, drug wrote:

>> a) The compelling feature is the Rust automatic memory management /memory safety without GC and runtime - that can motivate systems programmers to move from C.

> Many people don't agree to you because very often low-level Rust code uses unsafe block very much. This definitely isn't as good as you say.
>

Hi, just for clarity I am not saying this: I just summarised the main points in the talk.

Regards
August 26, 2019
On Mon, 2019-08-26 at 06:51 +0000, IGotD- via Digitalmars-d wrote:
> On Sunday, 25 August 2019 at 10:06:07 UTC, Dibyendu Majumdar wrote:
> > https://youtu.be/l9hM0h6IQDo
> 
> What he doesn't mention is that compared to other languages many of the algorithms and programming models will not work in Rust and you have rethink them often making them more complicated and slower. Therefore I think Rust is a bad fit for "system programming".

Given that the person's goal is to make Rust a superset of C, I do not see how you make the above inference. What algorithms and programming models are possible in C that are not possible in Rust?

I suspect if there are N programmers in the world, there are 3N+10 definitions of "systems programming". Go developers have changed their mind on the definition a few times over the years.

> The entire talk is about evangelizing Rust contrary to what he says. He also says he constantly have to add more stuff into the language in order to make work better as a systems programming language which kind of contradicts the idea that Rust is suitable for system programming.

I disagree. He clearly states he isn't evangelising Rust but hopes that people feel evangelised for Rust due to the talk, which is weird. The entire talk is about transforming Rust to be a superset of C.

> There are other languages that can do anything C can without any changes to the language.

And Rust is already one of those.

Given there is C and people feel it is time to move on to a better language, and we have D, C++, Rust, and Go as the obvious candidates, there is a problem none of these are actually candidates for the job of replacing C. Even Go, which is supposed explicitly to be C for the 2010s.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



August 26, 2019
On Mon, 2019-08-26 at 09:30 +0000, Dibyendu Majumdar via Digitalmars-d wrote: […]
> a) The compelling feature is the Rust automatic memory management /memory safety without GC and runtime - that can motivate systems programmers to move from C.

It would be nice if this were the case, but Rust is two systems, the safe and unsafe systems, and you have to build a lot of infrastructure to use safe code over unsafe code.

> b) Parity with C - this is where Rust lacks and needs enhancements.

But why is the purpose to make Rust a superset of C. Why can't we challenge that C is the ideal language for "systems programming" except that it has problems such as buffer overflow. OK so C is a portable assembly language focussed on PDP-8 and PDP-11 hacked to work on VAX-11, but why can't we start afresh? So Rust and Go are trying to do that, but are they failing in the goal. Go I'd say yes since it has become a Web programming language, and that is not "systems programming" nor the only thinkg that C needed replacing for. Rust has a problem because of the unsafe mode needed for systems level work.

> Comparing with D, perhaps D excels at b) but lacks a compelling memory management solution that would motivate systems programmers.

As I understand it, D, like, Go, requires a runtime system over and above the C runtime system.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



August 26, 2019
On Mon, 2019-08-26 at 13:23 +0300, drug via Digitalmars-d wrote:
> […]
> Many people don't agree to you because very often low-level Rust code
> uses unsafe block very much. This definitely isn't as good as you say.
> 
[…]

The safe/unsafe modes are the failing of Rust, even though it is necessary. In order to do safe "systems programming", there has to be a very well designed and test unsafe layer.

This is also true of applications programming using C linkage libraries, but in most cases the needed unsafe wrappers can be generated automatically and they work very well.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



August 26, 2019
On Monday, 26 August 2019 at 10:44:59 UTC, Russel Winder wrote:

> But why is the purpose to make Rust a superset of C. Why can't we challenge that C is the ideal language for "systems programming" except that it has problems such as buffer overflow. OK so C is a portable assembly language focussed on PDP-8 and PDP-11 hacked to work on VAX-11, but why can't we start afresh?

Personally I think neither Rust nor D can replace C.
C is a high level assembler. A replacement needs to be a better high level assembler rather than a language that has many abstractions.
The particular quality of C is that you can mentally see how your code translates to machine code. Languages with lot of scaffolding destroy this property.


August 26, 2019
On Monday, 26 August 2019 at 10:37:29 UTC, Russel Winder wrote:
>
> Given that the person's goal is to make Rust a superset of C, I do not see how you make the above inference. What algorithms and programming models are possible in C that are not possible in Rust?

These are typically, intrusive lists, structures that points to each others (circular references), custom allocators. "Impossible" was a little bit the wrong word that I used. Difficult would be the word or "not worth it". Some of the algorithms can be done but those I've seen require a huge amount of boiler plate for something C would just need a few lines. Circular references is something Rust cannot deal with, unless you explicitly use pointers or RC objects. RC objects are not always welcome in systems programming and raw pointers requires you to do your own memory management so Rust loses its point. I just think the way you program Rust doesn't fit systems programming and it is not worth the extra hazzle. The amount of unsafe hatches you would open in Rust would contradict its grand "safe" selling point.

> Given there is C and people feel it is time to move on to a better language, and we have D, C++, Rust, and Go as the obvious candidates, there is a problem none of these are actually candidates for the job of replacing C. Even Go, which is supposed explicitly to be C for the 2010s.

The speaker is right about one thing and that is that a systems programming language must not have a runtime dependency, or the runtime is completely OS independent. With this definition this includes C, C++, D (-betterC only) and Rust. As far as I know Go is runtime dependent and does not qualify for this definition.

« First   ‹ Prev
1 2 3 4 5 6 7