View mode: basic / threaded / horizontal-split · Log in · Help
May 08, 2009
Re: What's the current state of D?
Walter Bright wrote:

> Steve Teale wrote:
>> This is the sort of answer that will kill D. The guy comes back after
>> 2 years, asks a straight question, and get's told "business as usual,
>> we're still arguing among ourselves about what it should be".
>> 
>> Maybe Tiobe is right! Lots of others may not even bother to ask. They
>> just visit the newsgroup, read a page of it, and conclude "same old,
>> same old", and go away.
>> 
>> D should be D, not maybe 1.043, or let's wait a while and see what
>> happens with D2. Potential real users hate uncertainty. If they are
>> going to commit, then D must do so too.
> 
> What bothers me about this sentiment is that every other mainstream
> language undergoes revision, sometimes major ones, but that never seems
> to be an excuse for people to not use it.
> 
> For example, C++ is quite in flux with C++0x.
> 
> The only languages that are not undergoing revision are dead ones.

There are some differences though:

- other mainstream languages release new compilers and features every couple 
of years, you do so every couple of months!

- these other languages go out of their way to make new releases backwards 
compatible, sometimes at great costs. They almost never completely succeed 
though.

To be clear, I do think these are good things for D evolution, but most 
people are wary to invest energy in change. Reflecting back on the 
commitment to D1, I think this was a good move in two ways: it allowed 
larger programs and libraries to rely on it and may have freed the way for 
D2 to incorporate bolder changes.
May 08, 2009
Re: What's the current state of D?
== Quote from dsimcha (dsimcha@yahoo.com)'s article
>
> Awesome.  I actually found a few of these bugs in the past few days, and was
> meaning to report them.  I guess I don't need to now.  Just out of curiosity,
> though, you use __gshared in a lot of places and I haven't seen it in any of the
> discussions.  What is it?

It's a way to declare something as "classic global" so you can sidestep any bugs
that crop up with the implementation of 'shared'.  The hope is that you'll
eventually just be able to do a search/replace of '__gshared' to 'shared' once
everything is working correctly.
May 08, 2009
Re: What's the current state of D?
Walter Bright wrote:

> grauzone wrote:
>> But C++ programs still compile and run correctly with C++0x compilers.
> 
> True enough, but that wasn't true for C++98, or C89. Nobody refused to
> use C or C++ because of that.
> 
>> I bet none of the projects on dsource are even compilable with dmd2 (even
>> if they were written for D2.0).
> 
> Take any C++ project from 15 years ago and I bet it won't compile today,
> either.
> 
>> And _many_ projects probably need minor
>> fixes, before they compile with the latest dmd1 compiler.
> 
> Nearly all of those are due to inadvertent reliance on bugs in D1. You
> see this quite a bit in the C++ world. Every time g++ gets updated, I
> have to tweak something in my sources.
> 
> Every binary release of dmd is available for download. If you require an
> unchanging compiler, it's trivial to operate that way. dmd isn't going
> to auto-update itself and break your compiles.

That's a really good thing imho. I remember when I got the Civilization 4 
C++ SDK, it would only compile with the MS 2003 compiler. Which at the time 
was outdated and unavailable for download in a legal way. It was also 130K 
LoC and beyond my ability to fix of course, very frustrating.
May 08, 2009
Re: What's the current state of D?
Walter Bright schrieb:
> dsimcha wrote:
>> Exactly my feelings, but I'll add that the time to make huge, sweeping
>> changes
>> like the ones we're seeing now is before the language becomes
>> mainstream.  Once
>> the language has a large base of crufty production code that nobody still
>> understands and can fix quickly and easily when the language changes,
>> it becomes
>> much harder to make these kinds of changes.
> 
> Yes.
> 
> The next D2 update will have one such change, which has been planned for
> maybe the past year. All static and global variables will default to
> being thread local (instead of being implicitly shared). Doing this is
> disruptive, but is critical to credibly supporting multithreaded
> programming.
> 
> In testing this out, I've uncovered at least a dozen implicit sharing
> bugs in Phobos. I think this change will have a big payoff for
> multithreaded code.

