A (un)stable idea?

Heywood Floyd soul8o8 at gmail.com
Mon Jan 3 21:07:02 PST 2011



Hi D!


I'm quite new to D (been here for maybe half a year?) and I'm not sure if what I'm about to say is called for, so please forgive me if I'm crossing some line here. I just had a thought and I wanted to share it:


I've noticed, during my time here, that D seems to suffer from quite a lot of frustration. This frustration in turn seems to stem from periodical annoying bugs and regressions etc. There are stories of dedicated developers abandoning the ship and things like that. I'm not really in a position to say if this is normal or not, but I think at least it's fair to say a lot of poeple are frustrated with D(?).

At the same time, what's interesting is that these kinds of bugs can hardly be unique to D -- in fact, it would be really weird if these kinds of issues was not present in D! (I think so, at least.) Software is complex, and we all know bugs are part of the normal course of things. I'd go so far to say bugs are a natural part of software.

So why all the frustration?

This lead me to a thought: maybe, just maybe, one thing that causes so much frustration, is the fact that D doesn't really seem to have any testing / stable branches. Seems to me, and please correct me if I'm wrong, changes made to the trunk are released about once every month? And that's it. That's the latest version of D.

This is very agressive. Isn't it? Seems to me, many people hold off the latest version of D, because it's so agressive.

I think most non-trivial software projects keep one branch that is the "sand box"-branch where new features are tried out, and one branch where special care is taken to keep it stable. Now, this setup doesn't mean that the software will be bug free. The _key_ here is, that once you label a piece of software as "testing" or "experimental", bugs are ok! In fact, bugs are to be expected! No one can complain! (And if they do, you say "hey, chillax dude, it's experimental!")

Also, most developers will be in different phases in their projects -- some are building on some project that is years old and the last thing they want is some new experimental feauture. Others are just playing around and don't mind getting all the latest bells and whistles. Testing/stable solves all that, while still allowing the software to evolve.

Then of course, you have to actually keep the stable branch stable. I realize that simply dividing D(2) into two branches wouldn't achieve that. So I don't know. I guess this is more an idea for future version of D?

That's it. I'm not quite going to finish my reasoning, because, yeah I don't know. Maybe this has been up before? Sorry in that case. I just wanted to give this idea some air: How about maybe having a testing/stable branch for D at some point in the future? I for one would like that, anyhow.


(Fun thought experiment: Imagine Debian Linux abandoning their testing branch and just making all changes to trunk. Imagine _that_ mailing list. You can feel the frustration, can't you? :)


Kind Regards
/HF


PS. I've too experienced some frustrating bugs with D, but it's still the only compiled language I can stand! *bow*



More information about the Digitalmars-d mailing list