Re: Is D still alive?

2011-02-04 Thread Bruno Medeiros
Although I don't find the original post to be a troll, (despite the 
title), I could not resist poking some fun...



 Still Alive? 

This was a triumph!
I'm making a note here: HUGE SUCCESS!!

It's hard to overstate, my satisfaction.

D programming Language:
We do what we must, because we can.

For the good of all of us.
Except the ones who are dead.

But there's no sense crying, over every mistake.
You just keep on trying, till you run out of code.
And the desiderata gets achieved.
And you make a neat module, for the people who are, still alive.

I'm not even angry...
I'm being so sincere right now-
Even though you broke my compiler, and killed me.
And tore the linker to pieces.
And threw every piece into a fire.
As they burned it hurt because, I was so happy for you!

Now, these points of data, make a beautiful line.
And we're out of beta. We're releasing on time!
So I'm GLaD I got burned-
Think of all the things we learned-
for the people who are, still alive.


Go ahead and leave me...
I think I'd prefer to stay inside...
Maybe you'll find someone else, to help you?
Maybe the Go Language?
THAT WAS A JOKE! HAHA - FAT CHANCE.

Anyway this code is great!
It's so delicious and moist!

Look at me: still talking, when there's science to do!
When I look out there, it makes me GLaD I'm not you.

I've experiments to run.
There is research to be done.
On the people who are, still alive.
And believe me I am, still alive.
I'm doing science and I'm, still alive.
I feel fantastic and I'm, still alive.
While you're dying I'll be, still alive.
And when you're dead I will be, still alive.

--
Bruno Medeiros - Software Engineer


Re: Is D still alive?

2011-01-31 Thread Steven Schveighoffer
On Fri, 28 Jan 2011 20:16:54 -0500, Walter Bright  
newshou...@digitalmars.com wrote:



Steven Schveighoffer wrote:

I can't buy enterprise support,


Of course you can!


No really, I can't afford it ;)

But seriously, I find it hard to believe that you can buy enterprise  
support for D if it means that you do the work.  There's only one you.  So  
at some point, you might be spread too thin between adding new features,  
posting to this newsgroup, and supporting all enterprise customers.


Any estimate you can give on how many such customers you have?

-Steve


Re: Is D still alive?

2011-01-31 Thread Steven Schveighoffer

On Fri, 28 Jan 2011 16:25:49 -0500, retard r...@tard.com.invalid wrote:


Fri, 28 Jan 2011 10:14:04 -0500, Steven Schveighoffer wrote:

I think as D matures
and hopefully gets more enterprise support, these problems will be
history.


This is the classic chicken or the egg problem. I'm not trying to be
unnecessarily mean. Enterprise support is something you desperately need.
Consider dsource, wiki4d, d's bugzilla etc. It's amazing how much 3rd
party money and effort affects the development. Luckily many things are
also free nowadays such as github.


I'd say the last 1-2 years have been extremely productive compared to the  
previous years combined.  I feel like the growth has been better than  
linear.


I'm not saying enterprise support is waiting in the wings for D to be  
fully mature, and it might take someone developing a for-sale compiler  
to get to that point.  But even without that kind of support, I expect  
that usable stability in dmd will come about sooner rather than later.



The statements I made are not a property of D, they are a property of
the lack of backing/maturity.  I'm sure when Haskell was at the same
maturity stage as D, and if it had no financial backing/support
contracts, it would be just as much of a gamble.


But Haskell developers have uninterruptedly received funding during the
years.


If I understand you correctly, that's not what I'm talking about.  I'm  
talking about a company who *uses* haskell being able to go to a  
haskell-supplier company and say I want you guys to guarantee you will  
fix any bugs we encounter.  If that's what you mean, then I stand  
corrected, but then that makes Haskell not a good comparison here...



You seem to think that D is inherently flawed because of D, but it's
simply too young for some tasks.  It's rapidly getting older, and I
think in a year or two it will be mature enough for most projects.


I've heard this before. I've also heard the 64-bit port and many other
things are done in a year/month or two. The fact is, you're overly
optimistic and these are all bullshit. When I come back here in a year or
two, I have full justification to laugh at your stupid claims.


Open-source development takes time, and is hard to predict, because  
typically it comes from free time, which isn't guaranteed.  Because it's  
hard to predict doesn't mean a) it's all bullshit, b) it doesn't make  
progress, and c) it will never succeed.


In two years if you come back here and laugh at me, I will again shake my  
head in pity that you care so much about such things.  I gave me best  
estimate, and maybe I'm off.  We aren't on trial here, or having lives  
depend on us.  You need to find a more constructive outlet for your  
pessimism.  Well, it would be nice if it was simply on another newsgroup.


-Steve


Re: Is D still alive?

2011-01-31 Thread Simen kjaeraas

Steven Schveighoffer schvei...@yahoo.com wrote:

On Fri, 28 Jan 2011 20:16:54 -0500, Walter Bright  
newshou...@digitalmars.com wrote:



Steven Schveighoffer wrote:

I can't buy enterprise support,


Of course you can!


No really, I can't afford it ;)

But seriously, I find it hard to believe that you can buy enterprise  
support for D if it means that you do the work.  There's only one you.   
So at some point, you might be spread too thin between adding new  
features, posting to this newsgroup, and supporting all enterprise  
customers.


Even if that is the case, Walter is free to hire others to do the
enterprise work for him.


--
Simen


Re: Is D still alive?

2011-01-31 Thread Ulrik Mikaelsson
2011/1/28 retard r...@tard.com.invalid:
 I've heard this before. I've also heard the 64-bit port and many other
 things are done in a year/month or two. The fact is, you're overly
 optimistic and these are all bullshit. When I come back here in a year or
 two, I have full justification to laugh at your stupid claims.

64-bit port for D (at least v1) IS available. I use LDC to build and
run on 64-bit, but I'm sure GDC will work as well.

The LDC-port for D2 may be untested though, and I do not know about
GDC, but personally, I think it's a mistake to recommend D2 for new
projects. Given the importance of compilers, runtime and
base-libraries, and the kind of bug-reports I hear frustration around,
it seems D2 should still be considered beta, but for people who want
working development now, recommend D1. In all it's inferiority, it IS
more stable.

My guess is much frustration in the D community stems from slightly
pre-maturely trying to push D2, before neither D1 nor D2 was ready.
I've chosen to only work with D1/Tango from start, and I simply don't
recognize the frustration many are feeling. I'm only concerned over
that there ARE quite a few developers that seems to have been turned
off by instability, and the Phobos/Tango-problem.

Well, well. I'm generally a happy D-developer, and I only hope D3
won't be started until D2 is rock-stable, and fully utilized. :)


Re: Is D still alive?

2011-01-31 Thread Trass3r

I've chosen to only work with D1/Tango from start, and I simply don't
recognize the frustration many are feeling. I'm only concerned over
that there ARE quite a few developers that seems to have been turned
off by instability, and the Phobos/Tango-problem.


Well, if nobody acted as a guinea pig, no issues would be uncovered ;)
And though I already encountered several blocker bugs myself I got the  
feeling that the situation has become way better.
Of course if, for some reason, you absolutely need x64 or have a hard  
deadline for your project then D1 is probably the better way to go.


Re: Is D still alive?

2011-01-31 Thread Steven Schveighoffer
On Mon, 31 Jan 2011 12:26:56 -0500, Simen kjaeraas  
simen.kja...@gmail.com wrote:



Steven Schveighoffer schvei...@yahoo.com wrote:

On Fri, 28 Jan 2011 20:16:54 -0500, Walter Bright  
newshou...@digitalmars.com wrote:



Steven Schveighoffer wrote:

I can't buy enterprise support,


Of course you can!


No really, I can't afford it ;)

But seriously, I find it hard to believe that you can buy enterprise  
support for D if it means that you do the work.  There's only one you.   
So at some point, you might be spread too thin between adding new  
features, posting to this newsgroup, and supporting all enterprise  
customers.


Even if that is the case, Walter is free to hire others to do the
enterprise work for him.


Again, there's only one Walter.  Throwing warm bodies at a problem doesn't  
always solve it ;)


I for one would have a hard time being a full-time enterprise support  
developer for compiler software.


That being said, he does work at a compiler company, so I suppose he  
probably has better access to compiler-savvy folks...


-Steve


Re: Is D still alive?

2011-01-31 Thread Jesse Phillips
Trass3r Wrote:

  I've chosen to only work with D1/Tango from start, and I simply don't
  recognize the frustration many are feeling. I'm only concerned over
  that there ARE quite a few developers that seems to have been turned
  off by instability, and the Phobos/Tango-problem.
 
 Well, if nobody acted as a guinea pig, no issues would be uncovered ;)
 And though I already encountered several blocker bugs myself I got the  
 feeling that the situation has become way better.
 Of course if, for some reason, you absolutely need x64 or have a hard  
 deadline for your project then D1 is probably the better way to go.

Andrei put for the question once of, How many issues would users run across if 
they stuck to those features that are also available in v1.0?

I think the answer would be more then sticking with a D1 compiler, but not 
nearly the number people do hit, which is also diminishing rapidly.

I do not think there is an issue with using D2 in a new project, but if you 
have to ask you probably should go with D1. I say this because someone who is 
aware of the issues present in the language is able to decide if their desired 
project would be hindered by the bug. There are definitely some projects, with 
constraints which would not make D a very good choice.

For example D would make a great language on an embedded device, but currently 
the first one to take it on will have a massive overhead to make it work.


Re: Is D still alive?

2011-01-31 Thread Ulrik Mikaelsson
2011/1/31 Jesse Phillips jessekphillip...@gmail.com:
 I do not think there is an issue with using D2 in a new project, but if you 
 have to ask you probably should go with D1. I say this because someone who is 
 aware of the issues present in the language is able to decide if their 
 desired project would be hindered by the bug.
I completely agree with this, but that important if is not conveyed
by the recommendation D version 2 which is recommended for new
projects. :) I think it's not as much a problem of actual problems,
as a problem of wrong expectations.

Anyhow, D1 is a great language. D2 looks to be an ever better language
and from what I hear rapidly stabilizing. The only reason I brought
this up (after days of questioning if it's even worth mentioning), is
hoping to avoid the same problems when D3 arrives.


Re: Is D still alive?

2011-01-31 Thread retard
Mon, 31 Jan 2011 11:43:37 -0500, Steven Schveighoffer wrote:

 On Fri, 28 Jan 2011 20:16:54 -0500, Walter Bright
 newshou...@digitalmars.com wrote:
 
 Steven Schveighoffer wrote:
 I can't buy enterprise support,

 Of course you can!
 
 No really, I can't afford it ;)
 
 But seriously, I find it hard to believe that you can buy enterprise
 support for D if it means that you do the work.  There's only one you. 
 So at some point, you might be spread too thin between adding new
 features, posting to this newsgroup, and supporting all enterprise
 customers.
 
 Any estimate you can give on how many such customers you have?

The fact that the final specification and design rationale of D is 
undocumented and in Walter's head means that no other person can sell 
that kind of deep enterprise support because it's not clear how the 
language should work. The rest of us can only guess. It also means that 
the more Walter spends time on enterprise support, the less he has time 
to work on D. The best for D might be to not buy any support at all. All 
the conferences and events are just distracting D's development.

I think the same applies to Phobos 2.. only Andrei knows the design well 
enough and knows how it's going to change in the future. No matter how 
much time one spends studying D or the ecosystem or how D is used in the 
enterprise world, one simply can't obtain any reasonable level of 
knowledge to become a certified authority in this community.

About the enterprise support... I haven't seen any material from Walter 
targeting professional D developers, only advertisements for people who 
have never used D. Maybe the hardcore stuff isn't publicly available.

The commercial language consultancy support I've seen is that consultants 
with 20+ years of enterprise C++ experience teach young developers with 
only ~1-5 years of enterprise experience with the platform. Typically 
even the fresh juniors have some experience with the platform (via 
university training) and the in-house seniors with 3+ years of experience 
help them to get more familiar with the platform used in the company. 
It's also very rare to only focus on the language, usually the frameworks 
and toolchain are the major culprits. YMMV of course and the world is 
full of all kinds of bullshit consultancy.


Re: Is D still alive?

2011-01-31 Thread Jonathan M Davis
On Monday, January 31, 2011 11:31:29 Jesse Phillips wrote:
 Trass3r Wrote:
   I've chosen to only work with D1/Tango from start, and I simply don't
   recognize the frustration many are feeling. I'm only concerned over
   that there ARE quite a few developers that seems to have been turned
   off by instability, and the Phobos/Tango-problem.
  
  Well, if nobody acted as a guinea pig, no issues would be uncovered ;)
  And though I already encountered several blocker bugs myself I got the
  feeling that the situation has become way better.
  Of course if, for some reason, you absolutely need x64 or have a hard
  deadline for your project then D1 is probably the better way to go.
 
 Andrei put for the question once of, How many issues would users run
 across if they stuck to those features that are also available in v1.0?
 
 I think the answer would be more then sticking with a D1 compiler, but not
 nearly the number people do hit, which is also diminishing rapidly.
 
 I do not think there is an issue with using D2 in a new project, but if you
 have to ask you probably should go with D1. I say this because someone who
 is aware of the issues present in the language is able to decide if their
 desired project would be hindered by the bug. There are definitely some
 projects, with constraints which would not make D a very good choice.
 
 For example D would make a great language on an embedded device, but
 currently the first one to take it on will have a massive overhead to make
 it work.

