www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - D, Parasail, Pascal, and Rust vs The Steelman

reply Paulo Pinto <pjmlp progtools.org> writes:
An article comparing the above languages as per the DoD language 
requirements [0].

http://jedbarber.id.au/steelman.html

[0] - https://en.wikipedia.org/wiki/Steelman_language_requirements
Mar 21 2018
next sibling parent bauss <jj_1337 live.dk> writes:
On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 An article comparing the above languages as per the DoD 
 language requirements [0].

 http://jedbarber.id.au/steelman.html

 [0] - 
 https://en.wikipedia.org/wiki/Steelman_language_requirements
It seems very biased with the "partial?"
Mar 21 2018
prev sibling next sibling parent reply Martin Tschierschke <mt smartdolphin.de> writes:
On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 An article comparing the above languages as per the DoD 
 language requirements [0].

 http://jedbarber.id.au/steelman.html

 [0] - 
 https://en.wikipedia.org/wiki/Steelman_language_requirements
Interesting! Do you understand this:
7H. Formal Array Parameters. The number of dimensions for formal 
array parameters must be specified in programs and shall be 
determinable during translation. Determination of the  subscript 
range for formal array parameters may be delayed until 
invocation and may vary from  call to call. Subscript ranges 
shall be accessible within function and procedure bodies without 
being passed as explicit parameters.
Subscript ranges are not accessible in D or Rust.
I do not understand the meaning of "subscript ranges"? Isn't this slicing?
Mar 21 2018
next sibling parent reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Wed, Mar 21, 2018 at 04:08:07PM +0000, Martin Tschierschke via Digitalmars-d
wrote:
 On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
[...]
 [0] - https://en.wikipedia.org/wiki/Steelman_language_requirements
Interesting! Do you understand this:
 7H. Formal Array Parameters. The number of dimensions for formal
 array parameters must be specified in programs and shall be
 determinable during translation. Determination of the  subscript
 range for formal array parameters may be delayed until invocation
 and may vary from  call to call. Subscript ranges shall be
 accessible within function and procedure bodies without being passed
 as explicit parameters.
 Subscript ranges are not accessible in D or Rust.
I do not understand the meaning of "subscript ranges"? Isn't this slicing?
AFAICT, "subscript" in the spec just means the range of valid array indices (it's old terminology from the 70's / 80's). In which case, it is not true that subscript ranges are not accessible in D (I don't know about Rust); all D arrays have indices from 0 to .length-1, so the callee can always access the range of allowed indices, and the caller never has to pass .length explicitly. T -- It only takes one twig to burn down a forest.
Mar 21 2018
parent Martin Tschierschke <mt smartdolphin.de> writes:
On Wednesday, 21 March 2018 at 16:19:35 UTC, H. S. Teoh wrote:
[...]
 I do not understand the meaning of "subscript ranges"? Isn't 
 this slicing?
AFAICT, "subscript" in the spec just means the range of valid array indices (it's old terminology from the 70's / 80's). In which case, it is not true that subscript ranges are not accessible in D (I don't know about Rust); all D arrays have indices from 0 to .length-1, so the callee can always access the range of allowed indices, and the caller never has to pass .length explicitly. T
With this D fulfills, 95% of the "Steelman requirement" partially or better :-)
Mar 21 2018
prev sibling parent Jim Balter <Jim Balter.name> writes:
On Wednesday, 21 March 2018 at 16:08:07 UTC, Martin Tschierschke 
wrote:
 On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 An article comparing the above languages as per the DoD 
 language requirements [0].

 http://jedbarber.id.au/steelman.html

 [0] - 
 https://en.wikipedia.org/wiki/Steelman_language_requirements
Interesting! Do you understand this:
7H. Formal Array Parameters. The number of dimensions for 
formal array parameters must be specified in programs and shall 
be determinable during translation. Determination of the  
subscript range for formal array parameters may be delayed 
until invocation and may vary from  call to call. Subscript 
ranges shall be accessible within function and procedure bodies 
without being passed as explicit parameters.
Subscript ranges are not accessible in D or Rust.
I do not understand the meaning of "subscript ranges"? Isn't this slicing?
I believe this means the range of the underlying array. For arrays on the heap, the D runtime could actually figure this out (using the same mechanism as for calculating .capacity), but of course it can't be done generally.
Aug 21 2018
prev sibling next sibling parent Kagamin <spam here.lot> writes:
On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
1D. Efficiency.
Judging by parasail example in wikipedia it looks allocation heavy. Things like Println("About to insert " | Key | " => " | Val); Presumably because it doesn't have variadic arguments?
Mar 22 2018
prev sibling next sibling parent reply Meta <jared771 gmail.com> writes:
On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 An article comparing the above languages as per the DoD 
 language requirements [0].

 http://jedbarber.id.au/steelman.html

 [0] - 
 https://en.wikipedia.org/wiki/Steelman_language_requirements
"The central failure of the language is the myopic focus on the affine typing solution to heap allocation and thread safety. The creators do not seem to realise that other solutions already exist, and that dynamic memory allocation is not the only safety issue a programmer has to cope with." Interesting that the author's criticism of Rust lines up very closely with Andrei's.
Mar 22 2018
parent reply Shachar Shemesh <shachar weka.io> writes:
On 22/03/18 12:28, Meta wrote:
 On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 An article comparing the above languages as per the DoD language 
 requirements [0].

 http://jedbarber.id.au/steelman.html

 [0] - https://en.wikipedia.org/wiki/Steelman_language_requirements
