News for hackers. Stuff that matters.
Re:The Case for D by shin_lao on Friday October 30, 2009 @12:48PM (#912304)
It looks great, I agree. I like the range approach for the standard library. I also like the end of the include nightmare.

Is the output binary as good as a C++ one? That would be my first purely technical concern.

Other concerns would be related to the building tool chain and the quality of IDEs.

But the real concern is business oriented.

For pet projects I'd be inclined to give a green light. It's always nice to play with new technologies as it opens your mind and give you new ideas.

For full fledged commercial products you expect to live several years, that's going to be a solid red light. I wouldn't take the risk of using an unsupported language.

Re:The Case for D by Keyframe on Friday October 30, 2009 @01:09PM (#912349)
"I like the range approach for the standard library"

This is D2 - I don't use D2 and wouldn't use it. I was talking about D1/Tango combination. I don't think I'll make a switch to D2.

"Is the output binary as good as a C++ one? That would be my first purely technical concern."

That depends on the compiler/linker, of course. In short - dmd good enough, ldc great (llvm as the backend after all).

"Other concerns would be related to the building tool chain and the quality of IDEs."

You can download DMD/Tango package from their Trac page and you're ready to go, however I would strongly advise you to use SVN tango version - which implies you need MSYS(on Windows) to build it. Ask for help on forum there (dsource.org/projects/tango) or on irc d.tango (freenode). As for IDE, you can use Descent for Eclipse, as some people do. I use Emacs for everything though, same applies for D - there is a module for it.

"But the real concern is business oriented."

There is no concern here, since basics of risk management should tell you not to use it. Same applies for other emerging or obscure technologies as well (I'm looking at you Lisp). Short answer, don't use it for business critical things yet, though some have done that with success.

Re:The Case for D by shin_lao on Friday October 30, 2009 @01:28PM (#912390)
I'm curious, why don't you want to do the switch to D2? Is it because it's not mature enough?
Re:The Case for D by Keyframe on Friday October 30, 2009 @01:50PM (#912434)
There are several reasons. I'll try to list them, but it might not be complete:

- D2 looks and feels foreign to me as a somewhat D1 experienced user

- Templates maelstrom and strong emphasis on them

- D1 grew organically, D2 looks like an academic exercise where stuff is put in just for the sake of it by the people that don't write programs in D at all (Andrei)

- D2 book and Andrei are a filibuster for D2

- Walter Bright listens to Andrei (ok, a smart guy) but he doesn't write D programs, I doubt even Walter writes them (seriously). If you look at his code, it is more of a C in D than D code.

- I have little to no trust in DMD/OPTLINK, LDC/LLVM is what I'm after and that front is D1 only, and looks like it will be

- Lots of people smarter than I am are on D1 also (Tango, namely) - and I don't want to go against the trend since it would isolate me from little support I can get

these are just of top of my head, there are more. General summation could lead to "It just doesn't feel right" - at least for me as a heavy D1 user.

Re:The Case for D by eldar on Saturday October 31, 2009 @04:29AM (#913385)
I wouldn't be that confident. D1 is a dead-end. If you ask a C++ user, he wouldn't drop C++ and a damn lots of libraries, IDE's, debuggers and industry support for it. I recently talked to my C++ friend writing scientific multithreaded stuff, and he was only convinced by D2.

Templates are the killer feature of D. There is nothing wrong in the emphasis on them.

Yes I agree that there are problems in D2. But there are much more problems in D1.

If I were you, I wouldn't do such an anti-advertisement campaign here. Instead you could have pointed at what you think are the problems with D2. That would be more constructive.

Re:The Case for D by eldar on Saturday October 31, 2009 @04:41AM (#913388)
>> ...the people that don't write programs in D at all (Andrei)

>> Walter Bright listens to Andrei (ok, a smart guy) but he doesn't write D programs

You stated twice that he doesn't write D programs. Well since you are mentioning Tango, it's unfair because he writes code for a _standard_library_. And he is writing a good code.

Re:The Case for D by baxissimo on Saturday October 31, 2009 @06:22AM (#913430)
I also don't think it's true. In addition to writing code for the std.* Phobos library, I think Andrei has been using D for data processing stuff related to his recently finished dissertation. He would make comments from time to time about this or that not performing well enough in std.*, and then go fix it.
Re:The Case for D by ponce on Saturday October 31, 2009 @10:20AM (#913561)
Walter rewrited his game Empire in D.
Re:The Case for D by ponce on Saturday October 31, 2009 @10:15AM (#913557)
Maybe you could have a read at Modern C++ Design by Andrei. A mind expanding book with incredible insight in meta-programming.

All this "template maelstrom" makes sense and is unavoidable to have powerful and expressive statically-typed languages.

Re:The Case for D by steveklabnik on Friday October 30, 2009 @01:49PM (#912431)
First of all, D2 is not mature at all. It's like asking "Is C++0x mature enough?"

Secondly, lots of people won't ever switch to D2, even when it's done, because they feel that it adds a lot of feature bloat for very little gain.

Re:The Case for D by ponce on Saturday October 31, 2009 @09:54AM (#913526)
I don't think many-cores compatibility is a little gain.
Re:The Case for D by steveklabnik on Saturday October 31, 2009 @11:21AM (#913609)
That's a compiler issue, not a language issue.
Re:The Case for D by ponce on Saturday October 31, 2009 @01:47PM (#913787)
A language without purity / proper constness / powerful static checking will not be automatically parallelized.
Re:The Case for D by h3r3tic on Saturday October 31, 2009 @01:49PM (#913789)
Wrong. D2 has features to ease multi-threaded development, so it's a language 'issue'.
Re:The Case for D by aerique on Saturday October 31, 2009 @06:35AM (#913435)
Same applies for other emerging or obscure technologies as well (I'm looking at you Lisp).

This is so generic a remark as to be worthless. You do know Lisp signifies a family of languages, right? Of which most or neither emerging nor obscure.

Re:The Case for D by ponce on Saturday October 31, 2009 @10:06AM (#913546)
Unsupported is a bit strong.

"For pet projects I'd be inclined to give a green light. It's always nice to play with new technologies as it opens your mind and give you new ideas."

I had no success in learning another languages now that I know D... be cautious :p

"For full fledged commercial products you expect to live several years, that's going to be a solid red light. I wouldn't take the risk of using an unsupported language."

I would have said that a year ago, but it becomes less true over time.

You are likely to encounter less bugs in D1 than one year ago. DMD is released frequently, usually fixing a lots of bugs you didn't even worried about.

All problems other than compiler bugs aren't really blocking. There is also bugs in C++ compilers.

Re:The Case for D by WalterBright on Saturday October 31, 2009 @05:16AM (#913405)
D started 10 years ago. It's not a flash in the pan.