www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Prime time???

reply Samuel MV <samuel.mv tiscali.es> writes:
Hello everybody.

With DMD 0.173 I've seen more than 100 versions of the D compiler (since
september 2003). Three years ago it was my perfect language, and now it's more
than perfect!!

I've used it in some little projects just for fun ;-), but not for 'complex'
applications.

Well, my post it's about version 1.00 because I'm afraid that the developvent
is in a never-ending cycle of new features and polishing, without a clear end.

Now, D language is much better than C, C++, java, python, ruby, c#, etc. It is
true. I think we should wait for v2.00 to add more features. It's time to
start with the improvements of the libraries, DTL, classes, docs, etc.

I'm going to start a new project in my job (a web application). Probably,
it'll be done in PHP, but I think that D (as language) it's well suited for
this, except that it hasn't the libraries/classes (CGI, HTTP, HTML, database,
...) and now it's a 'moving target'.

Please, think about this, seriously, we, the people that likes D, are losing
the oportunity window ...

Best regards.

    Samuel.
Nov 03 2006
next sibling parent Sean Kelly <sean f4.ca> writes:
Samuel MV wrote:
 
 Well, my post it's about version 1.00 because I'm afraid that the developvent
 is in a never-ending cycle of new features and polishing, without a clear end.

I kind of feel that way too.
 I'm going to start a new project in my job (a web application). Probably,
 it'll be done in PHP, but I think that D (as language) it's well suited for
 this, except that it hasn't the libraries/classes (CGI, HTTP, HTML, database,
 ....) and now it's a 'moving target'.

I'm hoping that at some point the D feature list will freeze and the compiler will branch, so the existing version will enter maintenance mode and the new version will be used for new features. It means more work for Walter but fewer headaches for us. But I disagree that this is currently preventing library development. The current feature list is pretty solid, and the new features (ie. variadric templates) are not "must haves" for library work. Implicit template function instantiation was far more important IMO, and that has gotten to the point where it's fairly usable, assuming a few workarounds for overloading. Sean
Nov 03 2006
prev sibling parent reply Charlie <charlies nowhere.com> writes:
I've been fretting over the same thing, and a 'moving target' describes 
it well.

With all the new additions recently I stopped holding my breath, I 
figure at this rate it'll be another 3 years for a 1.0.

Heres to hoping,
Charlie



Samuel MV wrote:
 Hello everybody.
 
 With DMD 0.173 I've seen more than 100 versions of the D compiler (since
 september 2003). Three years ago it was my perfect language, and now it's more
 than perfect!!
 
 I've used it in some little projects just for fun ;-), but not for 'complex'
 applications.
 
 Well, my post it's about version 1.00 because I'm afraid that the developvent
 is in a never-ending cycle of new features and polishing, without a clear end.
 
 Now, D language is much better than C, C++, java, python, ruby, c#, etc. It is
 true. I think we should wait for v2.00 to add more features. It's time to
 start with the improvements of the libraries, DTL, classes, docs, etc.
 
 I'm going to start a new project in my job (a web application). Probably,
 it'll be done in PHP, but I think that D (as language) it's well suited for
 this, except that it hasn't the libraries/classes (CGI, HTTP, HTML, database,
 ...) and now it's a 'moving target'.
 
 Please, think about this, seriously, we, the people that likes D, are losing
 the oportunity window ...
 
 Best regards.
 
     Samuel.

Nov 03 2006
parent reply Walter Bright <newshound digitalmars.com> writes:
Charlie wrote:
 I've been fretting over the same thing, and a 'moving target' describes 
 it well.
 
 With all the new additions recently I stopped holding my breath, I 
 figure at this rate it'll be another 3 years for a 1.0.

But isn't every language a moving target? Doesn't it make sense to just start using it?
Nov 03 2006
next sibling parent reply Charlie <charlies nowhere.com> writes:
The other languages just move much slower ;).

Its not that new releases break old code ( though it sometimes does ) , 
its that when new features are added - the old code needs to be 
refactored to take advantage of the new features.

