March 26, 2009
== Quote from Ary Borenszweig (ary@esperanto.org.ar)'s article
> When I download a library for Java, Python or C#, I download it,
> reference it and it works. If I had to fix something for it to work, I
> woudldn't use it. Mainly because to fix it I'd had to understand the
> code, and I just want to understand the interface.
> If you have to modify a library when you download it just to make it
> work (not to tweak it), that's a huge problem for me.

Agreed, but if the library is being actively maintained, the library developer will do this.  If it's not being maintained, well, we do have a lot of abandoned stuff out on dource, but I wouldn't want to use a library if noone understands it and cares enough to fix a few trivial bugs.
March 26, 2009
dsimcha wrote:
> == Quote from Ary Borenszweig (ary@esperanto.org.ar)'s article
>> When I download a library for Java, Python or C#, I download it,
>> reference it and it works. If I had to fix something for it to work, I
>> woudldn't use it. Mainly because to fix it I'd had to understand the
>> code, and I just want to understand the interface.
>> If you have to modify a library when you download it just to make it
>> work (not to tweak it), that's a huge problem for me.
> 
> Agreed, but if the library is being actively maintained, the library developer
> will do this.  If it's not being maintained, well, we do have a lot of abandoned
> stuff out on dource, but I wouldn't want to use a library if noone understands it
> and cares enough to fix a few trivial bugs.

Yes, but fixing bugs should be understood as bugs in the code, some flaw in the library logic. Not some bug because the compiler suddenly changed.

And as someone mentioned some days ago, D is mostly used by hobby-ists, so the chances of maintaining a library in that sense are very few. Specially because it's very boring to fix bugs you didn't caused.
March 26, 2009
Mike James wrote:
> What is the state of play with D1.0 vs. D2.0?
> 
> Is D1.0 a dead-end and D2.0 should be used for future projects?
> 
> Is D2.0 stable enough for use at the present?
> 
> Is Tango for D2.0 at a level of D1.0 and can be used now?
> 
> Is DWT ready for D2.0 now?
> 
> 
> Regards, mike.

Use DMD 1.0 if you want a stable language that works.

Use DMD 2.0 if you don't potentially changing your code with every compiler release, and don't need to use that many libraries.
March 26, 2009
Ary Borenszweig, el 26 de marzo a las 10:20 me escribiste:
> >Note the use of the word "language."
> >What you're referring to are bugs in the compiler.  It happens.
> >  -- Daniel
> 
> But ValieriM has a point. If I code, say, a library in D 1.041 only to find out that in a couple of months it won't compile anymore in D 1.045, that's not good at all. That's when someone sends a message to the newsgroups saying "I just downloaded library Foo, but it won't compile with D 1.045... is it abandoned?  Why isn't it maintained? D1 is broken". The point is, you shouldn't need to maintain libraries for D1 anymore. Maybe the test suite for D1 should be bigger to cover more cases...

Another problem with D1 vs. D2 is nobody wants to start new software using D1 when D2 is about to come and have breaking changes. Not trivial breaking changes, but really base ones, a change in paradigm (D2 will be a lot more oriented to concurrency, and a lot of idioms will change). You probably have to start thinking in a different way to code with D2, at least to take advantage of new features/paradigm.

I think this is something people see and why a lot of people see D1 as
a dead end. This doesn't happen with other language AFAIK (at least no
with Python wich is another moderately fast-evolving language that I use
often). You can move from Python 2 to Python 3 almost as smoothly as
moving from 2.5 to 2.6 (and that is *very* smooth). The difference with
D is Python 3 didn't introduce any paradigm change, it doesn't want to be
a revolutionary new language as D2 want.

I think this phrase should not be in the D homepage anymore:
"It seems to me that most of the "new" programming languages fall into one
of two categories: Those from academia with radical new paradigms and
those from large corporations with a focus on RAD and the web. Maybe it's
time for a new language born out of practical experience implementing
compilers." -- Michael

I think D now almost fit into the "Those from academia with radical new paradigms" category =P

I think this wouldn't happen if D2 were focused on just adding small features like the ones already added (like full closures, struct improvements, common runtime with Tango, etc.) and AST macros for example... =)