Personally, I find that it's issues such as not being able to link C or C++ 
code 
compiled by Microsoft's compiler with code compiled by dmd which would stop be 
me from being able to use D in projects at work. The stability of the compiler 
is an issue, but the linker issue totally kills it before the stability issue 
would even come up. Pretty much everything I work on at work has to run on both 
Linux and Windows (and soon Mac OS X), and we use Microsoft's compiler here, so 
D could would _have_ to be able to link with code compiled by Microsoft's 
compiler. The issue of D1 or D2 is completely irrelevant.

Now, if you could use a compiler other than dmd (maybe gdc would work - I don't 
know), then maybe then it would become a possibility, and then you have the 
question of D1 or D2, but if the linking issue isn't solved one way or another, 
then it doesn't matter.

I'm sure that the situation is not as grim at all companies, but it definitely 
is 
where I work.

- Jonathan M Davis


Re: Is D still alive?

2011-01-31 Thread retard
Mon, 31 Jan 2011 11:53:34 -0800, Jonathan M Davis wrote:

 On Monday, January 31, 2011 11:31:29 Jesse Phillips wrote:
 Trass3r Wrote:
   I've chosen to only work with D1/Tango from start, and I simply
   don't recognize the frustration many are feeling. I'm only
   concerned over that there ARE quite a few developers that seems to
   have been turned off by instability, and the Phobos/Tango-problem.
  
  Well, if nobody acted as a guinea pig, no issues would be uncovered
  ;) And though I already encountered several blocker bugs myself I got
  the feeling that the situation has become way better. Of course if,
  for some reason, you absolutely need x64 or have a hard deadline for
  your project then D1 is probably the better way to go.
 
 Andrei put for the question once of, How many issues would users run
 across if they stuck to those features that are also available in
 v1.0?
 
 I think the answer would be more then sticking with a D1 compiler, but
 not nearly the number people do hit, which is also diminishing rapidly.
 
 I do not think there is an issue with using D2 in a new project, but if
 you have to ask you probably should go with D1. I say this because
 someone who is aware of the issues present in the language is able to
 decide if their desired project would be hindered by the bug. There are
 definitely some projects, with constraints which would not make D a
 very good choice.
 
 For example D would make a great language on an embedded device, but
 currently the first one to take it on will have a massive overhead to
 make it work.
 
 Personally, I find that it's issues such as not being able to link C or
 C++ code compiled by Microsoft's compiler with code compiled by dmd
 which would stop be me from being able to use D in projects at work. The
 stability of the compiler is an issue, but the linker issue totally
 kills it before the stability issue would even come up. Pretty much
 everything I work on at work has to run on both Linux and Windows (and
 soon Mac OS X), and we use Microsoft's compiler here, so D could would
 _have_ to be able to link with code compiled by Microsoft's compiler.
 The issue of D1 or D2 is completely irrelevant.

I don't do Windows development, but not being able to use popular third 
party development tools because of object file format issues sounds like 
a huge problem. I did a quick look at the digitalmars site. The 
limitation is only mentioned once in the FAQ section. A competent 
programmer might also discover that by reading the optlink page.

Also no mention of the quality of D2 toolchain. 1.030 stable, 1.066 
latest, and mysterious 2.051. I would assume it's stable. But like 
Ulrik said the kind of bug-reports I hear frustration around, it seems 
D2 should still be considered beta


Re: Is D still alive?

2011-01-31 Thread Andrei Alexandrescu

On 1/31/11 1:52 PM, retard wrote:

I think the same applies to Phobos 2.. only Andrei knows the design well
enough and knows how it's going to change in the future. No matter how
much time one spends studying D or the ecosystem or how D is used in the
enterprise world, one simply can't obtain any reasonable level of
knowledge to become a certified authority in this community.


People on the Phobos roster all have contributed to it, not to mention 
the many contributed patches via bugzilla and ideas aired in this group. 
Also, I have a track record of bringing ideas for future Phobos 
additions for discussion up here before acting on them. In the words of 
collection companies: What else can we do?


I think I'll do something terrible: I'll killfile r...@tard.com.invalid. 
This is a rare occurrence - my current filter has only four entries that 
probably are not valid anymore. I have always saluted your visible 
efforts at being civil, and I have appreciation for them; obviously you 
are quite unhappy about the state of the language, and given that it's 
difficult to not let emotions take the driver's seat. At the same time, 
however, all too often there's this schadenfreude in your posts that 
reduces the credibility and the value of the actual content 
considerably. Between hunting for bits of content and trying to 
distinguish whether they are genuine or the reverse engineering of a 
presupposition - the toll on my time is too high. Feel free to email me 
or to change your ID if you want to share something. Thanks.



Andrei


Re: Is D still alive?

2011-01-31 Thread Walter Bright

Steven Schveighoffer wrote:
But seriously, I find it hard to believe that you can buy enterprise 
support for D if it means that you do the work.  There's only one you.  
So at some point, you might be spread too thin between adding new 
features, posting to this newsgroup, and supporting all enterprise 
customers.


If I need help, there are lots of people in this n.g. who'd be willing to take a 
paid gig.



Any estimate you can give on how many such customers you have?


Not many.


Re: Is D still alive?

2011-01-31 Thread Walter Bright

retard wrote:
The fact that the final specification and design rationale of D is 
undocumented and in Walter's head means that no other person can sell 
that kind of deep enterprise support because it's not clear how the 
language should work.


Oh rubbish. C++ was highly successful in the enterprise for 15 years before it 
got a formal specification.



The rest of us can only guess. It also means that 
the more Walter spends time on enterprise support, the less he has time 
to work on D. The best for D might be to not buy any support at all. All 
the conferences and events are just distracting D's development.


More nonsense. Supporting users, etc., keeps me current on what the real 
problems and needs are.



I think the same applies to Phobos 2.. only Andrei knows the design well 
enough and knows how it's going to change in the future. No matter how 
much time one spends studying D or the ecosystem or how D is used in the 
enterprise world, one simply can't obtain any reasonable level of 
knowledge to become a certified authority in this community.


Official certs in the software biz are bullsh*t. I've never seen much of any 
correspondence between certs and competency.



About the enterprise support... I haven't seen any material from Walter 
targeting professional D developers, only advertisements for people who 
have never used D. Maybe the hardcore stuff isn't publicly available.


If you mean slick brochures and Tom Hopkins trained pitches, no, that's not what 
I do. I help people who ask for services.


Re: Is D still alive?

2011-01-29 Thread Peter Alexander

On 27/01/11 6:14 PM, Jonathan M Davis wrote:

The safety net we are talking about is present only at the right bound of a
slicing syntax (it's not performed in normal array indexing), and it
consists in a single min(x, $) operation, that's one branch. So it slows
down code, but only a bit. And in many of such situations you probably
need to add a min(x, $) manually in the code anyway, so the overhead is
limited.


Personally, I have _never_ needed to add a min call like that. So, while _you_
may think that it's a common thing to do (and it may be that it is in your
code), that doesn't mean that that's generally true.

- Jonathan M Davis


I agree. I've never needed to add a bounds check like that.



Re: Is D still alive?

2011-01-29 Thread bearophile
Peter Alexander:

 I agree. I've never needed to add a bounds check like that.

While my string processing D code contains many of them :-) I presume I am 
thinking in Python there.

Bye,
bearophile


Re: Is D still alive?

2011-01-28 Thread bearophile
Jonathan M Davis:

 I generally end up using unit tests to verify that stuff works correctly and 
 then 
 throw exceptions on bad input. So while I like having DbC built in, I don't 
 end 
 up using it all that much. It's prim,arily invariant that I end up using 
 though, 
 and that's harder to do inside of the member functions.

I think the problem here is that you are not using your D tools well enough yet:
- Preconditions allow you to save some tests in your unittests, because you 
have less need to test many input boundary conditions.
- Postconditions are useful to save some code to test the correctness of the 
results inside your unittests. You still need to put many tricky but correct 
input conditions inside your unittests, but then the postcondition will test 
that the outputs are inside the class of the correct outputs, and you will need 
less unittest code to test that the results are exactly the expected ones in 
some important situations.
- The missing old feature once somehow implemented allows to remove some 
other unittests, because you don't need a unittest any more to test the output 
is generally correct given a certain class of input.
- Class/struct invariants do something unittests have a hard time doing: 
testing the internal consistency of the class/struct data structures in all 
moments, and catching an inconsistency as soon as possible, this allows to 
catch bugs very soon, even before results reach the unittesting code. So their 
work is not much duplicated by unit testing.
- Loop invariants can't be replaced well enough by unittests. Again, they help 
you find bugs very early, often no more than few lines of code later of where 
the bug is. Unittests are not much able to do this.
- Currently you can't use invariants in some situations because of some DMD 
bugs.
- You must look a bit forward too. If D will have some success then some person 
will try to write some tool to test some contracts at compile time. 
Compile-time testing of contracts is useful because it's the opposite of a 
sampling: it's like an extension of the type system, it allows you to be sure 
of something for all possible cases.

Unit tests are useful as a sampling mean, they allow you to assert your 
function does exactly as expected for some specific input-output pairs. DbC 
doesn't perform a sampling, it tests more general properties about your inputs 
or outputs (and if you have some kind of implementation of the old feature, 
also general properties between inputs and their outputs), so DbC testing is 
wider but less deep and less specific than unit testing.

Generally with unittesting you can't be sure to have covered all interesting 
input-output cases (code coverage tools here help but don't solve the problem. 
Fuzzytesting tools are able to cover other cases), while with DbC you can't be 
sure your general rules about correct inputs, correct outputs (or even general 
rules about what a correct input-output pair is) are accurate enough to catch 
all bad situations and computations.

So generally DbC and unittests are better for different purposes, using them 
both you are able to complement each other weak points, and to improve your D 
coding.

I also suggest to try to write contracts first and code later, sometimes it 
helps.

Bye,
bearophile


Re: Is D still alive?

2011-01-28 Thread spir

On 01/28/2011 12:36 PM, bearophile wrote:


I think the problem here is that you are not using your D tools well enough yet:
- Preconditions allow you to save some tests in your unittests, because you 
have less need to test many input boundary conditions.
- Postconditions are useful to save some code to test the correctness of the 
results inside your unittests. You still need to put many tricky but correct 
input conditions inside your unittests, but then the postcondition will test 
that the outputs are inside the class of the correct outputs, and you will need 
less unittest code to test that the results are exactly the expected ones in 
some important situations.


Very intersting points, thank you.


- The missing old feature once somehow implemented allows to remove some 
other unittests, because you don't need a unittest any more to test the output is 
generally correct given a certain class of input.


What is this old feature?



Generally with unittesting you can't be sure to have covered all interesting 
input-output cases (code coverage tools here help but don't solve the problem. 
Fuzzytesting tools are able to cover other cases), while with DbC you can't be 
sure your general rules about correct inputs, correct outputs (or even general 
rules about what a correct input-output pair is) are accurate enough to catch 
all bad situations and computations.

So generally DbC and unittests are better for different purposes, using them 
both you are able to complement each other weak points, and to improve your D 
coding.


Ditto.
I definitely need a mental jump to think in terms of DbC; nearly never use 
it, simply don't think at it.



I also suggest to try to write contracts first and code later, sometimes it 
helps.


Just what I sometimes do for tests ;-)

Denis
--
_
vita es estrany
spir.wikidot.com



Re: Is D still alive?