I like that D is cutting edge and trying things that haven't been done 
before, but to develop any lasting code developers need some sort of 
agreed upon language feature set , so it doesn't feel like we're in a 
never ending refactoring circle ( this is especially true of library 
builders I would think ).

Why not devote a few releases to getting a 1.0 , and continue with a 
developmental branch , working its way to 2.0, best of both worlds.  I 
don't want to hinder D  development, and if it takes another few years 
to get a 1.0 so be it, but I think building up a solid base of existing 
code is going to be important to getting D into the mainstream.

Charlie

Walter Bright wrote:
 Charlie wrote:
 I've been fretting over the same thing, and a 'moving target' 
 describes it well.

 With all the new additions recently I stopped holding my breath, I 
 figure at this rate it'll be another 3 years for a 1.0.

But isn't every language a moving target? Doesn't it make sense to just start using it?

Nov 03 2006
parent reply Gregor Richards <Richards codu.org> writes:
Charlie wrote:
 The other languages just move much slower ;).
 
 Its not that new releases break old code ( though it sometimes does ) , 
 its that when new features are added - the old code needs to be 
 refactored to take advantage of the new features.
 
 I like that D is cutting edge and trying things that haven't been done 
 before, but to develop any lasting code developers need some sort of 
 agreed upon language feature set , so it doesn't feel like we're in a 
 never ending refactoring circle ( this is especially true of library 
 builders I would think ).
 
 Why not devote a few releases to getting a 1.0 , and continue with a 
 developmental branch , working its way to 2.0, best of both worlds.  I 
 don't want to hinder D  development, and if it takes another few years 
 to get a 1.0 so be it, but I think building up a solid base of existing 
 code is going to be important to getting D into the mainstream.
 
 Charlie
 
 Walter Bright wrote:
 
 Charlie wrote:

 I've been fretting over the same thing, and a 'moving target' 
 describes it well.

 With all the new additions recently I stopped holding my breath, I 
 figure at this rate it'll be another 3 years for a 1.0.

But isn't every language a moving target? Doesn't it make sense to just start using it?


In my opinion, if D branched into D 1.0 (stable) and D 2.0 (unstable), a large enough chunk of people would continue to use the unstable branch that everybody else would be snowballed in by dependencies et cetera. Net accomplishment: Nothing. - Gregor Richards
Nov 03 2006
parent Sean Kelly <sean f4.ca> writes:
Gregor Richards wrote:
 
 In my opinion, if D branched into D 1.0 (stable) and D 2.0 (unstable), a 
 large enough chunk of people would continue to use the unstable branch 
 that everybody else would be snowballed in by dependencies et cetera. 
 Net accomplishment: Nothing.

hehe, you're probably right. My only issue is that I don't want the introduction of new features to break existing functionality. So long as that's a pretty reasonable guarantee, I'm all for a single unified compiler release. Sean
Nov 03 2006
prev sibling next sibling parent reply "Tiberiu Gal" <galtiberiu gmail.com> writes:
On Fri, 03 Nov 2006 22:31:26 +0200, Walter Bright  
<newshound digitalmars.com> wrote:

 Charlie wrote:
 I've been fretting over the same thing, and a 'moving target' describes  
 it well.
  With all the new additions recently I stopped holding my breath, I  
 figure at this rate it'll be another 3 years for a 1.0.

But isn't every language a moving target? Doesn't it make sense to just start using it?

For most of us D is the spare time language, unfortunately - just because it's name is 0.x! I'm sure that the same compiler named 1.0 would change this into making D the first option in many projects. For instance, I made a small DWT replica of a SWT application we use at my company. It's stable and faster, but it wasn't accepted in use because D is 0.x! ... people are superstitious this days -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Nov 04 2006
parent reply Bill Baxter <wbaxter gmail.com> writes:
Tiberiu Gal wrote:
 On Fri, 03 Nov 2006 22:31:26 +0200, Walter Bright  
 <newshound digitalmars.com> wrote:
 
 Charlie wrote:

 I've been fretting over the same thing, and a 'moving target' 
 describes  it well.
  With all the new additions recently I stopped holding my breath, I  
 figure at this rate it'll be another 3 years for a 1.0.