"The central failure of the language is the myopic focus on the affine typing solution to heap allocation and thread safety. The creators do not seem to realise that other solutions already exist, and that dynamic memory allocation is not the only safety issue a programmer has to cope with." Interesting that the author's criticism of Rust lines up very closely with Andrei's.
Spoken on the forum for a language that has still not managed to make sure that a destructor actually gets called every time an object is destroyed..... Shachar
Mar 22 2018
next sibling parent reply Radu <void null.pt> writes:
On Thursday, 22 March 2018 at 11:58:02 UTC, Shachar Shemesh wrote:
 On 22/03/18 12:28, Meta wrote:
 On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 [...]
"The central failure of the language is the myopic focus on the affine typing solution to heap allocation and thread safety. The creators do not seem to realise that other solutions already exist, and that dynamic memory allocation is not the only safety issue a programmer has to cope with." Interesting that the author's criticism of Rust lines up very closely with Andrei's.
Spoken on the forum for a language that has still not managed to make sure that a destructor actually gets called every time an object is destroyed..... Shachar
Shaming this one? https://issues.dlang.org/show_bug.cgi?id=14246#c6 Indeed, that sucks big time!
Mar 22 2018
parent Shachar Shemesh <shachar weka.io> writes:
On 22/03/18 16:45, Radu wrote:
 On Thursday, 22 March 2018 at 11:58:02 UTC, Shachar Shemesh wrote:
 On 22/03/18 12:28, Meta wrote:
 On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 [...]
"The central failure of the language is the myopic focus on the affine typing solution to heap allocation and thread safety. The creators do not seem to realise that other solutions already exist, and that dynamic memory allocation is not the only safety issue a programmer has to cope with." Interesting that the author's criticism of Rust lines up very closely with Andrei's.
Spoken on the forum for a language that has still not managed to make sure that a destructor actually gets called every time an object is destroyed..... Shachar
Shaming this one? https://issues.dlang.org/show_bug.cgi?id=14246#c6 Indeed, that sucks big time!
There is hope. We finally merged a PR that removes the changelog that erroneously claimed this issue was resolved. https://github.com/dlang/dlang.org/commit/45ca5e35d3de824e104c3049083eb23fa03775c5 Progress!! Shachar
Aug 21 2018
prev sibling parent Meta <jared771 gmail.com> writes:
On Thursday, 22 March 2018 at 11:58:02 UTC, Shachar Shemesh wrote:
 Interesting that the author's criticism of Rust lines up very 
 closely with Andrei's.
Spoken on the forum for a language that has still not managed to make sure that a destructor actually gets called every time an object is destroyed..... Shachar
Just an observation. I wasn't criticizing Rust.
Mar 22 2018
prev sibling parent reply Atila Neves <atila.neves gmail.com> writes:
On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 An article comparing the above languages as per the DoD 
 language requirements [0].

 http://jedbarber.id.au/steelman.html

 [0] - 
 https://en.wikipedia.org/wiki/Steelman_language_requirements
 Rust has by far the most support for the functional programming 
 paradigm.
I wonder how they concluded that. Atila
Mar 22 2018
next sibling parent reply Ali <fakeemail example.com> writes:
On Thursday, 22 March 2018 at 11:16:37 UTC, Atila Neves wrote:
 On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 An article comparing the above languages as per the DoD 
 language requirements [0].

 http://jedbarber.id.au/steelman.html

 [0] - 
 https://en.wikipedia.org/wiki/Steelman_language_requirements
 Rust has by far the most support for the functional 
 programming paradigm.
I wonder how they concluded that. Atila
While I dont know Rust, it didnt come to me to question this claim knowing that Rust is generally advertised as being influenced by OCaml, and knowing that there is a long history between Rust and OCaml
Mar 22 2018
parent bauss <jj_1337 live.dk> writes:
On Thursday, 22 March 2018 at 14:49:17 UTC, Ali wrote:
 On Thursday, 22 March 2018 at 11:16:37 UTC, Atila Neves wrote:
 On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 An article comparing the above languages as per the DoD 
 language requirements [0].

 http://jedbarber.id.au/steelman.html

 [0] - 
 https://en.wikipedia.org/wiki/Steelman_language_requirements
 Rust has by far the most support for the functional 
 programming paradigm.
I wonder how they concluded that. Atila
While I dont know Rust, it didnt come to me to question this claim knowing that Rust is generally advertised as being influenced by OCaml, and knowing that there is a long history between Rust and OCaml
The first Rust compiler was in fact written in OCaml if I remember correct. You can even find it in the history of the github repository.
Mar 22 2018
prev sibling next sibling parent Per =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
On Thursday, 22 March 2018 at 11:16:37 UTC, Atila Neves wrote:
 I wonder how they concluded that.

 Atila
I too.
Mar 22 2018
prev sibling parent Timon Gehr <timon.gehr gmx.ch> writes:
On 22.03.2018 12:16, Atila Neves wrote:
 On Wednesday, 21 March 2018 at 12:52:19 UTC, Paulo Pinto wrote:
 An article comparing the above languages as per the DoD language 
 requirements [0].

 http://jedbarber.id.au/steelman.html

 [0] - https://en.wikipedia.org/wiki/Steelman_language_requirements
 Rust has by far the most support for the functional programming paradigm.
I wonder how they concluded that. Atila
It is expression-based and can pattern-match on built-in tuples and algebraic data types, it has traits, variables are immutable by default and mutable aliasing is discouraged by the type system. (However, it lacks proper tail calls, just like D.)
Mar 22 2018