2011-01-28 Thread Daniel Gibson
Am 28.01.2011 13:30, schrieb spir:
 On 01/28/2011 12:36 PM, bearophile wrote:
 
 I think the problem here is that you are not using your D tools well enough 
 yet:
 - Preconditions allow you to save some tests in your unittests, because you
 have less need to test many input boundary conditions.
 - Postconditions are useful to save some code to test the correctness of the
 results inside your unittests. You still need to put many tricky but correct
 input conditions inside your unittests, but then the postcondition will test
 that the outputs are inside the class of the correct outputs, and you will
 need less unittest code to test that the results are exactly the expected 
 ones
 in some important situations.
 
 Very intersting points, thank you.
 
 - The missing old feature once somehow implemented allows to remove some
 other unittests, because you don't need a unittest any more to test the 
 output
 is generally correct given a certain class of input.
 
 What is this old feature?

if you've got a function fun(int x){ ... ; x++; ... }
then you can use old.x (or something like that) in the dbc block at the end to
access the original value of x.
like assert(x == old.x+1) or something like that.
after hearing about dbc in university I thought that having old was fundamental
for dbc.. but D doesn't support it.

Cheers,
- Daniel


Re: Is D still alive?

2011-01-28 Thread bearophile
spir:

 What is this old feature?

It's a basic DbC feature that's currently missing in D because of some 
implementation troubles (and maybe also because Walter is a bit disappointed 
about DbC).

Example: a class member function performs a certain computation and changes 
some attributes. In the postcondition you want to test that such changes are 
correct. To do this well it's useful to know what the original state of those 
attributes was. This is what the old feature allows you to do. Similar things 
are possible with free functions too.

So preconditions in a function allow you to assert that general rules about 
inputs are fulfilled, postconditions allow you to assert that general rules 
about its outputs are fulfilled, and the old (pre-state) feature allows you 
to assert that general rules about its input-output pairs are fulfilled. So 
it's not a small thing :-)


It was discussed three or more times:

http://www.digitalmars.com/d/archives/digitalmars/D/why_no_old_operator_in_function_postconditions_as_in_Eiffel_54654.html

http://www.digitalmars.com/d/archives/digitalmars/D/Communicating_between_in_and_out_contracts_98252.html


I definitely need a mental jump to think in terms of DbC; nearly never use 
it, simply don't think at it.

DbC looks like a very simple thing, but you need some time, thinking, and 
reading about what it is and what its purposes are, to learn to use it :-)

Bye,
bearophile


Re: Is D still alive?

2011-01-28 Thread Steven Schveighoffer

On Thu, 27 Jan 2011 04:50:32 -0500, retard r...@tard.com.invalid wrote:


Wed, 26 Jan 2011 14:39:08 -0500, Steven Schveighoffer wrote:


I will warn you, once you start using D, you will not want to use
something else.  I cringe every day when I have to use PHP for work.


Nice trolling.


*shrug* call it whatever you want, it's true for me, and probably most  
everyone here.


-Steve


Re: Is D still alive?

2011-01-28 Thread Steven Schveighoffer

On Thu, 27 Jan 2011 04:59:18 -0500, retard r...@tard.com.invalid wrote:


Wed, 26 Jan 2011 15:35:19 -0500, Steven Schveighoffer wrote:


I'd suggest to anyone looking to use D for something really big to try
and prove out how well D will perform for you by coding up bits of
your whole project that you think will be needed.  Hopefully, you can do
everything without hitting a mercy bug and then you can write your full
project in it.


I think this reveals a lot about D. You still need to prove things. Or
maybe the community members in general aren't very good developers; they
can't see the potential of this language. The fact is, no matter what
language you choose, if it isn't a complete joke, you can finish the
project. (I'm assuming the community members here won't be writing any
massive projects which are not possible to do in C++ or PHP or Java.)


I fully see the potential of the language, but I've also experienced that  
a one (or two or three) man compiler team does not fix bugs on *my*  
schedule.  I can't buy enterprise support, so any bugs I may hit, I'm  
just going to have to wait for Walter and Co. to get around to them.  Not  
a problem for me, because I'm not developing with D professionally.  But  
if I was going to base a software company on D, I'd be very nervous at  
this prospect.


I find that I can work around many of D's bugs, but there are just some  
that you have to throw your hands up and wait (I don't have time to learn  
how a compiler works, and fix D's compiler).  I think as D matures and  
hopefully gets more enterprise support, these problems will be history.



I don't see any need to prove how well Haskell works. Even though it's a
avoid success at all costs experimental research language. It just
works. I mean to the extent that I'm willing to go with these silly test
projects that try to prove something.


The statements I made are not a property of D, they are a property of the  
lack of backing/maturity.  I'm sure when Haskell was at the same maturity  
stage as D, and if it had no financial backing/support contracts, it would  
be just as much of a gamble.


You seem to think that D is inherently flawed because of D, but it's  
simply too young for some tasks.  It's rapidly getting older, and I think  
in a year or two it will be mature enough for most projects.


-Steve


Re: Is D still alive?

2011-01-28 Thread Steven Schveighoffer
On Thu, 27 Jan 2011 21:37:31 -0500, Ellery Newcomer  
ellery-newco...@utulsa.edu wrote:



On 01/27/2011 05:41 PM, Walter Bright wrote:


Unit testing has produced a dramatic improvement in coding.


agreed. unit testing (maybe with dbc, I don't remember) was the only  
reason I noticed issue 5364.


I created 4 or 5 bugs against dmd when I added full unit tests to  
dcollections.


So unittests also help D probably as much as they do your code ;)

-Steve


Re: Is D still alive?

2011-01-28 Thread Roman Ivanov
== Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s article
 On 1/27/11 8:02 PM, Walter Bright wrote:
  I think one of the reasons DbC has not paid off is it still requires a
  significant investment of effort by the programmer. It's too easy to not
  bother.
 One issue with DbC is that its only significant advantage is its
 interplay with inheritance. Otherwise, scope() in conjunction with
 assert works with less syntactic overhead. So DbC tends to shine with
 large and deep hierarchies... but large and deep hierarchies are not
 that a la mode anymore.

DbC opens many interesting possibilities if it's supported by tools other than
just the compiler. MS has included it in .NET 4.0:

http://research.microsoft.com/en-us/projects/contracts/


Re: Is D still alive?

2011-01-28 Thread Andrei Alexandrescu

On 1/28/11 10:14 AM, Roman Ivanov wrote:

== Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s article

On 1/27/11 8:02 PM, Walter Bright wrote:

I think one of the reasons DbC has not paid off is it still requires a
significant investment of effort by the programmer. It's too easy to not
bother.

One issue with DbC is that its only significant advantage is its
interplay with inheritance. Otherwise, scope() in conjunction with
assert works with less syntactic overhead. So DbC tends to shine with
large and deep hierarchies... but large and deep hierarchies are not
that a la mode anymore.


DbC opens many interesting possibilities if it's supported by tools other than
just the compiler. MS has included it in .NET 4.0:

http://research.microsoft.com/en-us/projects/contracts/


Hm, I'm seeing in section 3 of userdoc.pdf that they don't care for 
precondition weakening:


While we could allow a weaker precondition, we have found that the 
complications of doing so outweigh the benefits. We just haven’t seen 
any compelling examples where weakening the precondition is useful. So 
we do not allow adding any preconditions at all in a subtype.


They do, however, allow strenghtening postconditions.

Overall the project looks very interesting and has quite recognizable 
names from the PL community. Hopefully it will increase awareness of 
contract programming.



Andrei


Re: Is D still alive?

2011-01-28 Thread retard
Fri, 28 Jan 2011 10:14:04 -0500, Steven Schveighoffer wrote:

 On Thu, 27 Jan 2011 04:59:18 -0500, retard r...@tard.com.invalid wrote:
 
 Wed, 26 Jan 2011 15:35:19 -0500, Steven Schveighoffer wrote:

 I'd suggest to anyone looking to use D for something really big to try
 and prove out how well D will perform for you by coding up bits of
 your whole project that you think will be needed.  Hopefully, you can
 do everything without hitting a mercy bug and then you can write your
 full project in it.

 I think this reveals a lot about D. You still need to prove things. Or
 maybe the community members in general aren't very good developers;
 they can't see the potential of this language. The fact is, no matter
 what language you choose, if it isn't a complete joke, you can finish
 the project. (I'm assuming the community members here won't be writing
 any massive projects which are not possible to do in C++ or PHP or
 Java.)
 
 I fully see the potential of the language, but I've also experienced
 that a one (or two or three) man compiler team does not fix bugs on *my*
 schedule.  I can't buy enterprise support, so any bugs I may hit, I'm
 just going to have to wait for Walter and Co. to get around to them. 
 Not a problem for me, because I'm not developing with D professionally.

I agree.
 
 But if I was going to base a software company on D, I'd be very nervous
 at this prospect.

Exactly.

 
 I think as D matures
 and hopefully gets more enterprise support, these problems will be
 history.

This is the classic chicken or the egg problem. I'm not trying to be 
unnecessarily mean. Enterprise support is something you desperately need. 
Consider dsource, wiki4d, d's bugzilla etc. It's amazing how much 3rd 
party money and effort affects the development. Luckily many things are 
also free nowadays such as github.

 
 I don't see any need to prove how well Haskell works. Even though it's
 a avoid success at all costs experimental research language. It just
 works. I mean to the extent that I'm willing to go with these silly
 test projects that try to prove something.
 
 The statements I made are not a property of D, they are a property of
 the lack of backing/maturity.  I'm sure when Haskell was at the same
 maturity stage as D, and if it had no financial backing/support
 contracts, it would be just as much of a gamble.

But Haskell developers have uninterruptedly received funding during the 
years.

 You seem to think that D is inherently flawed because of D, but it's
 simply too young for some tasks.  It's rapidly getting older, and I
 think in a year or two it will be mature enough for most projects.

I've heard this before. I've also heard the 64-bit port and many other 
things are done in a year/month or two. The fact is, you're overly 
optimistic and these are all bullshit. When I come back here in a year or 
two, I have full justification to laugh at your stupid claims.


Re: Is D still alive?

2011-01-28 Thread retard
Fri, 28 Jan 2011 16:14:27 +, Roman Ivanov wrote:

 == Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s
 article
 On 1/27/11 8:02 PM, Walter Bright wrote:
  I think one of the reasons DbC has not paid off is it still requires
  a significant investment of effort by the programmer. It's too easy
  to not bother.
 One issue with DbC is that its only significant advantage is its
 interplay with inheritance. Otherwise, scope() in conjunction with
 assert works with less syntactic overhead. So DbC tends to shine with
 large and deep hierarchies... but large and deep hierarchies are not
 that a la mode anymore.
 
 DbC opens many interesting possibilities if it's supported by tools
 other than just the compiler. MS has included it in .NET 4.0:
 
 http://research.microsoft.com/en-us/projects/contracts/

Mono 2.8 also seems to support those:

http://www.mono-project.com/news/archive/2010/Oct-06.html


Re: Is D still alive?

2011-01-28 Thread Andrei Alexandrescu

On 1/28/11 3:25 PM, retard wrote:

Fri, 28 Jan 2011 10:14:04 -0500, Steven Schveighoffer wrote:

I think as D matures
and hopefully gets more enterprise support, these problems will be
history.


This is the classic chicken or the egg problem. I'm not trying to be
unnecessarily mean. Enterprise support is something you desperately need.
Consider dsource, wiki4d, d's bugzilla etc. It's amazing how much 3rd
party money and effort affects the development. Luckily many things are
also free nowadays such as github.


I don't see any need to prove how well Haskell works. Even though it's
a avoid success at all costs experimental research language. It just
works. I mean to the extent that I'm willing to go with these silly
test projects that try to prove something.


The statements I made are not a property of D, they are a property of
the lack of backing/maturity.  I'm sure when Haskell was at the same
maturity stage as D, and if it had no financial backing/support
contracts, it would be just as much of a gamble.


But Haskell developers have uninterruptedly received funding during the
years.


That doesn't say much about anything. Some projects worked well with 
funding, some worked well with little or no initial funding.



You seem to think that D is inherently flawed because of D, but it's
simply too young for some tasks.  It's rapidly getting older, and I
think in a year or two it will be mature enough for most projects.


I've heard this before. I've also heard the 64-bit port and many other
things are done in a year/month or two. The fact is, you're overly
optimistic and these are all bullshit. When I come back here in a year or
two, I have full justification to laugh at your stupid claims.


I think if you do that I have full justification to send you back where 
you originally came from. Cut the crap for a change, will you. Thanks.



Andrei


Re: Is D still alive?

2011-01-28 Thread Walter Bright

Steven Schveighoffer wrote:

I can't buy enterprise support,


Of course you can!


Re: Is D still alive?

2011-01-28 Thread Jonathan M Davis
On Friday, January 28, 2011 17:16:54 Walter Bright wrote:
 Steven Schveighoffer wrote:
  I can't buy enterprise support,
 
 Of course you can!

Well, since Scotty hasn't been born yet, it's probably a bit premature... ;)