If you take small steps, you can evolve more smoothly (like Python) and avoid this kind of huge gaps between language versions.

That's why I'd love to see some kind of D 1.1 (maybe LDC could be used to make an "unofficial" D 1.1 language), with a few minor non-breaking new features over D 1.0, then D 1.2 could introduce some more, and so on. This way people can catch-up easly, with small simple iterations, and D1 wont feel as a dead frozen language.

Just my 2¢

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
March 26, 2009
Ary Borenszweig wrote:
> Daniel Keep wrote:
>>
>> ValeriM wrote:
>>> Ary Borenszweig Wrote:
>>>
>>>> Mike James escribi�:
>>>>> What is the state of play with D1.0 vs. D2.0?
>>>>>
>>>>> Is D1.0 a dead-end and D2.0 should be used for future projects?
>>>>>
>>>>> Is D2.0 stable enough for use at the present?
>>>>>
>>>>> Is Tango for D2.0 at a level of D1.0 and can be used now?
>>>>>
>>>>> Is DWT ready for D2.0 now?
>>>>>
>>>>>
>>>>> Regards, mike.
>>>> I don't know why a lot of people see D1.0 as a dead-end. It's a stable language. It won't get new features. It won't change. It'll probably receive bug fixes. It works. It gets the job done. You can use it and be sure than in a time all of what you did will still be compatible with "newer" versions of D1.
>>> No. It's not stable.
>>> Try to build last Tango and DWT releases with D1.041 and you will get the problems.
>>
>> "It's a stable language."
>>
>> Note the use of the word "language."
>>
>> What you're referring to are bugs in the compiler.  It happens.
>>
>>   -- Daniel
> 
> But ValieriM has a point. If I code, say, a library in D 1.041 only to find out that in a couple of months it won't compile anymore in D 1.045, that's not good at all. That's when someone sends a message to the newsgroups saying "I just downloaded library Foo, but it won't compile with D 1.045... is it abandoned? Why isn't it maintained? D1 is broken". The point is, you shouldn't need to maintain libraries for D1 anymore. Maybe the test suite for D1 should be bigger to cover more cases...

You should be using the compiler that comes bundled with Tango, perhaps.
March 26, 2009
On Thu, Mar 26, 2009 at 5:50 PM, Leandro Lucarella <llucax@gmail.com> wrote:
> ...snip...
>
> That's why I'd love to see some kind of D 1.1 (maybe LDC could be used to make an "unofficial" D 1.1 language), with a few minor non-breaking new features over D 1.0, then D 1.2 could introduce some more, and so on. This way people can catch-up easly, with small simple iterations, and D1 wont feel as a dead frozen language.

I think this is bound to happen sooner or later.

>
> Just my 2¢
>
> --
> Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
March 26, 2009
"Leandro Lucarella" <llucax@gmail.com> wrote in message news:20090326165012.GC17722@burns.springfield.home...
> Ary Borenszweig, el 26 de marzo a las 10:20 me escribiste:
>> >Note the use of the word "language."
>> >What you're referring to are bugs in the compiler.  It happens.
>> >  -- Daniel
>>
>> But ValieriM has a point. If I code, say, a library in D 1.041 only to find out that in a couple of months it won't compile anymore in D 1.045, that's not good at all. That's when someone sends a message to the newsgroups saying "I just downloaded library Foo, but it won't compile with D 1.045... is it abandoned?  Why isn't it maintained? D1 is broken". The point is, you shouldn't need to maintain libraries for D1 anymore. Maybe the test suite for D1 should be bigger to cover more cases...
>
> Another problem with D1 vs. D2 is nobody wants to start new software using D1 when D2 is about to come and have breaking changes. Not trivial breaking changes, but really base ones, a change in paradigm (D2 will be a lot more oriented to concurrency, and a lot of idioms will change). You probably have to start thinking in a different way to code with D2, at least to take advantage of new features/paradigm.
>
> I think this is something people see and why a lot of people see D1 as
> a dead end. This doesn't happen with other language AFAIK (at least no
> with Python wich is another moderately fast-evolving language that I use
> often). You can move from Python 2 to Python 3 almost as smoothly as
> moving from 2.5 to 2.6 (and that is *very* smooth). The difference with
> D is Python 3 didn't introduce any paradigm change, it doesn't want to be
> a revolutionary new language as D2 want.
>
> I think this phrase should not be in the D homepage anymore:
> "It seems to me that most of the "new" programming languages fall into one
> of two categories: Those from academia with radical new paradigms and
> those from large corporations with a focus on RAD and the web. Maybe it's
> time for a new language born out of practical experience implementing
> compilers." -- Michael
>
> I think D now almost fit into the "Those from academia with radical new paradigms" category =P
>
> I think this wouldn't happen if D2 were focused on just adding small features like the ones already added (like full closures, struct improvements, common runtime with Tango, etc.) and AST macros for example... =)
>
> If you take small steps, you can evolve more smoothly (like Python) and avoid this kind of huge gaps between language versions.
>
> That's why I'd love to see some kind of D 1.1 (maybe LDC could be used to make an "unofficial" D 1.1 language), with a few minor non-breaking new features over D 1.0, then D 1.2 could introduce some more, and so on. This way people can catch-up easly, with small simple iterations, and D1 wont feel as a dead frozen language.
>

