November 04, 2006
Samuel MV wrote:
> Hi Walter, unfortunately, it's not so simple. Example:
> 
> 1.- I make a new library/classes for web services (HTTP, XML, FCGI, ...) using DMD
> 0.173
> 
> 2.- Someone start using my library for a comercial application (that ones that you
> try to sell ;-)
> 
> 3.- It's founded a bug that it's solved in DMD 0.180, version which also add some
> features that broke existing code.
> 
> 4.- The library maker and the developer only have two options:
>     a) Live with the bug.
>     b) Refactorize library and application.
> 
> Not a nice situation. Here is my 'perfect' plan :)
> 
> 1.- Find the 3/4 features/problems that you/we *really* need to solve *now* in D.
> 
> 2.- Fix only that in november, december, and maybe january. Also bugs ...
> 
> 3.- We have DMD 1.00, that it's going to have only bug fixes, and that it's the
> version that every library, production application, doc, DTL, etc. should use.
> 
> 4.- Branch 2.0 it's planned for the next 4-5 years, when you have had time to test
> the language in a massive mainstream enviroment, with lots of complex applications.
> 
> Well, we have 'survived' with only C for more than 30 years, so what do you think
> about??? Thank you.

I've been in the compiler business for 20+ years now. There are *always* more bugs. There are *always* problems with new compilers breaking existing code, even if they are just bug fixes (as code sometimes inadvertently relies on bugs). The version number is just a number, it doesn't technically mean much of anything, except as an identification mark.

That said, I do my best not to break existing things when adding new capabilities, or if it is inevitable, I try to make sure there's an *easy* solution for existing code.
November 04, 2006
Bill Baxter wrote:
> You may be right, but I have serious doubts that slapping a 1.0 label on D is going to make any difference to the superstitious folks in your company.

True, but I often think I should just call it "1.0" and move on.
November 04, 2006
I see your point. But I think it's not the same to break code because of a bug, that because of there is a change in the way templates, variadic, delegates or operator overload works.

I know that 1.00 it's only a number, that DMD 0.173 it's better than C++ 12.00 (it was better with 0.73). I'm only asking for two branches: 'stable' and 'development', to make things more ease for developers.

I want to use D, but I need to get the things done in my job, I need to solve the problems of an application, not fight with the language.

That said, Walter, you are doing a wonderful job, and objectively D it's one of the best languages that exist. Thank you :)
November 04, 2006
Samuel MV wrote:
> I see your point. But I think it's not the same to break code because of a bug,
> that because of there is a change in the way templates, variadic, delegates or
> operator overload works.
> 
> I know that 1.00 it's only a number, that DMD 0.173 it's better than C++ 12.00 (it
> was better with 0.73). I'm only asking for two branches: 'stable' and
> 'development', to make things more ease for developers.
> 
> I want to use D, but I need to get the things done in my job, I need to solve the
> problems of an application, not fight with the language.

What are you fighting right now with D?

> That said, Walter, you are doing a wonderful job, and objectively D it's one of
> the best languages that exist. Thank you :)

You're welcome!
November 04, 2006
> What are you fighting right now with D?

Well, my fight it's with the templates. I understand the basics, but they are complex if you want to use them properly and take advantage of their power. I'm not a real C++ programmer so I don't have enough background (I have programmed in C and assembler for many years, some simple classes in C++, and the last years only in Java and Cobol/JCLs).

My problem it's that I have little time for so many changes, although I understand that they are important improvements.

Also, now, I need to learn PHP to build a web application, it's a very simple language but with lots of functions for web (obviously, it was designed for this). Instead of that, I would like to spend that time with D, but I'd need a bigger library with enough functions/classes to build my own application, and/or a more stable language (in which I could help to build the D libraries ;-).

Best regards.

   Samuel.
November 04, 2006
Walter Bright wrote:
> Bill Baxter wrote:
> 
>> You may be right, but I have serious doubts that slapping a 1.0 label on D is going to make any difference to the superstitious folks in your company.
> 
> 
> True, but I often think I should just call it "1.0" and move on.

Yeh, I'm definitely not saying it would hurt to call it 1.0, just that it's not going to magically make companies start adopting it en masse.   It could have an effect on a smaller scale though.