- Jonathan M Davis


Re: Is D still alive?

2011-01-28 Thread Walter Bright

Jonathan M Davis wrote:

On Friday, January 28, 2011 17:16:54 Walter Bright wrote:

Steven Schveighoffer wrote:

I can't buy enterprise support,

Of course you can!


Well, since Scotty hasn't been born yet, it's probably a bit premature... ;)


She canna take the power!


Re: Is D still alive?

2011-01-27 Thread bearophile
spir:

 Sorry, but you are wrong on this. I understand this sounds unsafe, but no. 
 Most 
 languages, I guess, just do that without any worry. In particular, I have 
 frequented python and Lua mailing lists for years without even reading once 
 about this beeing a misfeature (and indeed have never run into a bug because 
 of 
 this myself). It is simply the right semantics in 99.999% cases.

Thank you for raising this topic again. I have raised it probably more than one 
year ago, and all people around here were against this. This is not unsafe, 
it's actually safer than the current D behaviour. Python designers don't think 
this is a badly designed part of Python, they think this is as desired, and I 
too have never seen people complain about this being a bad or bug prone design.

An example of Python code:

s = abcdefg
upper = 20
s2 = s[2 : upper]
assert s2 == cdefg

Equivalent D2 code, if you forget to use the min() you are doomed:

import std.algorithm: min;
void main() {
string s = abcdefg;
int upper = 20;
string s2 = s[2 .. min($, upper)];
assert(s2 == cdefg);
}

The saturating nature of Python slice bounds is a safety net that's useful to 
avoid some troubles. The only good thing of the D2 design is that it performs 
less tests at runtime (it has no need to call min() in general), this is a bit 
positive in a system language, but in this case it has a cost in safety.

Bye,
bearophile


Re: Is D still alive?

2011-01-27 Thread retard
Wed, 26 Jan 2011 14:39:08 -0500, Steven Schveighoffer wrote:

 I will warn you, once you start using D, you will not want to use
 something else.  I cringe every day when I have to use PHP for work.

Nice trolling.


Re: Is D still alive?

2011-01-27 Thread retard
Wed, 26 Jan 2011 15:35:19 -0500, Steven Schveighoffer wrote:

 I'd suggest to anyone looking to use D for something really big to try
 and prove out how well D will perform for you by coding up bits of
 your whole project that you think will be needed.  Hopefully, you can do
 everything without hitting a mercy bug and then you can write your full
 project in it.

I think this reveals a lot about D. You still need to prove things. Or 
maybe the community members in general aren't very good developers; they 
can't see the potential of this language. The fact is, no matter what 
language you choose, if it isn't a complete joke, you can finish the 
project. (I'm assuming the community members here won't be writing any 
massive projects which are not possible to do in C++ or PHP or Java.)

I don't see any need to prove how well Haskell works. Even though it's a 
avoid success at all costs experimental research language. It just 
works. I mean to the extent that I'm willing to go with these silly test 
projects that try to prove something.


Re: Is D still alive?

2011-01-27 Thread retard
Wed, 26 Jan 2011 14:09:25 -0800, Walter Bright wrote:

 Trass3r wrote:
 But once you had a test drive, you just can't get out anymore.
 
 I've had more than one longtime C++ expert tell me that after using D
 for a while, then for work reasons get forced back into C++, just find
 themselves cringing every time they edit it.

I also got brainwashed by the C++ advocates years ago. However, I didn't 
need D to see how terrible writing C++ is. C++ sure is a powerful 
language and sometimes a necessary evil, but you don't really need very 
strong doses of more recent languages to see how much nicer everything 
else is.


Re: Is D still alive?

2011-01-27 Thread retard
Wed, 26 Jan 2011 23:33:54 +0100, Trass3r wrote:

 For me, D's killer features were string handling (slicing and
 appending/concatenation) and *no header files*. (No more header files!!
 Yay!!!). But auto is fantastic too though, I get sooo much use out of
 that.
 
 Getting rid of the pointer crap (proper arrays, bounds checking, classes
 as reference types,...) is definitely among the top 10 on my list.

Yep, those were to reasons that lured me to learn Java. However, those 
were not the reasons to learn D. The main reasons were RAII and Design by 
Contract. Even funnier, it took D about 9 years to fix the main bug in DbC 
(contract inheritance).


Re: Is D still alive?

2011-01-27 Thread Trass3r
retard Wrote:
 Or maybe the community members in general aren't very good developers; they 
 can't see the potential of this language. The fact is, no matter what 
 language you choose, if it isn't a complete joke, you can finish the 
 project

We have a lot of talented people in this community who've created awesome 
projects, I don't think it's a lack of skills.
Sometimes you hit bugs you just can't workaround.
In my case these included forward reference bugs where a simple exchange the 
declarations didn't work cause of cross-references and a nasty corrupt stack 
frame bug I couldn't reduce.


Re: Is D still alive?

2011-01-27 Thread Mafi

Am 27.01.2011 01:41, schrieb spir:

On 01/26/2011 11:33 PM, Trass3r wrote:

For me, D's killer features were string handling (slicing and
appending/concatenation) and *no header files*. (No more header files!!
Yay!!!). But auto is fantastic too though, I get sooo much use out of
that.


Getting rid of the pointer crap (proper arrays, bounds checking,
classes as
reference types,...) is definitely among the top 10 on my list.


Same here. But I would prefere slicing not to check upper bound, rather
just extend to the end. Or have a slicing variant do that.

Denis

What about a[1.. min(x, $)]. (min from std.alorithm)?

Mafi


Re: Is D still alive?

2011-01-27 Thread spir

On 01/27/2011 04:06 AM, Jonathan M Davis wrote:

Clearly, if you think that not being strict about indices is a good idea, you're
either dealing with very different circumstances than I have and/or you're 
coding
very differently. Regardless, since it's trivial to create a wrapper that does
what you want, I don't think that there's any reason to change how slicing
works.


I would agree with you be reasoning in pure air (I mean without having used 
both semantic versions). But concrete experience (of a huge number of 
programmers) in widely used programming languages demonstrate the opposite. 
Slice /upper/ bound checking is an idea that looks good in theory but is not in 
practice.


Denis
--
_
vita es estrany
spir.wikidot.com



Re: Is D still alive?

2011-01-27 Thread spir

On 01/27/2011 01:24 PM, Mafi wrote:

Am 27.01.2011 01:41, schrieb spir:

On 01/26/2011 11:33 PM, Trass3r wrote:

For me, D's killer features were string handling (slicing and
appending/concatenation) and *no header files*. (No more header files!!
Yay!!!). But auto is fantastic too though, I get sooo much use out of
that.


Getting rid of the pointer crap (proper arrays, bounds checking,
classes as
reference types,...) is definitely among the top 10 on my list.


Same here. But I would prefere slicing not to check upper bound, rather
just extend to the end. Or have a slicing variant do that.

Denis

What about a[1.. min(x, $)]. (min from std.alorithm)?


Yes, that's it.

Denis
--
_
vita es estrany
spir.wikidot.com



Re: Is D still alive?

2011-01-27 Thread Ulrik Mikaelsson
 You mean that if you give an index which is too large, it just uses $
 instead?
 That sounds seriously bug-prone to me. I'd much rather that it blew up and
 thus
 told me that my program had a bug in it rather than silently trying to
 work.

 Sorry, but you are wrong on this. I understand this sounds unsafe, but no.
 Most languages, I guess, just do that without any worry. In particular, I
 have frequented python and Lua mailing lists for years without even reading
 once about this beeing a misfeature (and indeed have never run into a bug
 because of this myself). It is simply the right semantics in 99.999% cases.

Isn't the real reason for this that bounds-checking is usually
completely turned-off in release-builds? Sounds like something that
could noticeably degrade runtime-performance for array-intensive code?


Re: Is D still alive?

2011-01-27 Thread bearophile
Ulrik Mikaelsson:

 Isn't the real reason for this that bounds-checking is usually
 completely turned-off in release-builds?

Bounds checking is turned off in release builds mostly because:
1) DMD is not able to infer  remove most bound checks at compile-time as the 
latest Oracle VM are able to do;
2) and because Walter  Co. believe such analysis isn't able to remove most 
bound checks anyway (I have not seen this hypothesis confirmed yet).


 Sounds like something that could noticeably degrade runtime-performance
 for array-intensive code?

The safety net we are talking about is present only at the right bound of a 
slicing syntax (it's not performed in normal array indexing), and it consists 
in a single min(x, $) operation, that's one branch. So it slows down code, but 
only a bit. And in many of such situations you probably need to add a min(x, $) 
manually in the code anyway, so the overhead is limited.

Bye,
bearophile


Re: Is D still alive?

2011-01-27 Thread Jonathan M Davis
On Thursday, January 27, 2011 01:34:04 bearophile wrote:
 spir:
  Sorry, but you are wrong on this. I understand this sounds unsafe, but
  no. Most languages, I guess, just do that without any worry. In
  particular, I have frequented python and Lua mailing lists for years
  without even reading once about this beeing a misfeature (and indeed
  have never run into a bug because of this myself). It is simply the
  right semantics in 99.999% cases.
 
 Thank you for raising this topic again. I have raised it probably more than
 one year ago, and all people around here were against this. This is not
 unsafe, it's actually safer than the current D behaviour. Python designers
 don't think this is a badly designed part of Python, they think this is as
 desired, and I too have never seen people complain about this being a bad
 or bug prone design.
 
 An example of Python code:
 
 s = abcdefg
 upper = 20
 s2 = s[2 : upper]
 assert s2 == cdefg
 
 Equivalent D2 code, if you forget to use the min() you are doomed:
 
 import std.algorithm: min;
 void main() {
 string s = abcdefg;
 int upper = 20;
 string s2 = s[2 .. min($, upper)];
 assert(s2 == cdefg);
 }
 
 The saturating nature of Python slice bounds is a safety net that's useful
 to avoid some troubles. The only good thing of the D2 design is that it
 performs less tests at runtime (it has no need to call min() in general),
 this is a bit positive in a system language, but in this case it has a
 cost in safety.

I don't think that you stand much chance of convincing a crowd using a system 
programming language that having the compiler adjust your out of bound indices 
to be in bounds is  good idea. While it may be a great idea in some 
circumstances, it generally smacks of lax programming. And since it makes 
slicing more expensive, it would be a feature that would definitely need to 
pull 
its weight. And I don't see how it possibly could. It's trivial to add a 
function which will return a slice which is laxly sliced in the manner that 
you're looking for. And using min as you're showing isn't exactly hard.

Yes, you may get bugs when porting code from Python, but I don't think that 
porting Python code has ever been one of the major concerns of D's language 
design. Really, it's the silently breaking stuff when porting C and C++ code 
which has been the concern.

What we have is efficient, and I expect that most people around here think that 
it's the correct solution. If you want lax slicing, it's easy to get by using 
min or a wrapper function. So, I see no reason to make any language changes - 
not to mention it would likely conflict with TDPL to make such a change.

- Jonathan M Davis


Re: Is D still alive?

2011-01-27 Thread Andrej Mitrovic
Honestly, I think this would just encourage writing sloppy code.

Using min(x, $) explicitly informs the reader of the code of exactly
what happens. It's harder to tell when it's implicit. Not only that,
but it can introduce bugs in your code - because while you might use
any upper bound, you're still not allowed to index beyond the length
of the array. Imagine this could was accepted by DMD:

void main()
{
auto userArgs = [foo];  // runtime arguments by some user input

auto firstTwo = userArgs[0..2];  // accepted by the new language change,
  // implicitly
changes 2 to min(2, $)

// more code here

firstTwo[1] = test;  // oops!
}


Re: Is D still alive?

2011-01-27 Thread Jonathan M Davis
On Thursday, January 27, 2011 09:47:44 bearophile wrote:
 Ulrik Mikaelsson:
  Isn't the real reason for this that bounds-checking is usually
  completely turned-off in release-builds?
 
 Bounds checking is turned off in release builds mostly because:
 1) DMD is not able to infer  remove most bound checks at compile-time as
 the latest Oracle VM are able to do; 2) and because Walter  Co. believe
 such analysis isn't able to remove most bound checks anyway (I have not
 seen this hypothesis confirmed yet).
 
  Sounds like something that could noticeably degrade runtime-performance
  for array-intensive code?
 
 The safety net we are talking about is present only at the right bound of a
 slicing syntax (it's not performed in normal array indexing), and it
 consists in a single min(x, $) operation, that's one branch. So it slows
 down code, but only a bit. And in many of such situations you probably
 need to add a min(x, $) manually in the code anyway, so the overhead is
 limited.

Personally, I have _never_ needed to add a min call like that. So, while _you_ 
may think that it's a common thing to do (and it may be that it is in your 
code), that doesn't mean that that's generally true.