can you allow "shared" or "__gshared" in D1 as do-nothing keywords? That
will make it more easy to write code that compiles for D1 and D2.
Or is there a trick to accomplish this?
May 08, 2009
Re: What's the current state of D?
Steve Teale wrote:
> This is the sort of answer that will kill D. The guy comes back after 2 years, asks a straight question, and get's told "business as usual, we're still arguing among ourselves about what it should be".

Last week I asked Andrei what DMD2/Phobos to use, looking for something 
stable. I wanted to use D2, but he couldn't answer that question. So why 
is it a problem to give this person an honest answer?

I don't want D2 to be a rush job. Cool things are happening with it. I 
am, however, impatient for it to be stable, but I'm not upset that it 
isn't. It just means I won't use D2 for most of my projects just yet.
May 08, 2009
Re: What's the current state of D?
Sean Kelly wrote:
> == Quote from Steve Teale (steve.teale@britseyeview.com)'s article
>> OK so for those who crave stability there is D1.x, but when all the focus appears to be on D2, what level of confidence is afforded to
> D1 users. Can a project Manager cross his heart and say that D1 will still be alive and well in five years time?
> 
> Will that project manager care?  Most build teams don't update compiler
> versions very often--once a version has been settled upon that's pretty
> much it, unless a show-stopping bug appears during development that
> for some reason can't be worked around.  In fact, I can't even see a team
> bothering to speculate about the future popularity of a language when
> choosing it for a project.  The only thing that matters is whether it's a
> good decision today, not five years from now.  If that weren't the case,
> then there would have never been a call for COBOL programmers
> during the Y2K transition.

In the Windows world, you get a new compiler every two to three years, 
so that's hardly an issue. Similarly with Java.

Open source projects tend to have to support wider ranges of compilers. 
I've seen OSS projects where they prioritized issues specific to 
gcc-3.4.2 as highly as any other issue, even if the developers typically 
used the 4.x branch.
May 08, 2009
Re: What's the current state of D?
Lutger wrote:
> - other mainstream languages release new compilers and features every couple 
> of years, you do so every couple of months!

Rapid evolution is a good thing.  For every improvement that will be
made to the D2 language, I'd rather see that improvement in a week than
in a couple of years.  *Especially* for improvements that break
backwards compatibility.

D2 is incomplete right now.  The faster it evolves, the sooner it'll
reach completion, at which point it should be as stable as any language.


-- 
Rainer Deyke - rainerd@eldwood.com
May 08, 2009
Re: What's the current state of D?
dsimcha wrote:
> Just out of curiosity,
> though, you use __gshared in a lot of places and I haven't seen it in any of the
> discussions.  What is it?

__gshared is the "cowboy" approach, it means make it global and I don't 
care about any weenie synchronization or type checking. It's handy for 
initial ports of "I just want it to compile, I'll fix it later".

Naturally, it won't be allowed in safe mode.
May 08, 2009
Re: What's the current state of D?
Sean Kelly wrote:
> It's a way to declare something as "classic global" so you can sidestep any bugs
> that crop up with the implementation of 'shared'.  The hope is that you'll
> eventually just be able to do a search/replace of '__gshared' to 'shared' once
> everything is working correctly.

I like the moniker "classic global", or perhaps even better, "global 
classic" as a term for it.
May 08, 2009
Re: What's the current state of D?
Frank Benoit wrote:
> can you allow "shared" or "__gshared" in D1 as do-nothing keywords? That
> will make it more easy to write code that compiles for D1 and D2.
> Or is there a trick to accomplish this?

I think that making code that will compile under both is an impractical 
task.
1 2 3 4 5 6 7
Top | Discussion index | About this forum | D home