But isn't every language a moving target? Doesn't it make sense to just start using it?

For most of us D is the spare time language, unfortunately - just because it's name is 0.x! I'm sure that the same compiler named 1.0 would change this into making D the first option in many projects. For instance, I made a small DWT replica of a SWT application we use at my company. It's stable and faster, but it wasn't accepted in use because D is 0.x! ... people are superstitious this days

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. "Not 1.0" is just a convenient excuse for not straying from the beaten path. If D becomes 1.0 they'll probably just change their tune to "Sorry, not a good enough tool-chain yet". Most likely what they really mean is "Sorry, it's still not Java." Managers prefer to play it safe when it comes to tool choices. And can you blame them? Why should they go out on a limb and choose D when they can see examples every day in the trade rags of companies that have been successful with Java or C++? Success for D has to come from the ground up with people like you using for their own little tools here and there, until eventually there's enough critical mass taht managers can't ignore it anymore. I remember a guy that used Python in a company I worked for about 10 years ago. I remeber thinking "Python? whatever dude". He just used it for perlish munging of things in our internal build system. He used it because he liked it, and management didn't care how he did it as long as it got the job done. Anyway ten years later big companies now pay attention to Python, but few people cared about it back then. I don't think Python's 1.0 made much difference to anyone. I didn't start really looking at it till 2.something. But the number didn't have anything to do with it. The reason was I started hearing about it from lots of different places. It was buzz, networking, critical mass, or something else, but it was not a version number. --bb
Nov 04 2006
parent reply Walter Bright <newshound digitalmars.com> writes:
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.
Nov 04 2006
parent reply Bill Baxter <wbaxter gmail.com> writes:
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
Nov 04 2006
parent reply "Tiberiu Gal" <galtiberiu gmail.com> writes:
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/
Nov 04 2006
next sibling parent Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
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
Nov 04 2006
prev sibling parent reply Walter Bright <newshound digitalmars.com> writes:
Tiberiu Gal wrote:
 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.

I don't agree that D is full of bugs. Sure, the bugzilla bug count constantly rises, but: 1) there are very few regressions, and I put a priority on fixing regressions 2) I think a lot of the growing count reflects more users getting into more heavy use of the language 3) The regression test suite constantly grows with each fixed bug, meaning that the stability is like a ratchet - it moves forward only. 4) The core language is very solid and reliable. The bug reports tend to be on the fringes or are easily avoided. 5) The bugzilla bug count is actually pretty low for a product as complex as a compiler development system. 6) The optimizer/backend/linker are incredibly reliable, having endured the bug fix/regression test cycle for decades.
Nov 05 2006
parent "Tiberiu Gal" <galtiberiu gmail.com> writes:
On Mon, 06 Nov 2006 09:14:23 +0200, Walter Bright  
<newshound digitalmars.com> wrote:

 Tiberiu Gal wrote:
 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.

I don't agree that D is full of bugs. Sure, the bugzilla bug count constantly rises, but:

I'm saying that there is a bug in everything not that DMD is full of bugs. I think that we can already use D and DMD, and that the DMD label should be 1.0 because 0.x means "not ready yet" for most of newcomers(and maybe even many of D community members). -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Nov 06 2006
prev sibling parent reply Samuel MV <samuel.mv tiscali.es> writes:
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.

Best regards.
Nov 04 2006
parent reply Walter Bright <newshound digitalmars.com> writes:
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.
Nov 04 2006
parent reply Samuel MV <samuel.mv tiscali.es> writes:
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 :)
Nov 04 2006
next sibling parent reply Walter Bright <newshound digitalmars.com> writes:
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!
Nov 04 2006
parent reply Samuel MV <samuel.mv tiscali.es> writes:
 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.
Nov 04 2006
parent Walter Bright <newshound digitalmars.com> writes:
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.
Nov 05 2006
prev sibling parent reply Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
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
Nov 05 2006
parent Walter Bright <newshound digitalmars.com> writes:
Bruno Medeiros wrote:
 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.

That's right, the changes may obsolete some existing library implementations, but it shouldn't *break* them.
Nov 05 2006