D future ...

Benjiro via Digitalmars-d digitalmars-d at puremagic.com
Tue Dec 20 02:48:33 PST 2016


On Tuesday, 20 December 2016 at 09:33:22 UTC, qznc wrote:
> What did you expect with a rant like that?

A rant... Well. Rants have a background.

> You vented your anger.

Actually, i did not vent any anger until this morning when i 
noticed the wiseass response. All the points i wrote yesterday 
are items that actually bother a lot more people. But those same 
people who complain about it, always get shutdown with that 
typical: Do it yourself response / Improve the standard library / 
...

Documentation:
--------------

If they want some concrete examples, here are few:

https://dlang.org/library/std/socket/tcp_socket.html

https://doc.rust-lang.org/std/net/struct.TcpListener.html

Notice how much more clean the Rust documentation is. I am only 
pulling that example because its something i looked up right now.

Rust:

* Example ready on the page.
* Linked to a run environment.
* New function listed below, with versioning! So you know exactly 
what function will work with what version your running.
* Most function or variables link to pages that again have 
examples on usage.
* Cleaner / Easier to read.

Dlang:

* A long list of functions/classes/...
* Most function or variables link to pages that for 80% simply 
state the same information. 20% has expanded information or 
examples.

More:

https://doc.rust-lang.org/std/net/struct.UdpSocket.html
https://dlang.org/library/std/socket/udp_socket.html

...

And stated said, i have zero experience with Rust. Never ran it, 
just looked at a few over complicated examples in the past ( it 
actually easier then expected with proper example ).

So it took me about 30 minutes to install, figure out why the 
example did not work (  return value ) and got it running.

How long will it take anybody to create a tcp socket in D, 
without resorting to google search and looking into a lot of 
forum posts.

Answer: A few hours because i did the same work a few days ago. 
Some of the forum examples are people asking for help with mixed 
results. From there you need to figure things out. Not everything 
works because some posts are so old, that the information is 
outdated.

> Rust probably is aligned more than anyone with these goals at 
> the moment but every time > I try to learn rust my head hurts 
> and it's not enjoyable.

Actually, just playing around with it and you can configure more 
then you think. I got very fast annoyed with the enforcement of 
no parens on if statements ( it looks cleaner / easier to read 
with parens. My opinion of course ). Thinking by myself: Hello Go 
again!

But it only took a few minutes to figure out that you can control 
the warnings with #[warn(unused_parens)] > [allow(unused_parens)]


> 1. Evolve the GC like Go has.

I fear that will require a massive rewrite / totally new GC. The 
change that will happen is very low.

> 2. No overhead calling C libraries.

There will always be some overhead calling C libraries. There is 
the whole conversion of types etc.

> 3. Easily composable libraries.

... Did not see a big issue with creating your own libraries in 
D. Or do you mean shared libraries. Yea, that is a massive 
difference. Go is massive more easy ( especially the 1.8 beta ).

> 4. Good IDE support.

I know the feeling. How many hours struggling to try and get my 
favorite IDE's to cooperate with Dlang support. Too many are 
simply out of date / unsupported. Or at best have basic syntax 
support and that is it.

The best option right now is simply Visual Studio Code. Where 
WebFreak001 did a lot of great work on making it more easy ( 
plenty of issue at times but relative more easy ). The problem 
being that VSC is a more pure local editor and missing a lot of 
features ( SFTP comes to mind ... the 3th party plugin solution 
have issues ).

I have gone down the list of editors and its a mess of 
unsupported, incomplete or outdated plugins. Or editors with 
lacking features. Probably put in a dozen hours or more testing 
them all out. And VSC is really the only properly supported one 
with the full feature set.


More information about the Digitalmars-d mailing list