- Jonathan M Davis


Re: Is D still alive?

2011-01-27 Thread bearophile
Andrej Mitrovic:

 Honestly, I think this would just encourage writing sloppy code.

I don't believe this, on the other hand I believe the current behaviour is 
bug-prone.


 Using min(x, $) explicitly informs the reader of the code of exactly
 what happens.

Right. The problem is that in some cases you may forget to add that min(x, $).


 It's harder to tell when it's implicit.

Slicing syntax is used all the time in both Python and D code, so the Python 
and D programmers learn quickly and keep in mind what it does. Implicit 
behaviours are a problem when they are uncommon things, or library functions, 
etc, much less when they are built-in safety nets you use every five lines of 
code :-)


Not only that,
 but it can introduce bugs in your code - because while you might use
 any upper bound, you're still not allowed to index beyond the length
 of the array.

Writing hundreds of thousands of lines of Python code I've seen that the 
saturating semantics we are talking about is not bug-prone (in fact it avoids 
some bugs).


 Imagine this could was accepted by DMD:
 
 void main()
 {
 auto userArgs = [foo];  // runtime arguments by some user input
 
 auto firstTwo = userArgs[0..2];  // accepted by the new language change,
   // implicitly
 changes 2 to min(2, $)
 
 // more code here
 
 firstTwo[1] = test;  // oops!
 }

Programmers just quickly learn that indexes and slices have a bit different 
semantics.

Bye,
bearophile


Re: Is D still alive?

2011-01-27 Thread Andrej Mitrovic
This *code* was accepted, not *could*.


Re: Is D still alive?

2011-01-27 Thread bearophile
Jonathan M Davis:

 I don't think that you stand much chance of convincing a crowd using a system 
 programming language that having the compiler adjust your out of bound 
 indices 
 to be in bounds is  good idea.

Technically here we are talking about slicing bounds, and not indexes. But you 
are right, there's no hope I will change minds here. On the other hand my duty 
is to show the ideas I believe are right/better, because I care for this 
language.

Bye,
bearophile


Re: Is D still alive?

2011-01-27 Thread Andrej Mitrovic
On 1/27/11, bearophile bearophileh...@lycos.com wrote:
 Programmers just quickly learn that indexes and slices have a bit different
 semantics.

Right, programmers can easily adapt to slightly different semantics in
related areas of the language, I mean C++ is known for being very easy
to learn for exactly that reason. (Sarcasm alert!).


Re: Is D still alive?

2011-01-27 Thread Daniel Gibson
Am 27.01.2011 19:25, schrieb bearophile:
 
 Programmers just quickly learn that indexes and slices have a bit different 
 semantics.
 

And I guess this holds true for programmers used to python as well?
So they should have no problem with learning to use foo = blah[i..min($,i+n)]
instead of foo = blah[i..(i+n)] ;-)

 Bye,
 bearophile

Cheers,
- Daniel


Re: Is D still alive?

2011-01-27 Thread Walter Bright

retard wrote:
I also got brainwashed by the C++ advocates years ago. However, I didn't 
need D to see how terrible writing C++ is. C++ sure is a powerful 
language and sometimes a necessary evil, but you don't really need very 
strong doses of more recent languages to see how much nicer everything 
else is.


What D unique shows is, however, that one can do C++ like things without the C++ 
issues, in other words, the problems C++ has are not necessary in order to get 
the powerful things C++ can do.


Re: Is D still alive?

2011-01-27 Thread Walter Bright

retard wrote:
The main reasons were RAII and Design by 
Contract. Even funnier, it took D about 9 years to fix the main bug in DbC 
(contract inheritance).


The reason that took so long was that few people were using DbC effectively, so 
it was a low priority. I originally had high hopes that DbC would produce 
dramatic improvements in code quality, but the real world results were 
disappointing.


Re: Is D still alive?

2011-01-27 Thread Andrei Alexandrescu

On 1/27/11 1:26 PM, Walter Bright wrote:

retard wrote:

I also got brainwashed by the C++ advocates years ago. However, I
didn't need D to see how terrible writing C++ is. C++ sure is a
powerful language and sometimes a necessary evil, but you don't really
need very strong doses of more recent languages to see how much nicer
everything else is.


What D unique shows is, however, that one can do C++ like things without
the C++ issues, in other words, the problems C++ has are not necessary
in order to get the powerful things C++ can do.


Well put. BTW I'm glad to see retard back in action. A small debate of 
bearophile about bounds checking and whatnot, Bruno doing his monthly 
bulk answering to posts, retard being down on D... it all starts looking 
like a good day on digitalmars.D :o).


Andrei


Re: Is D still alive?

2011-01-27 Thread bearophile
Walter:

The reason that took so long was that few people were using DbC effectively, 
so it was a low priority. I originally had high hopes that DbC would produce 
dramatic improvements in code quality, but the real world results were 
disappointing.

After many years and many failed hopes, I think there is no silver bullet in 
programming, so maybe nothing is able to produce dramatic improvements in code 
quality.

But even if this is true, some things are able to improve coding a bit, like 
unit testing, a well semantically defined language, syntax coloring, quick 
compile-run cycles, OOP for certain kinds of programs, DbC, and so on. Each of 
such things improve the situation only a little, but such improvements pile up 
and most programmers when have tried them don't want to go back to miss those 
things.

I have learnt to know and use DbC on D, and while it has not caused dramatic 
improvements in my code, I like to use it now and then, it has found some of 
the bugs in my code and more. I am appreciating D DbC enough that sometimes I 
miss it when I write Python code, so sometimes when I write OOP Python code, I 
add home-made class invariants and I call them manually from methods. In one 
situation this has allowed me to finish some hairy Python code in a very tight 
time schedule.

Regading D implementation of DbC I'd like:
- DMD to use a not-release build of Phobos when I compile my D code in 
not-release build (or some similar solution). So Phobos will be free to use 
asserts instead of enforce in many more situations (even if not in all 
situations). This will allow more inlining, allow to use nothrow tags more 
frequently, and avoid some performance problems currently present (confirmed by 
timings and profiling) in Phobos caused by enforces;
- To see some acceptable solution for the old (pre-state) problem. On this 
there are some ideas, but I don't think there is some accepted proposal yet. 
This is not an indispensable feature of DbC, but it allows to increase its 
power and applicability significantly enough (and designers of C#4 DbC has 
found ways to solve this problem, so I presume there is some way to solve it in 
D too);
- To see some Bugzilla DbC bugs removed. One or more of them is related to how 
const/immutable badly interacts with the result return value used by 
out(result){}.

Bye and thank you,
bearophile


Re: Is D still alive?

2011-01-27 Thread Walter Bright

bearophile wrote:

Walter:


The reason that took so long was that few people were using DbC
effectively, so it was a low priority. I originally had high hopes that DbC
would produce dramatic improvements in code quality, but the real world
results were disappointing.


After many years and many failed hopes, I think there is no silver bullet in
programming, so maybe nothing is able to produce dramatic improvements in
code quality.

But even if this is true, some things are able to improve coding a bit, like
unit testing, a well semantically defined language, syntax coloring, quick
compile-run cycles, OOP for certain kinds of programs, DbC, and so on. Each
of such things improve the situation only a little, but such improvements
pile up and most programmers when have tried them don't want to go back to
miss those things.


Unit testing has produced a dramatic improvement in coding.


Re: Is D still alive?

2011-01-27 Thread Tomek Sowiński
Walter Bright napisał:

 bearophile wrote:
  Walter:
  
  The reason that took so long was that few people were using DbC
  effectively, so it was a low priority. I originally had high hopes that DbC
  would produce dramatic improvements in code quality, but the real world
  results were disappointing.
  
  After many years and many failed hopes, I think there is no silver bullet in
  programming, so maybe nothing is able to produce dramatic improvements in
  code quality.
  
  But even if this is true, some things are able to improve coding a bit, like
  unit testing, a well semantically defined language, syntax coloring, quick
  compile-run cycles, OOP for certain kinds of programs, DbC, and so on. Each
  of such things improve the situation only a little, but such improvements
  pile up and most programmers when have tried them don't want to go back to
  miss those things.
 
 Unit testing has produced a dramatic improvement in coding.

Yes, it's big. Funny that it's not really a technical change but a cultural one 
-- D just leaves no excuses to even the most stone-age programmers not to test 
their code.

-- 
Tomek



Re: Is D still alive?

2011-01-27 Thread Walter Bright

Tomek Sowiński wrote:

Walter Bright napisał:


bearophile wrote:

Walter:

The reason that took so long was that few people were using DbC 
effectively, so it was a low priority. I originally had high hopes that

DbC would produce dramatic improvements in code quality, but the real
world results were disappointing.

After many years and many failed hopes, I think there is no silver bullet
in programming, so maybe nothing is able to produce dramatic
improvements in code quality.

But even if this is true, some things are able to improve coding a bit,
like unit testing, a well semantically defined language, syntax coloring,
quick compile-run cycles, OOP for certain kinds of programs, DbC, and so
on. Each of such things improve the situation only a little, but such
improvements pile up and most programmers when have tried them don't want
to go back to miss those things.

Unit testing has produced a dramatic improvement in coding.


Yes, it's big. Funny that it's not really a technical change but a cultural
one -- D just leaves no excuses to even the most stone-age programmers not to
test their code.


I was talking about this with Andrei the other day. D's focus on making it easy 
to do things the right way has paid off handsomely, though this is not at all 
obvious from reading a feature list. It only becomes clear when you use it for a 
while, and then try to go back to the way you were doing things before.


I think one of the reasons DbC has not paid off is it still requires a 
significant investment of effort by the programmer. It's too easy to not bother.


Re: Is D still alive?

2011-01-27 Thread Andrej Mitrovic
On 1/28/11, Walter Bright newshou...@digitalmars.com wrote:
 I think one of the reasons DbC has not paid off is it still requires a
 significant investment of effort by the programmer. It's too easy to not
 bother.

Another way to look at it is that programmers are enjoying the safety
of using regular D so much as to not even think about using DbC. The
language does guarantee a lot more than C++. The irony here is that
C++ is the one that desperately needs integrated DbC, and yet D, the
safer language, is the one providing DbC for free. :p

In other words, we get the candy and the cake.


Re: Is D still alive?

2011-01-27 Thread Andrei Alexandrescu

On 1/27/11 8:02 PM, Walter Bright wrote:

Tomek Sowiński wrote:

Walter Bright napisał:


bearophile wrote:

Walter:


The reason that took so long was that few people were using DbC
effectively, so it was a low priority. I originally had high hopes
that
DbC would produce dramatic improvements in code quality, but the real
world results were disappointing.

After many years and many failed hopes, I think there is no silver
bullet
in programming, so maybe nothing is able to produce dramatic
improvements in code quality.

But even if this is true, some things are able to improve coding a bit,
like unit testing, a well semantically defined language, syntax
coloring,
quick compile-run cycles, OOP for certain kinds of programs, DbC,
and so
on. Each of such things improve the situation only a little, but such
improvements pile up and most programmers when have tried them don't
want
to go back to miss those things.

Unit testing has produced a dramatic improvement in coding.


Yes, it's big. Funny that it's not really a technical change but a
cultural
one -- D just leaves no excuses to even the most stone-age programmers
not to
test their code.


I was talking about this with Andrei the other day. D's focus on making
it easy to do things the right way has paid off handsomely, though this
is not at all obvious from reading a feature list. It only becomes clear
when you use it for a while, and then try to go back to the way you were
doing things before.