I've never really minded D's willingness to change, especially this early in it's lifetime (in fact, I quite respect it), primarily because I've seen what too much emphasis on backwards compatibility can eventually do to a language (ie, C/C++).

But that said, you do have an interesting point about providing a migration path that breaks the changes into smaller, easier-to-digest chunks.


March 26, 2009
Tomas Lindquist Olsen, el 26 de marzo a las 18:18 me escribiste:
> On Thu, Mar 26, 2009 at 5:50 PM, Leandro Lucarella <llucax@gmail.com> wrote:
> > ...snip...
> >
> > That's why I'd love to see some kind of D 1.1 (maybe LDC could be used to make an "unofficial" D 1.1 language), with a few minor non-breaking new features over D 1.0, then D 1.2 could introduce some more, and so on. This way people can catch-up easly, with small simple iterations, and D1 wont feel as a dead frozen language.
> 
> I think this is bound to happen sooner or later.

Well, then I'd love it happen sooner ;)

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
March 26, 2009
On Thu, Mar 26, 2009 at 6:41 PM, Leandro Lucarella <llucax@gmail.com> wrote:
> Tomas Lindquist Olsen, el 26 de marzo a las 18:18 me escribiste:
>> On Thu, Mar 26, 2009 at 5:50 PM, Leandro Lucarella <llucax@gmail.com> wrote:
>> > ...snip...
>> >
>> > That's why I'd love to see some kind of D 1.1 (maybe LDC could be used to make an "unofficial" D 1.1 language), with a few minor non-breaking new features over D 1.0, then D 1.2 could introduce some more, and so on. This way people can catch-up easly, with small simple iterations, and D1 wont feel as a dead frozen language.
>>
>> I think this is bound to happen sooner or later.
>
> Well, then I'd love it happen sooner ;)

We could start by figuring out what D 1.1 is ...

>
> --
> Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
> ----------------------------------------------------------------------------
> GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
> ----------------------------------------------------------------------------
>
March 26, 2009
Tomas Lindquist Olsen wrote:
> On Thu, Mar 26, 2009 at 6:41 PM, Leandro Lucarella <llucax@gmail.com> wrote:
>> Tomas Lindquist Olsen, el 26 de marzo a las 18:18 me escribiste:
>>> On Thu, Mar 26, 2009 at 5:50 PM, Leandro Lucarella <llucax@gmail.com> wrote:
>>>> ...snip...
>>>>
>>>> That's why I'd love to see some kind of D 1.1 (maybe LDC could be used to
>>>> make an "unofficial" D 1.1 language), with a few minor non-breaking new
>>>> features over D 1.0, then D 1.2 could introduce some more, and so on. This
>>>> way people can catch-up easly, with small simple iterations, and D1 wont
>>>> feel as a dead frozen language.
>>> I think this is bound to happen sooner or later.
>> Well, then I'd love it happen sooner ;)
> 
> We could start by figuring out what D 1.1 is ...

It's D2 - const/invariant, yeaaah! :-P