June 16, 2009
http://www.reddit.com/r/programming/comments/8stcr/the_case_for_d/
June 16, 2009
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
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
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
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
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
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
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
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
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