Although this might as well be true, I generally try to avoid such 
arguments. The problem with it is it's non-falsifiable 
(http://en.wikipedia.org/wiki/Falsifiability) so it has a certain stench 
coming with it.


I've seen such a claim in Go fora: you know, once you get to really use 
Go, you won't feel the need for generics. Meh.


I try to _never_ use such an argument. If I'm to convince anyone that D 
rocks, it won't be by means of unfalsifiable statements. It will be by 
showing code that knocks your socks off. The kind of code that makes you 
think: If I'm to write that in language X, I need to give away 
desirable traits A, B, and C. Damn!



I think one of the reasons DbC has not paid off is it still requires a
significant investment of effort by the programmer. It's too easy to not
bother.


One issue with DbC is that its only significant advantage is its 
interplay with inheritance. Otherwise, scope() in conjunction with 
assert works with less syntactic overhead. So DbC tends to shine with 
large and deep hierarchies... but large and deep hierarchies are not 
that a la mode anymore.



Andrei


Re: Is D still alive?

2011-01-27 Thread Ellery Newcomer

On 01/27/2011 05:41 PM, Walter Bright wrote:


Unit testing has produced a dramatic improvement in coding.


agreed. unit testing (maybe with dbc, I don't remember) was the only 
reason I noticed issue 5364.


Re: Is D still alive?

2011-01-27 Thread bearophile
Andrej Mitrovic:

 Another way to look at it is that programmers are enjoying the safety
 of using regular D so much as to not even think about using DbC.

This may be a case of Risk homeostasis:
http://en.wikipedia.org/wiki/Risk_homeostasis
But maybe it's mostly a matter of getting used to D. Once you get used to a 
safer language, you want even more and something better. You want the frosting 
too on your cake :-) And probably D is not the end of the line in the evolution 
of C-derived languages. There is space for improvements, like having notnull 
reference types, typestates, etc. For example, it will be interesting to see 
where the Rust language goes.

Bye,
bearophile


Re: Is D still alive?

2011-01-27 Thread Walter Bright

Andrei Alexandrescu wrote:

On 1/27/11 8:02 PM, Walter Bright wrote:

I was talking about this with Andrei the other day. D's focus on making
it easy to do things the right way has paid off handsomely, though this
is not at all obvious from reading a feature list. It only becomes clear
when you use it for a while, and then try to go back to the way you were
doing things before.


Although this might as well be true, I generally try to avoid such 
arguments. The problem with it is it's non-falsifiable 
(http://en.wikipedia.org/wiki/Falsifiability) so it has a certain stench 
coming with it.


I've seen such a claim in Go fora: you know, once you get to really use 
Go, you won't feel the need for generics. Meh.


I try to _never_ use such an argument. If I'm to convince anyone that D 
rocks, it won't be by means of unfalsifiable statements.


I agree it's a worthless argument to use to try and convince people to give D a 
try. But for experienced D users, it is an interesting point.



It will be by 
showing code that knocks your socks off. The kind of code that makes you 
think: If I'm to write that in language X, I need to give away 
desirable traits A, B, and C. Damn!



I think one of the reasons DbC has not paid off is it still requires a
significant investment of effort by the programmer. It's too easy to not
bother.


One issue with DbC is that its only significant advantage is its 
interplay with inheritance. Otherwise, scope() in conjunction with 
assert works with less syntactic overhead. So DbC tends to shine with 
large and deep hierarchies... but large and deep hierarchies are not 
that a la mode anymore.


Yes, you might be right.


Re: Is D still alive?

2011-01-27 Thread Jonathan M Davis
On Thursday 27 January 2011 19:29:59 Walter Bright wrote:
 Andrei Alexandrescu wrote:
  One issue with DbC is that its only significant advantage is its
  interplay with inheritance. Otherwise, scope() in conjunction with
  assert works with less syntactic overhead. So DbC tends to shine with
  large and deep hierarchies... but large and deep hierarchies are not
  that a la mode anymore.
 
 Yes, you might be right.

I generally end up using unit tests to verify that stuff works correctly and 
then 
throw exceptions on bad input. So while I like having DbC built in, I don't end 
up using it all that much. It's prim,arily invariant that I end up using 
though, 
and that's harder to do inside of the member functions.

- Jonathan M Davis


Re: Is D still alive?

2011-01-27 Thread bearophile
Andrei:

 One issue with DbC is that its only significant advantage is its 
 interplay with inheritance. Otherwise, scope() in conjunction with 
 assert works with less syntactic overhead. So DbC tends to shine with 
 large and deep hierarchies... but large and deep hierarchies are not 
 that a la mode anymore.

Have you tried to use class invariants manually? It's easy to forget its calls, 
and the calls clutter the code, and are not handy to write. So I don't agree.

Bye,
bearophile


Re: Is D still alive?

2011-01-27 Thread darenw
the problems C++ has are not necessary in order to get
the powerful things C++ can do.

That thought makes me happy!


Is D still alive?

2011-01-26 Thread Fab
Dear D community,
My name is Fabian and I used to code C++ and Delphi. But a few month ago I've
got a book about D as a present. All in all D sounds very interesting ... but
- the big but - is D still alive?
Are there usable and stable GUI-Toolkits which are actually under development?
Are there any continued database projects?

So - is there any reason to change to D? I would ... I really would change if
there were more points than a nice language. I don't buy a good car if it's to
expensive - so: is D as precious as its pretend to be?

Greetings
Fabian

PS: I hope you can understand my bad English.


Re: Is D still alive?

2011-01-26 Thread Steven Schveighoffer

On Wed, 26 Jan 2011 14:25:10 -0500, Fab fab-cod...@web.de wrote:


Dear D community,
My name is Fabian and I used to code C++ and Delphi. But a few month ago  
I've
got a book about D as a present. All in all D sounds very interesting  
... but

- the big but - is D still alive?


Very much so.  D2 is being actively developed.  D1 is not, but Tango is  
being actively developed (which works with D1).


Are there usable and stable GUI-Toolkits which are actually under  
development?


I don't have personal experience with any of the current GUI projects, but  
from what I've read, many of them are usable.  Whether they are actively  
developed, I'm not sure.


See many of them here: http://prowiki.org/wiki4d/wiki.cgi?GuiLibraries


Are there any continued database projects?


AFAIK, there is very little DB support (which will definitely need to be  
addressed before D is considered a complete language) for D2.  However,  
you *always* have support via C bindings.  D has zero-overhead binding to  
C functions, all you need to do is port the declarations to D.


If you are using D1, there are several projects, I don't think many of  
them are up to date:


http://prowiki.org/wiki4d/wiki.cgi?DatabaseBindings

So - is there any reason to change to D? I would ... I really would  
change if
there were more points than a nice language. I don't buy a good car if  
it's to

expensive - so: is D as precious as its pretend to be?


I will warn you, once you start using D, you will not want to use  
something else.  I cringe every day when I have to use PHP for work.


I would say it is not ready for prime-time yet.  It has a way to go, but  
some have managed to build pretty impressive applications from it.  So it  
would depend on your application.


-Steve


Re: Is D still alive?

2011-01-26 Thread Steven Schveighoffer
On Wed, 26 Jan 2011 14:39:08 -0500, Steven Schveighoffer  
schvei...@yahoo.com wrote:



On Wed, 26 Jan 2011 14:25:10 -0500, Fab fab-cod...@web.de wrote:


Dear D community,
My name is Fabian and I used to code C++ and Delphi. But a few month  
ago I've
got a book about D as a present. All in all D sounds very interesting  
... but

- the big but - is D still alive?


Very much so.  D2 is being actively developed.  D1 is not, but Tango is  
being actively developed (which works with D1).


I should clarify, D1 is not getting any new features, but it is getting  
bug fixes.


-Steve


Re: Is D still alive?

2011-01-26 Thread Fab
Thank you for your answer.

But is there also a productive IDE for 'the daily use'?
I'm used to code Delphi and there is also everything in the IDE I need to code
full featured applications.
I don't need a GUI-Designer (but it would be nice - maybe something like the
QT-Designer) but a IDE which supports graphical debugging is vital for me.


Re: Is D still alive?

2011-01-26 Thread Fab
In addition you have to know for what I want to use D.
I want to code little games (2D: Jump'n'Run) and I want to use D for scholastic
use - drawing plots, calculating functions, ... and so on.

You see: I want to use D for private and for scholastic purposes.


Re: Is D still alive?

2011-01-26 Thread Steven Schveighoffer

On Wed, 26 Jan 2011 14:54:06 -0500, Fab fab-cod...@web.de wrote:


Thank you for your answer.

But is there also a productive IDE for 'the daily use'?
I'm used to code Delphi and there is also everything in the IDE I need  
to code

full featured applications.
I don't need a GUI-Designer (but it would be nice - maybe something like  
the
QT-Designer) but a IDE which supports graphical debugging is vital for  
me.


There are several projects in progress for D IDEs, at various levels of  
maturity, including one that integrates D into visual studio.


http://prowiki.org/wiki4d/wiki.cgi?EditorSupport

Note, you may be able to find answers to other questions on the D wiki.

-Steve


Re: Is D still alive?

2011-01-26 Thread Nick Sabalausky
Steven Schveighoffer schvei...@yahoo.com wrote in message 
news:op.vpxkvij9eav7ka@steve-laptop...
 On Wed, 26 Jan 2011 14:25:10 -0500, Fab fab-cod...@web.de wrote:

 Are there any continued database projects?

 AFAIK, there is very little DB support (which will definitely need to be 
 addressed before D is considered a complete language) for D2.  However, 
 you *always* have support via C bindings.  D has zero-overhead binding to 
 C functions, all you need to do is port the declarations to D.

 If you are using D1, there are several projects, I don't think many of 
 them are up to date:

 http://prowiki.org/wiki4d/wiki.cgi?DatabaseBindings


Adam Ruppe and Piotr Szturmaj have recently been working on some database 
stuff. See the recent thread Can your programming language do this?


 So - is there any reason to change to D? I would ... I really would 
 change if
 there were more points than a nice language. I don't buy a good car if 
 it's to
 expensive - so: is D as precious as its pretend to be?

 I will warn you, once you start using D, you will not want to use 
 something else.  I cringe every day when I have to use PHP for work.


So very true :)

 I would say it is not ready for prime-time yet.  It has a way to go, but 
 some have managed to build pretty impressive applications from it.  So it 
 would depend on your application.


Personally, I think that even though D still has some things to be worked 
out, I think it's *still* far better than any of the other more mature 
languages.





Re: Is D still alive?

2011-01-26 Thread Nick Sabalausky
Fab fab-cod...@web.de wrote in message 
news:ihpu4u$24bp$1...@digitalmars.com...
 Thank you for your answer.

 But is there also a productive IDE for 'the daily use'?
 I'm used to code Delphi and there is also everything in the IDE I need to 
 code
 full featured applications.
 I don't need a GUI-Designer (but it would be nice - maybe something like 
 the
 QT-Designer) but a IDE which supports graphical debugging is vital for me.

I use Programmer's Notepad 2 which does everything I care about and is very 
nicely lean and responsive. I'm not sure if it does debugging though, I've 
never tried. If you prefer the bigger (bloated, IMO) IDE's then there are 
two D pulgins for Eclipse (Descent is the older more advanced one, and 
there's another, I forget the name, that's newer and being actively 
developed). There is also stuff out there to make D work well with Visual 
Studio (see the D.announcements newsgroup).




Re: Is D still alive?

2011-01-26 Thread Nick Sabalausky
Fab fab-cod...@web.de wrote in message 
news:ihpv7r$272q$1...@digitalmars.com...
 In addition you have to know for what I want to use D.
 I want to code little games (2D: Jump'n'Run) and I want to use D for 
 scholastic
 use - drawing plots, calculating functions, ... and so on.

 You see: I want to use D for private and for scholastic purposes.

For games, there are SDL and SFML bindings for D. You may also want to look 
at the Derelict project which includes bindings for a bunch of useful 
libraries. For plots/charts/graphs/etc, you should look at the 
humorously-named Plot2Kill library.

Personally, I think D would be great for small games, private uses and 
scholastic uses. In fact, even *way* back *before* D1, Kenta Cho made some 
very good freeware games in D, like Torus Trooper and TUMIKI Fighters (ie, 
the original version of Blast Works).

The areas where D is still a little behind are: If you *need* to be able to 
compile *native* 64-bit code (32-bit will still work on a 64-bit machine/OS, 
of course). If you need to create shared dynamic libraries (ie, .dll and 
.so). If you need to link with Windows C .obj and .lib files that were 
compiled with anything other than DMC. If you need to use a graphical 
GUI-builder tool. Or if you want to use something similar to Rails or Django 
to create web apps.





Re: Is D still alive?

2011-01-26 Thread Steven Schveighoffer

On Wed, 26 Jan 2011 15:11:06 -0500, Nick Sabalausky a@a.a wrote:


Steven Schveighoffer schvei...@yahoo.com wrote in message
news:op.vpxkvij9eav7ka@steve-laptop...

On Wed, 26 Jan 2011 14:25:10 -0500, Fab fab-cod...@web.de wrote:


Are there any continued database projects?


AFAIK, there is very little DB support (which will definitely need to be
addressed before D is considered a complete language) for D2.  However,
you *always* have support via C bindings.  D has zero-overhead binding  
to

C functions, all you need to do is port the declarations to D.

If you are using D1, there are several projects, I don't think many of
them are up to date:

http://prowiki.org/wiki4d/wiki.cgi?DatabaseBindings