I think if you look at languages like Perl, Python, Ruby, PHP, their 1.0 releases were probably not that great.  I mean Perl is at version 5.9.4 and PHP is up to version 5.2.0 -- how complete could their 1.0's have been?  For scripting languages where the #1 use is short single-purpose programs, I think people use a different yardstick for 1.0.  Perl started off as a better awk, and it didn't have far to go to be useful in that regard.  Php started off as a way to generate bits of web pages programmatically on the server side, and it didn't have far to go to be a really useful tool in that respect.  But D is aiming to be a replacement for the languages that people use to write Really Big Programs (as well as small ones) that can do anything and everything. So I think that affects how people think about what constitutes 1.0.

--bb
November 04, 2006
On Sat, 04 Nov 2006 20:04:51 +0200, Bill Baxter <wbaxter@gmail.com> wrote:

>   But D is aiming to be a replacement for the languages that people use to write Really Big Programs (as well as small ones) that can do anything and everything. So I think that affects how people think about what constitutes 1.0.
>
> --bb

I don't see 1.0 as a feature complete compiler - I see it is a stable compiler.
Everything is changing and we're all full of bugs. I'm sure that many look at a 1.0 label as stable!( not just my boss, but I heard people talking on #D irc)
And we all know D's power, everyone saw the language comparision sheet, we need that sign from Walter "use it, it's stable!".
I'm not dreaming, I know it won't change the world overnight but it will bring some audience, advertisment, and a handfull of undecided programmers.


-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
November 04, 2006
Tiberiu Gal wrote:
> On Sat, 04 Nov 2006 20:04:51 +0200, Bill Baxter <wbaxter@gmail.com> wrote:
> 
>>   But D is aiming to be a replacement for the languages that people use to write Really Big Programs (as well as small ones) that can do anything and everything. So I think that affects how people think about what constitutes 1.0.
>>
>> --bb
> 
> I don't see 1.0 as a feature complete compiler - I see it is a stable compiler.
> Everything is changing and we're all full of bugs. I'm sure that many look at a 1.0 label as stable!( not just my boss, but I heard people talking on #D irc)
> And we all know D's power, everyone saw the language comparision sheet, we need that sign from Walter "use it, it's stable!".

If releasing 1.0 soon would mean that there would be an experimental branch of the language that allowed more drastic changes - like fixing template/mixin problems and/or having const-by-default, I'm all for it...


--
Tomasz Stachowiak
November 05, 2006
Samuel MV wrote:
> I see your point. But I think it's not the same to break code because of a bug,
> that because of there is a change in the way templates, variadic, delegates or
> operator overload works.
> 
> I know that 1.00 it's only a number, that DMD 0.173 it's better than C++ 12.00 (it
> was better with 0.73). I'm only asking for two branches: 'stable' and
> 'development', to make things more ease for developers.
> 
> I want to use D, but I need to get the things done in my job, I need to solve the
> problems of an application, not fight with the language.
> 

I think Walter is right, the code changes introduced by new features (not bugs) are very rarely backwards-incompatible (even more rarely that they should be, IMO, but that's another story), so I don't see as valid this idea that you have to refactor your code with each new major release. If you don't have time to use, or don't want to use the new features of a release, simply don't, you won't be any worse because of that.

-- 
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
November 06, 2006
Samuel MV wrote:
>> What are you fighting right now with D?
> 
> Well, my fight it's with the templates. I understand the basics, but they are
> complex if you want to use them properly and take advantage of their power. I'm
> not a real C++ programmer so I don't have enough background (I have programmed in
> C and assembler for many years, some simple classes in C++, and the last years
> only in Java and Cobol/JCLs).
> 
> My problem it's that I have little time for so many changes, although I understand
> that they are important improvements.
> 
> Also, now, I need to learn PHP to build a web application, it's a very simple
> language but with lots of functions for web (obviously, it was designed for this).
> Instead of that, I would like to spend that time with D, but I'd need a bigger
> library with enough functions/classes to build my own application, and/or a more
> stable language (in which I could help to build the D libraries ;-).

Templates aren't easy. But the new template stuff isn't breaking existing ones, and is not likely to. So it shouldn't interfere with someone writing template libraries.