Rust and D

Franciszek Czekała" <home at valentimex.com> Franciszek Czekała" <home at valentimex.com>
Sat Sep 29 13:47:19 PDT 2012


On Saturday, 29 September 2012 at 19:09:46 UTC, Walter Bright 
wrote:
> On 9/29/2012 1:08 AM, Peter Alexander wrote:
>> As you can see, no matter what you think of these features, 
>> the arguments are
>> pointless because it is very clear that you can do meaningful 
>> work without them.
>> We get by without channels, homoiconicity, and full program 
>> type inference; just
>> as the Go programmers get by without generics.
>
> I think that argument is making the claims that:
>
> 1. all features are equally valuable
>
> 2. if one can get by without a feature, then that feature is 
> not needed
>
> Both of those are invalid.

Exactly my thoughts. Templates enable abstraction. Go channels 
enable ... channels. Comparing both on the same level is 
ridiculous. Go has a vey low level of abstraction. I feel it is 
even worse than C. In C, void* can be a powerful abstraction 
tool, but in Go pointers are almost banned and made difficult to 
use. Empty interfaces do not cut it because they involve boxing 
and unboxing and they give you nothing that void * could not give 
you and easier. Interfaces in general? You cannot even sensibly 
define interfaces with methods that have that same interfaces as 
their return types (just try it). I cannot see Go being used 
beyond utf-8 text processing (web servers and the like). Numeric 
calculations? Without some serious abstraction tools nobody is 
going to waste their time. Other uses? Wherever you go 
abstraction (read generics and the like) rules. Not using 
abstraction means usually wasting your programming effort and 
redoing things multiple times. When people refuse to use 
programming languages without abstraction mechanisms it is 
exactly immagination that they use.



More information about the Digitalmars-d mailing list