Adam Ruppe and Piotr Szturmaj have recently been working on some database
stuff. See the recent thread Can your programming language do this?


I have ignored that thread (I sometimes just ignore threads because they  
start out uninteresting, or become uninteresting, and then I miss out on  
some good stuff!)


I'll have to take a look, D2 really does need a DB interface -- badly.


I would say it is not ready for prime-time yet.  It has a way to go, but
some have managed to build pretty impressive applications from it.  So  
it

would depend on your application.



Personally, I think that even though D still has some things to be worked
out, I think it's *still* far better than any of the other more mature
languages.


It all seems really good until you hit an issue that cannot be worked  
around -- like a compiler error or a misdesigned feature.  I call these  
'mercy' problems, because you are then at the complete mercy of someone  
else.  If you have a deadline, or have a complete stoppage in work, you  
really have little choice but to move onto another language or abandon the  
project.  Dcollections sat idle for about a year because of a problem like  
this.


That would scare the crap out of me if I was a project manager trying to  
decide whether to use D or not.  I've had first hand experience with using  
a product (from Microsoft) that failed so badly that we needed to have  
them fix it (which of course took about 3 months).  A year later, they  
discontinued the product, and we had even more problems.  I wrote my own  
system to replace it from scratch, and everything works so much better now  
(and uses less memory!).  Not to mention, we have all source, so it's  
always possible to fix.  A small part of it is written in D1/Tango and  
performs beautifully :)  But I'd probably not rewrite the server in D  
(currently in C#) because it's lacking too much support for a lot of the  
things I do with it.


I'd suggest to anyone looking to use D for something really big to try and  
prove out how well D will perform for you by coding up bits of your  
whole project that you think will be needed.  Hopefully, you can do  
everything without hitting a mercy bug and then you can write your full  
project in it.


There are also really scary possibilities that I've seen happen to a few  
poor souls -- like hard-to-solve OPTLINK bugs.  Those may creep up at any  
time.  Really, I just feel that D2's tools are not mature enough, or have  
enough support to trust a professional product on it -- yet.  I'm sure  
this will change in the future.


BTW, I plan to write a semi-professional project in D2 in the near future,  
but I'm 1) willing to take the risks 2) have no deadline and 3) not  
depending on this project for a living.


-Steve


Re: Is D still alive?

2011-01-26 Thread Trass3r

and I want to use D for scholastic use -
drawing plots, calculating functions, ... and so on.


Well nothing can beat Matlab for quick plots n stuff.
(Speaking of which, of course you can write plugins for it with D:  
https://bitbucket.org/trass3r/matd)




You see: I want to use D for private and for scholastic purposes.


D's just fine for private stuff :)


Re: Is D still alive?

2011-01-26 Thread Trass3r

But is there also a productive IDE for 'the daily use'?


I still use Descent for Eclipse. It isn't maintained anymore but it's the  
only one with a copy of the dmd frontend with some semantic analysis.
VisualD on Windows provides some basic auto-completion and goto definition  
etc via compiler generated json files.



I don't need a GUI-Designer (but it would be nice - maybe something like  
the QT-Designer)


I think QtD supports the Qt GUI Designer.



but a IDE which supports graphical debugging is vital for me


Then you should use VisualD on Windows. It includes cv2pdb which makes it  
possible to debug D apps with VisualStudio without much pain.


Re: Is D still alive?

2011-01-26 Thread Trass3r

But a few month ago I've got a book about D as a present


Nice, the word is spreading.


So - is there any reason to change to D? I would ... I really would  
change

if there were more points than a nice language.

I don't buy a good car if it's too expensive


But once you had a test drive, you just can't get out anymore.


Re: Is D still alive?

2011-01-26 Thread Walter Bright

Trass3r wrote:

But once you had a test drive, you just can't get out anymore.


I've had more than one longtime C++ expert tell me that after using D for a 
while, then for work reasons get forced back into C++, just find themselves 
cringing every time they edit it.


Re: Is D still alive?

2011-01-26 Thread Andrei Alexandrescu

On 1/26/11 4:09 PM, Walter Bright wrote:

Trass3r wrote:

But once you had a test drive, you just can't get out anymore.


I've had more than one longtime C++ expert tell me that after using D
for a while, then for work reasons get forced back into C++, just find
themselves cringing every time they edit it.


As much as I cringe when I see 
http://d.puremagic.com/issues/show_bug.cgi?id=5493


Andrei


Re: Is D still alive?

2011-01-26 Thread Jonathan M Davis
On Wednesday, January 26, 2011 14:09:25 Walter Bright wrote:
 Trass3r wrote:
  But once you had a test drive, you just can't get out anymore.
 
 I've had more than one longtime C++ expert tell me that after using D for a
 while, then for work reasons get forced back into C++, just find themselves
 cringing every time they edit it.

LOL. Yeah. There's just so many little things that D improves on that when 
you're stuck in C++ land, you're constantly running into little things that you 
miss having or are annoyed to have to deal with. auto has probably been the 
biggest one for me, though slicing isn't far behind. At least auto will be in 
C++ 0x...

I dream of the day that I'll be able to use D all of the time and not have to 
worry about C++ anymore.

- Jonathan M Davis


Re: Is D still alive?

2011-01-26 Thread Nick Sabalausky
Walter Bright newshou...@digitalmars.com wrote in message 
news:ihq66j$2llc$1...@digitalmars.com...
 Trass3r wrote:
 But once you had a test drive, you just can't get out anymore.

 I've had more than one longtime C++ expert tell me that after using D for 
 a while, then for work reasons get forced back into C++, just find 
 themselves cringing every time they edit it.

Heh, D is programmer crack :)

I use Haxe a lot and it's by no means a bad langauge overall, as far as 
languages go. Beats the snot out of PHP and ActionScript. But I frequently 
find myself cursing at it for not being able to handle things that I take 
for granted in D. Heck, just the other day I was going nuts because I had 5 
objects that I needed to do some common trivial setup to, and there was *no* 
way to do it in a loop. No change I made ever stuck - it was as if the 
objects forgot they were reference types. Nothing worked. At least a full 
half-hour later, maybe a full hour, I ended up just copy-pasting the same 
damn code 5 times, once for each object. In D, I would have stuck them all 
in an array, typed foreach..., and been done in under a minute.




Re: Is D still alive?

2011-01-26 Thread Trass3r

Trass3r wrote:

But once you had a test drive, you just can't get out anymore.


I've had more than one longtime C++ expert tell me that after using D  
for a while, then for work reasons get forced back into C++, just find  
themselves cringing every time they edit it.


Yep, like being thrown back to the Stone Age.


Re: Is D still alive?

2011-01-26 Thread Trass3r

On 1/26/11 4:09 PM, Walter Bright wrote:

Trass3r wrote:

But once you had a test drive, you just can't get out anymore.


I've had more than one longtime C++ expert tell me that after using D
for a while, then for work reasons get forced back into C++, just find
themselves cringing every time they edit it.


As much as I cringe when I see  
http://d.puremagic.com/issues/show_bug.cgi?id=5493


Andrei


Well, coding in D is like being Indiana: you might run into nasty traps  
here and there but you just can't be a vanilla guy anymore ;)


Re: Is D still alive?

2011-01-26 Thread Nick Sabalausky
Jonathan M Davis jmdavisp...@gmx.com wrote in message 
news:mailman.973.1296080233.4748.digitalmar...@puremagic.com...
 On Wednesday, January 26, 2011 14:09:25 Walter Bright wrote:
 Trass3r wrote:
  But once you had a test drive, you just can't get out anymore.

 I've had more than one longtime C++ expert tell me that after using D for 
 a
 while, then for work reasons get forced back into C++, just find 
 themselves
 cringing every time they edit it.

 LOL. Yeah. There's just so many little things that D improves on that when
 you're stuck in C++ land, you're constantly running into little things 
 that you
 miss having or are annoyed to have to deal with. auto has probably been 
 the
 biggest one for me, though slicing isn't far behind. At least auto will be 
 in
 C++ 0x...


For me, D's killer features were string handling (slicing and 
appending/concatenation) and *no header files*. (No more header files!! 
Yay!!!). But auto is fantastic too though, I get sooo much use out of that.




Re: Is D still alive?

2011-01-26 Thread Trass3r

For me, D's killer features were string handling (slicing and
appending/concatenation) and *no header files*. (No more header files!!
Yay!!!). But auto is fantastic too though, I get sooo much use out of  
that.


Getting rid of the pointer crap (proper arrays, bounds checking, classes  
as reference types,...) is definitely among the top 10 on my list.


Re: Is D still alive?

2011-01-26 Thread Nick Sabalausky
Nick Sabalausky a@a.a wrote in message 
news:ihq7a3$2o05$1...@digitalmars.com...
 Jonathan M Davis jmdavisp...@gmx.com wrote in message 
 news:mailman.973.1296080233.4748.digitalmar...@puremagic.com...
 On Wednesday, January 26, 2011 14:09:25 Walter Bright wrote:
 Trass3r wrote:
  But once you had a test drive, you just can't get out anymore.

 I've had more than one longtime C++ expert tell me that after using D 
 for a
 while, then for work reasons get forced back into C++, just find 
 themselves
 cringing every time they edit it.

 LOL. Yeah. There's just so many little things that D improves on that 
 when
 you're stuck in C++ land, you're constantly running into little things 
 that you
 miss having or are annoyed to have to deal with. auto has probably been 
 the
 biggest one for me, though slicing isn't far behind. At least auto will 
 be in
 C++ 0x...


 For me, D's killer features were string handling (slicing, 
 appending/concatenation, ***and .length instead of null-termination***)
 and *no header files*. (No more header files!! Yay!!!). But auto is 
 fantastic too though, I get sooo much use out of that.



Fixed. ^^^




Re: Is D still alive?

2011-01-26 Thread Tomek Sowiński
Steven Schveighoffer napisał:

  Adam Ruppe and Piotr Szturmaj have recently been working on some database
  stuff. See the recent thread Can your programming language do this?
 
 I have ignored that thread (I sometimes just ignore threads because they  
 start out uninteresting, or become uninteresting, and then I miss out on  
 some good stuff!)
 
 I'll have to take a look, D2 really does need a DB interface -- badly.

That and networking. I can help with the latter as I had done a bit of network 
devving, but I don't know what's the current state of affairs (sb working on it 
already?) and whether Phobos needs another soul on-board.

  I would say it is not ready for prime-time yet.  It has a way to go, but
  some have managed to build pretty impressive applications from it.  So  
  it
  would depend on your application.
 
 
  Personally, I think that even though D still has some things to be worked
  out, I think it's *still* far better than any of the other more mature
  languages.
 
 It all seems really good until you hit an issue that cannot be worked  
 around -- like a compiler error or a misdesigned feature.  I call these  
 'mercy' problems, because you are then at the complete mercy of someone  
 else.  If you have a deadline, or have a complete stoppage in work, you  
 really have little choice but to move onto another language or abandon the  
 project.  Dcollections sat idle for about a year because of a problem like  
 this.

Yeah, ditto for QuantLibD. I just spent too much time on a test project trying 
to isolate dmd and phobos bugs to submit something meaningful to bugzilla and 
too little time coding. Not to mention that sometimes it was really hard to 
know what the language *should* do because of outdated documentation. But maybe 
the storm has passed and I should try serious work in D again?

 [snip]
 
 BTW, I plan to write a semi-professional project in D2 in the near future,  
 but I'm 1) willing to take the risks 2) have no deadline and 3) not  
 depending on this project for a living.

Sheer curiosity: what will the project be about?

-- 
Tomek



Re: Is D still alive?

2011-01-26 Thread Trass3r
Yeah, ditto for QuantLibD. I just spent too much time on a test project  
trying to isolate dmd and phobos bugs to submit something meaningful to  
bugzilla and too little time coding. Not to mention that sometimes it  
was really hard to know what the language *should* do because of  
outdated documentation. But maybe the storm has passed and I should try  
serious work in D again?


I also ran into serious issues with cl4d that forced me to leave it alone  
several times.
There even was a nasty bug with a corrupt stack frame, luckily it  
disappeared after some more coding and refactoring.


But all in all I have the feeling that the situation has improved.
Some serious forward reference bugs were fixed and I could more or less  
finish my work by now.


Re: Is D still alive?

2011-01-26 Thread spir

On 01/26/2011 11:33 PM, Trass3r wrote:

For me, D's killer features were string handling (slicing and
appending/concatenation) and *no header files*. (No more header files!!
Yay!!!). But auto is fantastic too though, I get sooo much use out of that.


Getting rid of the pointer crap (proper arrays, bounds checking, classes as
reference types,...) is definitely among the top 10 on my list.


