View mode: basic / threaded / horizontal-split · Log in · Help
June 16, 2009
Andrei writes "The Case for D"
http://www.reddit.com/r/programming/comments/8stcr/the_case_for_d/
June 16, 2009
Re: Andrei writes "The Case for D"
Walter Bright wrote:
> http://www.reddit.com/r/programming/comments/8stcr/the_case_for_d/

http://www.ddj.com/hpc-high-performance-computing/217801225 says:

"There are two major versions of the language -- D1 and D2.
This article focuses on D2 exclusively."

"The official D compiler is available for free off digitalmars.com on 
major desktop platforms (Windows, Mac, and Linux). Other implementations 
are underway, notably including an a .NET port and one using the LLVM 
infrastructure as backend."

"Last but definitely not least, two windowing libraries complete the 
language's offering quite spectacularly. The mature library DWT is a 
direct port of Java's SWT. A newer development is that the immensely 
popular Qt Software windowing library has recently released a D binding 
(in alpha as of this writing)."

In other words, so long and thanks for all the fish: GDC and wxD ?

--anders
June 16, 2009
Re: Andrei writes "The Case for D"
Walter Bright wrote:
> http://www.reddit.com/r/programming/comments/8stcr/the_case_for_d/

Also on ycombinator: http://news.ycombinator.com/item?id=659592
June 16, 2009
Re: Andrei writes "The Case for D"
Walter Bright wrote:
> http://www.reddit.com/r/programming/comments/8stcr/the_case_for_d/

Nice article. Here some random bitching.

> If you are patient, you'll find out that D has constructors and 
destructors with which you can implement deterministic lifetime of objects.

Not entirely true. Andrei forgot that destructors, in many situations, 
are not deterministic at all, because the garbage collector calls the 
destructor when an object is finalized. Another easily fixable mistake 
that makes life so hard.

> Other implementations are underway, notably including an a .NET port 
and one using the LLVM infrastructure as backend.

Just that LDC (why not mention it directly?) is starting to become more 
stable than DMD, while the .NET port is in an early alpha stage at best.

> In fact, D can link and call C functions directly with no intervening 
translation layer.

Sure, but that makes the uninformed reader think he can use header files 
directly. He will be disappointed when he finds out he has to translate 
headers manually. (AFAIK there's no tool yet which does this 
automatically with no user intervention required.)

> This low latency means you can use D as a heck of an interpreter (the 
shebang notation is supported, too).

Now isn't that quite implementation specific. Maybe you should also 
mention that dmd is not only fast, but also contains lots of bugs that 
become issues in real life. So much for the implementation of the 
reference compiler. (And sure, no doubt any language is easier to parse 
and compile than C++. You could claim dmd's fastness is only a special 
thing when compared to C++.)

> The basic idea is that D allows you to subtype as you need via alias 
this.

Oh, so you decided to keep it.

> Variable-length parameter lists are also allowed.

Just not variable-length alias parameter lists or variable-length lists 
of constants, d'oh.

> What takes things into space is the ability to convert strings into 
code (by use of the mixin expression).

I think the reader won't understand at all what's going on. Why not 
provide a simple example? int y = 1; int x = mixin("2+y");

> A better design has been blueprinted and the implementation is "on 
the list," so please stay tuned for more about that.

(That was about reflection.) I think the readers of the newsgroup, where 
future directions of D 2.0 are regularly discussed, would like to know 
more about this.

> In D, the Boolean compile-time expression is(typeof(expr)) yields 
true if expr is a valid expression, and false otherwise (without 
aborting compilation).

Surprised to find this anti-feature mentioned in an introductory article 
on D.
June 16, 2009
Re: Andrei writes "The Case for D"
grauzone:
> Just that LDC (why not mention it directly?) is starting to become more 
> stable than DMD, while the .NET port is in an early alpha stage at best.

I agree with you, mentioning LDC name there is better. This part of the article is bad.
And LDC is getting quite stable, I'm using it on Linux with good results.
I think the main missing parts of LDC (but please correct me if I am wrong) is that is lacks still: exception on Windows, built-in profiler, built-in code coverage. Once those three things are in place then LDC can replace DMD in most situations (I don't know much about the code coverage in LDC, I'll ask on IRC).


> Now isn't that quite implementation specific. Maybe you should also 
> mention that dmd is not only fast, but also contains lots of bugs that 
> become issues in real life.

I think the author of the article is trying to show only how D2 can be good in theory, its good sides, and not its "current" real-world faults. I don't agree with this choice, I prefer my texts to be more realistic and to list downsides/faults too. I try to be more balanced.

Bye,
bearophile
June 16, 2009
Re: Andrei writes "The Case for D"
Walter Bright wrote:
> http://www.reddit.com/r/programming/comments/8stcr/the_case_for_d/

A few D fans in Japan are considering translating this article.
Is it OK to translate and publish it?
Whom should we ask permission of?
June 16, 2009
Re: Andrei writes "The Case for D"
grauzone:
> Just that LDC (why not mention it directly?) is starting to become more 
> stable than DMD, while the .NET port is in an early alpha stage at best.

I think the author has not cited LDC as "nearly finished" because it's mostly a D1 compiler still (and can't be used on Windows).

Bye,
bearophile
June 16, 2009
Re: Andrei writes "The Case for D"
grauzone wrote:
>  > Other implementations are underway, notably including an a .NET port 
> and one using the LLVM infrastructure as backend.
> 
> Just that LDC (why not mention it directly?) is starting to become more 
> stable than DMD, while the .NET port is in an early alpha stage at best.

A quote from the article's introduction:
    "This article focuses on D2 exclusively."

Next, a quote from the LDC home page:
    "D2 support is currently experimental and may not compile
     or work at all!"

That's probably what he meant by "underway".

-Lars
June 16, 2009
Re: Andrei writes "The Case for D"
Walter Bright wrote:
> http://www.reddit.com/r/programming/comments/8stcr/the_case_for_d/


Great article! Hopefully, this will bring a rush of new users to D. :)

-Lars
June 16, 2009
Re: Andrei writes "The Case for D"
bearophile wrote:
> grauzone:
>> Just that LDC (why not mention it directly?) is starting to become more 
>> stable than DMD, while the .NET port is in an early alpha stage at best.
> 
> I think the author has not cited LDC as "nearly finished" because it's mostly a D1 compiler still (and can't be used on Windows).

Makes sense. Why is Andrei building his book upon an unfinished 
language, anyway...
« First   ‹ Prev
1 2 3 4 5
Top | Discussion index | About this forum | D home