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*

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*

only happens much when you cross that line?
--
Atenciosamente / Sincerely,
Guilherme ("n2liquid") Vieira
--0016e64cbf6cf4f3d90498fe4c9f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
<div class=3D"gmail_quote">On Tue, Jan 4, 2011 at 3:07 AM, Heywood Floyd <s=
pan dir=3D"ltr">&lt;<a href=3D"mailto:soul8o8 gmail.com">soul8o8 gmail.com<=
/a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:=
0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
<br>
Hi D!<br>
<br>
<br>
I&#39;m quite new to D (been here for maybe half a year?) and I&#39;m not s=
ure if what I&#39;m about to say is called for, so please forgive me if I&#=
39;m crossing some line here. I just had a thought and I wanted to share it=
:<br>
<br>
<br>
I&#39;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 developer=
s abandoning the ship and things like that. I&#39;m not really in a positio=
n to say if this is normal or not, but I think at least it&#39;s fair to sa=
y a lot of poeple are frustrated with D(?).<br>
<br>
At the same time, what&#39;s interesting is that these kinds of bugs can ha=
rdly 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, a=
nd we all know bugs are part of the normal course of things. I&#39;d go so =
far to say bugs are a natural part of software.<br>
<br>
So why all the frustration?<br>
<br>
This lead me to a thought: maybe, just maybe, one thing that causes so much=
frustration, is the fact that D doesn&#39;t really seem to have any testin=
g / stable branches. Seems to me, and please correct me if I&#39;m wrong, c=
hanges made to the trunk are released about once every month? And that&#39;=
s it. That&#39;s the latest version of D.<br>
<br>
This is very agressive. Isn&#39;t it? Seems to me, many people hold off the=
latest version of D, because it&#39;s so agressive.<br>
<br>
I think most non-trivial software projects keep one branch that is the &quo=
t;sand box&quot;-branch where new features are tried out, and one branch wh=
ere special care is taken to keep it stable. Now, this setup doesn&#39;t me=
an that the software will be bug free. The _key_ here is, that once you lab=
el a piece of software as &quot;testing&quot; or &quot;experimental&quot;, =
bugs are ok! In fact, bugs are to be expected! No one can complain! (And if=
they do, you say &quot;hey, chillax dude, it&#39;s experimental!&quot;)<br=

<br>
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 wan=
t is some new experimental feauture. Others are just playing around and don=
&#39;t mind getting all the latest bells and whistles. Testing/stable solve=
s all that, while still allowing the software to evolve.<br>
<br>
Then of course, you have to actually keep the stable branch stable. I reali=
ze that simply dividing D(2) into two branches wouldn&#39;t achieve that. S=
o I don&#39;t know. I guess this is more an idea for future version of D?<b=
r>
<br>
That&#39;s it. I&#39;m not quite going to finish my reasoning, because, yea=
h I don&#39;t know. Maybe this has been up before? Sorry in that case. I ju=
st wanted to give this idea some air: How about maybe having a testing/stab=
le branch for D at some point in the future? I for one would like that, any=
how.<br>
<br>
<br>
(Fun thought experiment: Imagine Debian Linux abandoning their testing bran=
ch and just making all changes to trunk. Imagine _that_ mailing list. You c=
an feel the frustration, can&#39;t you? :)<br>
<br>
<br>
Kind Regards<br>
<font color=3D"#888888">/HF<br>
</font><br>
<br>
PS. I&#39;ve too experienced some frustrating bugs with D, but it&#39;s sti=
ll the only compiled language I can stand! *bow*<br>
<br>
</blockquote></div><br>Shouldn&#39;t TDPL have set the safe subset of the l=
anguage to use? Maybe it only happens much when you cross that line?<br cle=
ar=3D"all"><br>-- <br>Atenciosamente / Sincerely,<br>Guilherme (&quot;n2liq=
uid&quot;) Vieira<br>
--0016e64cbf6cf4f3d90498fe4c9f--

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*

Shouldn't TDPL have set the safe subset of the language to use? Maybe it
only happens much when you cross that line?

Safe and stable are two different things. D has the concept of SafeD which
restricts unsafe features. safe functions can only call trusted functions,
whereas trusted are safe functions which encapsulate unsafe stuff, and system
is the unsafe stuff.
That being said, dmd is not up-to-date with TDPL. TDPL is ahead of it. At this
point, the language definition really isn't the problem. TDPL more or less
froze
that. Changes to the language will be made pretty much only as is proven
necessary. The spec is no longer under heavy development. However, while the
spec may no longer be in flux, the implementation is. dmd has plenty of bugs,
and
it has yet to fully implement everything that's in TDPL. It continues to get
closer to that point, but it isn't there yet. And separate from TDPL and the
state of dmd, you have Phobos, which is very much in flux. Some of it is quite
stable, but a fair bit of it still under heavy development. So, bugs aren't
uncommon.
I do expect that we will eventually have to have Phobos with major and minor
releases, with the minor releases only being bug fixes, and the major releases
actually having feature changes and the like. However, I think that it's too
early in its development for that to really make sense yet. As the language
spec
is essentially frozen, pretty much all changes to dmd are bug fixes (or the
implementation of features which in the spec but not yet implemented, which are
arguably bugs since then dmd doesn't match the spec). So, dmd shouldn't have
the
same issues.
I do think that we need to better deal with stable vs development code at some
point, but I'm not sure if we're far enough along for that to make sense yet.
Too much focus on that would likely stagnate Phobos development. Once it's more
mature, then that sort of thing would make sense, but not now.
- Jonathan M Davis

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!")

We do that. There's D1, which gets maintenance and bug fixes only, and D2,
which
has been getting aggressive new features.