Same here. But I would prefere slicing not to check upper bound, rather just 
extend to the end. Or have a slicing variant do that.


Denis
--
_
vita es estrany
spir.wikidot.com



Re: Is D still alive?

2011-01-26 Thread Jonathan M Davis
On Wednesday, January 26, 2011 16:41:10 spir wrote:
 On 01/26/2011 11:33 PM, Trass3r wrote:
  For me, D's killer features were string handling (slicing and
  appending/concatenation) and *no header files*. (No more header files!!
  Yay!!!). But auto is fantastic too though, I get sooo much use out of
  that.
  
  Getting rid of the pointer crap (proper arrays, bounds checking, classes
  as reference types,...) is definitely among the top 10 on my list.
 
 Same here. But I would prefere slicing not to check upper bound, rather
 just extend to the end. Or have a slicing variant do that.

You mean that if you give an index which is too large, it just uses $ instead? 
That sounds seriously bug-prone to me. I'd much rather that it blew up and thus 
told me that my program had a bug in it rather than silently trying to work. 
And 
if for some reason you really want to be able to just have it use $ if the 
index 
is too large, it's easy to write a wrapper function which does that.

- Jonathan M Davis


Re: Is D still alive?

2011-01-26 Thread spir

On 01/27/2011 02:11 AM, Jonathan M Davis wrote:

On Wednesday, January 26, 2011 16:41:10 spir wrote:

On 01/26/2011 11:33 PM, Trass3r wrote:

For me, D's killer features were string handling (slicing and
appending/concatenation) and *no header files*. (No more header files!!
Yay!!!). But auto is fantastic too though, I get sooo much use out of
that.


Getting rid of the pointer crap (proper arrays, bounds checking, classes
as reference types,...) is definitely among the top 10 on my list.


Same here. But I would prefere slicing not to check upper bound, rather
just extend to the end. Or have a slicing variant do that.


You mean that if you give an index which is too large, it just uses $ instead?
That sounds seriously bug-prone to me. I'd much rather that it blew up and thus
told me that my program had a bug in it rather than silently trying to work.


Sorry, but you are wrong on this. I understand this sounds unsafe, but no. Most 
languages, I guess, just do that without any worry. In particular, I have 
frequented python and Lua mailing lists for years without even reading once 
about this beeing a misfeature (and indeed have never run into a bug because of 
this myself). It is simply the right semantics in 99.999% cases.


spir@d:~$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type help, copyright, credits or license for more information.

s = 'abc'
s[0:123456789]

'abc'

spir@d:~$ lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio

requireio
s = abc
print(string.sub(s, 1, 123456789))

abc

I'm constantly annoyed by D's behaviour. For instance, often have to write out 
the end of a string from a given point, but only at most n chars (to avoid 
cluttering the output, indeed):

writeln(s[i..i+n]);
which fails if there are less than n remaining chars ;-)

Denis
--
_
vita es estrany
spir.wikidot.com



Re: Is D still alive?

2011-01-26 Thread Jonathan M Davis
On Wednesday 26 January 2011 17:52:19 spir wrote:
 On 01/27/2011 02:11 AM, Jonathan M Davis wrote:
  On Wednesday, January 26, 2011 16:41:10 spir wrote:
  On 01/26/2011 11:33 PM, Trass3r wrote:
  For me, D's killer features were string handling (slicing and
  appending/concatenation) and *no header files*. (No more header
  files!! Yay!!!). But auto is fantastic too though, I get sooo much
  use out of that.
  
  Getting rid of the pointer crap (proper arrays, bounds checking,
  classes as reference types,...) is definitely among the top 10 on my
  list.
  
  Same here. But I would prefere slicing not to check upper bound, rather
  just extend to the end. Or have a slicing variant do that.
  
  You mean that if you give an index which is too large, it just uses $
  instead? That sounds seriously bug-prone to me. I'd much rather that it
  blew up and thus told me that my program had a bug in it rather than
  silently trying to work.
 
 Sorry, but you are wrong on this. I understand this sounds unsafe, but no.
 Most languages, I guess, just do that without any worry. In particular, I
 have frequented python and Lua mailing lists for years without even
 reading once about this beeing a misfeature (and indeed have never run
 into a bug because of this myself). It is simply the right semantics in
 99.999% cases.
 
 spir@d:~$ python
 Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
 [GCC 4.4.5] on linux2
 Type help, copyright, credits or license for more information.
 
  s = 'abc'
  s[0:123456789]
 
 'abc'
 
 spir@d:~$ lua
 Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
 
  requireio
  s = abc
  print(string.sub(s, 1, 123456789))
 
 abc
 
 I'm constantly annoyed by D's behaviour. For instance, often have to write
 out the end of a string from a given point, but only at most n chars (to
 avoid cluttering the output, indeed):
   writeln(s[i..i+n]);
 which fails if there are less than n remaining chars ;-)

I _rarely_ see cases where I would consider it okay to give an index for the 
end 
of an array and having that index be too large is a good thing. It invariably 
means that your algorithm is wrong. In my experience, if you really need to 
know 
what the size of your array is and handle it properly.  There _are_ cases where 
you say that you want the rest of the array or collection and don't care how 
much that is, but in cases where you're actually looking to specify the index, 
if the index is wrong, then the code is wrong.

Now, I suppose that there are cases where you could simplify an algorithm where 
you effectively be n or less (if there aren't n elements left). But that's 
definitely atypical in my experience, and writing a wrapper function for such a 
case is trivial. Generally speaking, I'd be very worried about code which was 
lax enough about indices to not care whether it was indexing passed the end of 
the array or not.

Clearly, if you think that not being strict about indices is a good idea, 
you're 
either dealing with very different circumstances than I have and/or you're 
coding 
very differently. Regardless, since it's trivial to create a wrapper that does 
what you want, I don't think that there's any reason to change how slicing 
works.

- Jonathan M Davis


Re: Is D still alive?

2011-01-26 Thread Jonathan M Davis
On Wednesday 26 January 2011 19:06:37 Jonathan M Davis wrote:
 On Wednesday 26 January 2011 17:52:19 spir wrote:
  On 01/27/2011 02:11 AM, Jonathan M Davis wrote:
   On Wednesday, January 26, 2011 16:41:10 spir wrote:
   On 01/26/2011 11:33 PM, Trass3r wrote:
   For me, D's killer features were string handling (slicing and
   appending/concatenation) and *no header files*. (No more header
   files!! Yay!!!). But auto is fantastic too though, I get sooo much
   use out of that.
   
   Getting rid of the pointer crap (proper arrays, bounds checking,
   classes as reference types,...) is definitely among the top 10 on my
   list.
   
   Same here. But I would prefere slicing not to check upper bound,
   rather just extend to the end. Or have a slicing variant do that.
   
   You mean that if you give an index which is too large, it just uses $
   instead? That sounds seriously bug-prone to me. I'd much rather that it
   blew up and thus told me that my program had a bug in it rather than
   silently trying to work.
  
  Sorry, but you are wrong on this. I understand this sounds unsafe, but
  no. Most languages, I guess, just do that without any worry. In
  particular, I have frequented python and Lua mailing lists for years
  without even reading once about this beeing a misfeature (and indeed
  have never run into a bug because of this myself). It is simply the
  right semantics in 99.999% cases.
  
  spir@d:~$ python
  Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
  [GCC 4.4.5] on linux2
  Type help, copyright, credits or license for more information.
  
   s = 'abc'
   s[0:123456789]
  
  'abc'
  
  spir@d:~$ lua
  Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
  
   requireio
   s = abc
   print(string.sub(s, 1, 123456789))
  
  abc
  
  I'm constantly annoyed by D's behaviour. For instance, often have to
  write out the end of a string from a given point, but only at most n
  chars (to
  
  avoid cluttering the output, indeed):
  writeln(s[i..i+n]);
  
  which fails if there are less than n remaining chars ;-)
 
 I _rarely_ see cases where I would consider it okay to give an index for
 the end of an array and having that index be too large is a good thing. It
 invariably means that your algorithm is wrong. In my experience, if you
 really need to know what the size of your array is and handle it properly.
  There _are_ cases where you say that you want the rest of the array or
 collection and don't care how much that is, but in cases where you're
 actually looking to specify the index, if the index is wrong, then the
 code is wrong.
 
 Now, I suppose that there are cases where you could simplify an algorithm
 where you effectively be n or less (if there aren't n elements left). But
 that's definitely atypical in my experience, and writing a wrapper
 function for such a case is trivial. Generally speaking, I'd be very
 worried about code which was lax enough about indices to not care whether
 it was indexing passed the end of the array or not.
 
 Clearly, if you think that not being strict about indices is a good idea,
 you're either dealing with very different circumstances than I have and/or
 you're coding very differently. Regardless, since it's trivial to create a
 wrapper that does what you want, I don't think that there's any reason to
 change how slicing works.

I should probably add that it's more efficient to have the built-in slicing 
facilities be exact and build inexact ones on top of that then it is to make 
them inexact and the build exact ones on top. When you get down to it, you 
_have_ to slice _exactly_ when you get down deep enough in the code. So, making 
the slicing then be exact on top of that doesn't really cost anything. But 
adding the extra checks to make the inexact one work adds extra cost. So, while 
that's fine if the inexact behavior is what you want, it's _not_ fine if it's 
the 
exact behavior that you want, since then unnecessary checks are happening in 
the 
middle. For efficiency reasons, the exact behavior _needs_ to be the default.

exact - low level exact and inexact - exact - low level exact works as 
efficiently as is possible. Whereas having inexact - low level exact and exact 
- 
inexact - low level exact is _not_ efficient.

- Jonathan M Davis


Re: Is D still alive?

2011-01-26 Thread Daniel Gibson
Am 27.01.2011 02:11, schrieb Jonathan M Davis:
 On Wednesday, January 26, 2011 16:41:10 spir wrote:
 On 01/26/2011 11:33 PM, Trass3r wrote:
 For me, D's killer features were string handling (slicing and
 appending/concatenation) and *no header files*. (No more header files!!
 Yay!!!). But auto is fantastic too though, I get sooo much use out of
 that.

 Getting rid of the pointer crap (proper arrays, bounds checking, classes
 as reference types,...) is definitely among the top 10 on my list.

 Same here. But I would prefere slicing not to check upper bound, rather
 just extend to the end. Or have a slicing variant do that.
 
 You mean that if you give an index which is too large, it just uses $ 
 instead? 
 That sounds seriously bug-prone to me. I'd much rather that it blew up and 
 thus 
 told me that my program had a bug in it rather than silently trying to work. 
 And 
 if for some reason you really want to be able to just have it use $ if the 
 index 
 is too large, it's easy to write a wrapper function which does that.
 
 - Jonathan M Davis

I think he wants

  int arr[] = int[3];
  // ...
  int arr2[] = arr[1..5];

to be equivalent to

  int arr[] = int[3];
  // ...
  int arr2[] = arr[1..$];
  arr2.length = 4;

Cheers,
- Daniel


Re: Is D still alive?

2011-01-26 Thread Daniel Gibson
Am 27.01.2011 08:10, schrieb Daniel Gibson:
 Am 27.01.2011 02:11, schrieb Jonathan M Davis:
 On Wednesday, January 26, 2011 16:41:10 spir wrote:
 On 01/26/2011 11:33 PM, Trass3r wrote:
 For me, D's killer features were string handling (slicing and
 appending/concatenation) and *no header files*. (No more header files!!
 Yay!!!). But auto is fantastic too though, I get sooo much use out of
 that.

 Getting rid of the pointer crap (proper arrays, bounds checking, classes
 as reference types,...) is definitely among the top 10 on my list.

 Same here. But I would prefere slicing not to check upper bound, rather
 just extend to the end. Or have a slicing variant do that.

 You mean that if you give an index which is too large, it just uses $ 
 instead? 
 That sounds seriously bug-prone to me. I'd much rather that it blew up and 
 thus 
 told me that my program had a bug in it rather than silently trying to work. 
 And 
 if for some reason you really want to be able to just have it use $ if the 
 index 
 is too large, it's easy to write a wrapper function which does that.

 - Jonathan M Davis
 
 I think he wants
 
   int arr[] = int[3];
   // ...
   int arr2[] = arr[1..5];
 
 to be equivalent to
 
   int arr[] = int[3];
   // ...
   int arr2[] = arr[1..$];
   arr2.length = 4;
 
 Cheers,
 - Daniel

Okay, I just saw in spirs reply, that for some reason was not displayed in this
branch of the thread but as a direct reply to the top post, that you understood
him correctly and I didn't :-)