www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Questions about D for a real project

reply BCS <ao pathlink.com> writes:
I have been asked by my boss to put together a overview of the state of D 
with regards to using it in a medium sized commercial app. It will be a
development 
tool that we expect to be, complexity wise, somewhat akin to AWK, the C
preprocessor 
or pearl. Several of the questions I have been asked to address were easy 
for me to answer but a few are outside my experience. So I’m looking for 
answers to some of these questions.


I’ll post their questions (with a few edits) and, where appropriate, the 
specific points I’m looking for input on.

1. “ddbg works great with dmd 2.012.  However, when used with dmd 1.x, the 
local values do not print well. Please find out if there are plans to support 
dmd 1.x in ddbg.”


2. “Please determine how Code::Blocks works as a debugger when combined with 
ddbg for dmd 1.x.”
-a. Is D support under code::blocks under active development?
-b. If we were to use it and then found D specific issues are we likely to 
see the fixed in a reasonably short time frame?


3. “Can Code::Blocks do auto-complete in general and what would it take to 
make it work for D.”
-a. I should really answerer the first bit myself but I don’t have
Code::Blocks 
(or C++) set up on my systems.


4. “What is the current stability of dmd 2.0?”
-a. I said alpha. Please correct me if I’m wrong.


5. “What is the estimated “ship date” of dmd 2.0?”


6. “What is the new features list for dmd 2.0? “



I generally develop with a good text editor and a build script so I’m not 
at all up to date on IDE’s and such so I have a few questions of my own:

1. What is the state of the art in IDE’s for D? Code::Blocks? Eclipse+Decent?

2. What stage are these in? Stable, approaching stability, active development, 
in development but not very active? 

3. Same for debuggers. I know ddbg works on windows and for Linux there is 
a GDB patch and ZeroBugs. However I haven’t seen much recent work on any 
of these. 

4. Direct question to Walter (and the developers of the other tools) If we 
were to use D and run into a blocking issue, can we effect your properties 
with regards to resolving it? (This assumes that the issue is not a language 
design issue.)


If I get enough responses that I can put together a report of some kind for 
my boss I’ll post it somewhere (with necessary redactions ;-)
Mar 16 2008
next sibling parent reply bearophile <bearophileHUGS lycos.com> writes:
BCS:
 4. “What is the current stability of dmd 2.0?”
 -a. I said alpha. Please correct me if I’m wrong.
 5. “What is the estimated “ship date” of dmd 2.0?”

If it's a "real project" I suggest you to use 1.x, that's not alpha. Bye, bearophile
Mar 16 2008
next sibling parent BCS <ao pathlink.com> writes:
 BCS:
 
 4. “What is the current stability of dmd 2.0?” -a. I said alpha.
 Please correct me if I’m wrong. 5. “What is the estimated “ship
 date” of dmd 2.0?”
 


Garsh De'rn Unicode!!! (I wrote that in word :b)
Mar 16 2008
prev sibling parent Henning Hasemann <hhasemann web.de> writes:
BCS <ao pathlink.com> wrote:
 BCS:
=20
 4. =C3=A2=C2=80=C2=9CWhat is the current stability of dmd 2.0?=C3=A2=



 alpha. Please correct me if I=C3=A2=C2=80=C2=99m wrong. 5. =C3=A2=C2=



 estimated =C3=A2=C2=80=C2=9Cship date=C3=A2=C2=80=C2=9D of dmd 2.0?=C3=



=20


Garsh De'rn Unicode!!! (I wrote that in word :b) =20 =20

The original posting looks fine here (claws-mail, linux), the quoted stuff above looks weird. Henning --=20 GPG Public Key: http://gpg-keyserver.de/pks/lookup?op=3Dget&search=3D0xDDD6D36D41911851
Mar 17 2008
prev sibling next sibling parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
BCS wrote:

 4. Direct question to Walter (and the developers of the other tools) If 
 we were to use D and run into a blocking issue, can we effect your 
 properties with regards to resolving it? (This assumes that the issue is 
 not a language design issue.)

You mean "can we affect your priorities"? Are you thinking cash here? --bb
Mar 16 2008
parent reply BCS <ao pathlink.com> writes:
Reply to Bill,

 BCS wrote:
 
 4. Direct question to Walter (and the developers of the other tools)
 If we were to use D and run into a blocking issue, can we effect your
 properties with regards to resolving it? (This assumes that the issue
 is not a language design issue.)
 


http://xkcd.com/326/
 Are you thinking cash here?

Um, that /might/ be on the list... way at the end... in really small amounts... a long way after thank you notes, begging, promises of citations in the appreciation notes and appealing to your vanity, duty and anything else we can including an offer of lunch "if you ever happen to be in this neck of the woods". Now I'm not talking bribes here or anything. More like: "this is a bug, everyone says it's a bug, could we please get a fix to it soon?"
Mar 16 2008
parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
BCS wrote:
 Reply to Bill,
 
 BCS wrote:

 4. Direct question to Walter (and the developers of the other tools)
 If we were to use D and run into a blocking issue, can we effect your
 properties with regards to resolving it? (This assumes that the issue
 is not a language design issue.)


http://xkcd.com/326/

http://www.m-w.com -- effect[2, transitive verb] """ The more common /affect/ denotes having an effect or influence <the weather affected everyone's mood>. The verb /effect/ goes beyond mere influence; it refers to actual achievement of a final result <the new administration hopes to effect a peace settlement>. """ A peace settlement is a final achievement. "your priorities" are not a final achievement. If that's the version of "effect" you meant then you should have said something more along the lines of: "can we effect /a change in/ your priorities" ;-) (In any case, I don't think you meant to say "properties" which was the main thing I was trying to verify.)
 Are you thinking cash here?

Um, that /might/ be on the list... way at the end... in really small amounts... a long way after thank you notes, begging, promises of citations in the appreciation notes and appealing to your vanity, duty and anything else we can including an offer of lunch "if you ever happen to be in this neck of the woods". Now I'm not talking bribes here or anything. More like: "this is a bug, everyone says it's a bug, could we please get a fix to it soon?"

Ok, just curious. If a company is asking for someone to change their priorities just for them, then it often involves money, at least in the form of paying for a support contract, or per-incident support. If you're *not* talking money, then I doubt you'll be able to get any promises from anyone about prioritizing your company's particular bug fixes over any others. Maybe you can get a "sure we'll do what we can" but that's meaningless, really. --bb
Mar 16 2008
next sibling parent reply Ary Borenszweig <ary esperanto.org.ar> writes:
Bill Baxter escribi:
 BCS wrote:
 Reply to Bill,

 BCS wrote:

 4. Direct question to Walter (and the developers of the other tools)
 If we were to use D and run into a blocking issue, can we effect your
 properties with regards to resolving it? (This assumes that the issue
 is not a language design issue.)


http://xkcd.com/326/

http://www.m-w.com -- effect[2, transitive verb] """ The more common /affect/ denotes having an effect or influence <the weather affected everyone's mood>. The verb /effect/ goes beyond mere influence; it refers to actual achievement of a final result <the new administration hopes to effect a peace settlement>. """ A peace settlement is a final achievement. "your priorities" are not a final achievement. If that's the version of "effect" you meant then you should have said something more along the lines of: "can we effect /a change in/ your priorities" ;-) (In any case, I don't think you meant to say "properties" which was the main thing I was trying to verify.)
 Are you thinking cash here?

Um, that /might/ be on the list... way at the end... in really small amounts... a long way after thank you notes, begging, promises of citations in the appreciation notes and appealing to your vanity, duty and anything else we can including an offer of lunch "if you ever happen to be in this neck of the woods". Now I'm not talking bribes here or anything. More like: "this is a bug, everyone says it's a bug, could we please get a fix to it soon?"

Ok, just curious. If a company is asking for someone to change their priorities just for them, then it often involves money, at least in the form of paying for a support contract, or per-incident support. If you're *not* talking money, then I doubt you'll be able to get any promises from anyone about prioritizing your company's particular bug fixes over any others. Maybe you can get a "sure we'll do what we can" but that's meaningless, really. --bb

I also think it's not just about money. Many D projects are made by people who do their tools in their free time (like Robert and me), so paying them won't make free time appear. Well... unless they are willing to quit their job just for a bug fix or enhancement.
Mar 17 2008
parent reply BCS <ao pathlink.com> writes:
Reply to Ary,

 I also think it's not just about money. Many D projects are made by
 people who do their tools in their free time (like Robert and me), so
 paying them won't make free time appear.

I'm glad it's not, at this point in time I don't think the D world could support the development efforts that are needed to get to the point that it can support them. (Show me a program that can parse /that/ sentence!)
 Well... unless they are
 willing to quit their job just for a bug fix or enhancement.

We're /not/ looking to /hire/ a tool chain <G>
Mar 16 2008
parent reply downs <default_357-line yahoo.de> writes:
BCS wrote:
 Reply to Ary,
 Well... unless they are
 willing to quit their job just for a bug fix or enhancement.

We're /not/ looking to /hire/ a tool chain <G>

Hah. "Fresh, dynamic startup looking to hire a D compiler/linker. Must have two years experience with generating AST representations. Must be able to generate x86 assembler. Must be able to perform optimizations equivalent to O2 on the standard GCC scale. JVM bytecode not required, but would definitely help your chances. Employee insurance benefits cover segmentation faults."
Mar 17 2008
parent BCS <BCS pathlink.com> writes:
downs wrote:
 BCS wrote:

We're /not/ looking to /hire/ a tool chain <G>

Hah. "[...]Employee insurance benefits cover segmentation faults."

http://xkcd.com/371/
Mar 17 2008
prev sibling parent BCS <ao pathlink.com> writes:
Reply to Bill,

 (In any case, I don't think you meant to say "properties" which was
 the main thing I was trying to verify.)
 

Err. Dang I can't type /and/ can't read!!
 Ok, just curious.  If a company is asking for someone to change their
 priorities just for them, then it often involves money, at least in
 the form of paying for a support contract, or per-incident support.
 
 If you're *not* talking money, then I doubt you'll be able to get any
 promises from anyone about prioritizing your company's particular bug
 fixes over any others.  Maybe you can get a "sure we'll do what we
 can" but that's meaningless, really.

The best I was really hoping for would be something akin to "we tend to work on thing that we known are real issues for someone". (Kind of like my progress on dparse being a result of someone saying they might be using it for something.)
Mar 16 2008
prev sibling next sibling parent reply Robert Fraser <fraserofthenight gmail.com> writes:
BCS Wrote:
 1. What is the state of the art in IDE’s for D? Code::Blocks? Eclipse+Decent?
 
 2. What stage are these in? Stable, approaching stability, active development, 
 in development but not very active? 

I can only answer with regards to Descent. As of Descent 0.5.1, it should be considered "stable" as in it will not hang or crash, but "alpha" in terms of functionality. Any functionality that requires semantic resolution (in particular, auto-complete and go-to-definition) may not work properly for all input (but should work fine for most :-)!). Semantic errors should be turned off for large projects, as there are significant problems with these. However, even if certain features do not work all the time, Eclipse will not crash, and the text editing capabilities and syntax error marking will always remain usable. The supported features in Descent can be seen here: http://www.dsource.org/projects/descent It was designed from the ground-up for D support, so supports many more D-specific features than Code::Blocks does, and properly handles templates (to some degree). On the other hand it's written in Java, based on Eclipse and may be too "bloated" for people used to text editors or even Code::Blocks (it takes about 150MB worth of downloads to get it all up and running if you include the Java runtime). Ary can probably answer further, especially on his plans for Descent's future. I'm hoping to have project building and unit testing support integrated in Descent by the next release, but it may be pushed back further.
Mar 16 2008
next sibling parent BCS <ao pathlink.com> writes:
Reply to Robert,

 BCS Wrote:
 
 1. What is the state of the art in IDE's for D? Code::Blocks?
 Eclipse+Decent?
 
 2. What stage are these in? Stable, approaching stability, active
 development, in development but not very active?
 

I can only answer with regards to Descent.[...]

thanks. Good stuff.
Mar 16 2008
prev sibling next sibling parent reply Robert Fraser <fraserofthenight gmail.com> writes:
I should also add that many of Descent's semantic features are 1.x-only.
Mar 16 2008
parent reply "Saaa" <empty needmail.com> writes:
How does poseidon match up to Descent?
I never used Descent nor Code::Blocks, but maybe I just don't know what I'm 
missing.

I should also add that many of Descent's semantic features are 1.x-only. 

Mar 16 2008
parent Robert Fraser <fraserofthenight gmail.com> writes:
Saaa wrote:
 How does poseidon match up to Descent?
 I never used Descent nor Code::Blocks, but maybe I just don't know what I'm 
 missing.
 
 I should also add that many of Descent's semantic features are 1.x-only. 


Never used Poseidon, so I can't say (hopefully someone else can, though). Poseidon is internationalized (we plan to do that in Descent... eventually), compact (only a few megs download), and looks to be well-integrated with the compiler.
Mar 16 2008
prev sibling parent Ary Borenszweig <ary esperanto.org.ar> writes:
Robert Fraser escribi:
 BCS Wrote:
 1. What is the state of the art in IDE’s for D? Code::Blocks? Eclipse+Decent?

 2. What stage are these in? Stable, approaching stability, active development, 
 in development but not very active? 

I can only answer with regards to Descent. As of Descent 0.5.1, it should be considered "stable" as in it will not hang or crash, but "alpha" in terms of functionality. Any functionality that requires semantic resolution (in particular, auto-complete and go-to-definition) may not work properly for all input (but should work fine for most :-)!). Semantic errors should be turned off for large projects, as there are significant problems with these. However, even if certain features do not work all the time, Eclipse will not crash, and the text editing capabilities and syntax error marking will always remain usable. The supported features in Descent can be seen here: http://www.dsource.org/projects/descent It was designed from the ground-up for D support, so supports many more D-specific features than Code::Blocks does, and properly handles templates (to some degree). On the other hand it's written in Java, based on Eclipse and may be too "bloated" for people used to text editors or even Code::Blocks (it takes about 150MB worth of downloads to get it all up and running if you include the Java runtime). Ary can probably answer further, especially on his plans for Descent's future. I'm hoping to have project building and unit testing support integrated in Descent by the next release, but it may be pushed back further.

I should add that, although Descent won't hang or crash, some people found that autocompletion, in certain cases, takes too long (about 2 or 3 seconds). Also, autocompletion isn't accurate enough: for example, sometimes base methods of a class won't show. This also applies to "go to declaration". Also, autocompletion doesn't work inside templates. So Descent helps, but it's not "complete". I'll fix that for the next release. But I'm feeling kind of lazy lately (and tomorrow I'll be back to unversity, and I work, so...) But I hope I can get over that. I really want there to be a smart IDE for D, because your boss is not the only one who would ask that kind of question (mine's asked that too).
Mar 17 2008
prev sibling next sibling parent reply Moritz Warning <moritzwarning _nospam_web.de> writes:
On Sun, 16 Mar 2008 21:23:09 +0000, BCS wrote:


 4. “What is the current stability of dmd 2.0?” -a. I said alpha. Please
 correct me if I’m wrong.

 5. “What is the estimated “ship date” of dmd 2.0?”

But I can't find the post in question to verify that statement.
 
 3. Same for debuggers. I know ddbg works on windows and for Linux there
 is a GDB patch and ZeroBugs. However I haven’t seen much recent work on
 any of these.
 

I tried ZeroBugs without much debugger knowledge; but I have impression that it works quite nice. It showed the source code along with the error line along with the thread trace (for the correct thread, afaik).
Mar 16 2008
parent Daniel Lewis <murpsoft hotmail.com> writes:
Moritz Warning Wrote:

 On Sun, 16 Mar 2008 21:23:09 +0000, BCS wrote:
 
 
 4. “What is the current stability of dmd 2.0?” -a. I said alpha. Please
 correct me if I’m wrong.

 5. “What is the estimated “ship date” of dmd 2.0?”

But I can't find the post in question to verify that statement.
 
 3. Same for debuggers. I know ddbg works on windows and for Linux there
 is a GDB patch and ZeroBugs. However I haven’t seen much recent work on
 any of these.
 

I tried ZeroBugs without much debugger knowledge; but I have impression that it works quite nice. It showed the source code along with the error line along with the thread trace (for the correct thread, afaik).

I would argue for IDA Pro, but it doesn't obfuscate all the stuffing put in with compiled D programs. Most debuggers don't. D wraps your main with something like this: gc_init() module_ctor() *your main* module_dtor() gc_term() and seemingly includes the entire Phobos library every time it compiles, regardless of what you actually need in your program. This means [println("hello world");] comes out at 80kb and tends to clutter things up. I prefer SciTE for coding in D. It's got excellent rectangle-selection support, vast multi-language syntax highlighting, and doesn't change what you type (a HUGE peeve of mine) I recommend using the latest DMD 1.0xx or the latest GDC. GDC gets less love than DMD, but it's built to GCC backend, so it can actually target more systems than the obsolete x86-32. Good luck.
Mar 16 2008
prev sibling next sibling parent Moritz Warning <moritzwarning _nospam_web.de> writes:
On Sun, 16 Mar 2008 22:51:04 +0000, Moritz Warning wrote:
 I tried ZeroBugs without much debugger knowledge; but I have impression
 that it works quite nice. It showed the source code along with the error
 line along with the thread trace (for the correct thread, afaik).

Mar 16 2008
prev sibling next sibling parent reply Derek Parnell <derek nomail.afraid.org> writes:
On Sun, 16 Mar 2008 21:23:09 +0000 (UTC), BCS wrote:

 4. Direct question to Walter (and the developers of the other tools) If we 
 were to use D and run into a blocking issue, can we effect your properties 
 with regards to resolving it? (This assumes that the issue is not a language 
 design issue.)

Certainly. If a tool of mine needs an urgent bug fix then that is of benefit to the whole community. Be aware though that real life does impose itself from time to time ;-) -- Derek (skype: derek.j.parnell) Melbourne, Australia 17/03/2008 12:19:11 PM
Mar 16 2008
next sibling parent reply BCS <ao pathlink.com> writes:
Reply to Derek,

 real life does impose itself from time to time ;-)
 

Not in my life. In my life it's the other way around <G> "free time comes around from time to time".
Mar 16 2008
parent Derek Parnell <derek nomail.afraid.org> writes:
On Mon, 17 Mar 2008 03:20:26 +0000 (UTC), BCS wrote:

 Reply to Derek,
 
 real life does impose itself from time to time ;-)
 

Not in my life. In my life it's the other way around <G> "free time comes around from time to time".

I suspect you might have had your sarcasm filter switched on <G> -- Derek (skype: derek.j.parnell) Melbourne, Australia 17/03/2008 5:32:47 PM
Mar 16 2008
prev sibling parent Walter Bright <newshound1 digitalmars.com> writes:
Derek Parnell wrote:
 On Sun, 16 Mar 2008 21:23:09 +0000 (UTC), BCS wrote:
 
 4. Direct question to Walter (and the developers of the other tools) If we 
 were to use D and run into a blocking issue, can we effect your properties 
 with regards to resolving it? (This assumes that the issue is not a language 
 design issue.)

Certainly. If a tool of mine needs an urgent bug fix then that is of benefit to the whole community. Be aware though that real life does impose itself from time to time ;-)

Sure. I do what I can to fix bugs that are hurting the most. I'll be the first to admit, however, that such value judgments are imperfect.
Mar 16 2008
prev sibling parent reply Lawrence <lawrence.hemsley gmail.com> writes:
I do know that code::blocks just released a new stable version 8.02
However, I have it set up to compile C++ although it is suppose to do
d also. Zeus for windows looks very promising as an IDE for d. It is already
partly setup and has detailed instructions on the web site and in the help
menu. It will do auto-completion and context sensitive help for both D1
and Tango. It can also be setup to use ddbg as the frontend for its
debugger. I have just finished setting it up to use as my d IDE but have
not as yet tried it out. I will let you know if it works OK or not.

lh

BCS Wrote:

 I have been asked by my boss to put together a overview of the state of D 
 with regards to using it in a medium sized commercial app. It will be a
development 
 tool that we expect to be, complexity wise, somewhat akin to AWK, the C
preprocessor 
 or pearl. Several of the questions I have been asked to address were easy 
 for me to answer but a few are outside my experience. So I’m looking for 
 answers to some of these questions.
 
 
 I’ll post their questions (with a few edits) and, where appropriate, the 
 specific points I’m looking for input on.
 
 1. “ddbg works great with dmd 2.012.  However, when used with dmd 1.x, the 
 local values do not print well. Please find out if there are plans to support 
 dmd 1.x in ddbg.”
 
 
 2. “Please determine how Code::Blocks works as a debugger when combined with 
 ddbg for dmd 1.x.”
 -a. Is D support under code::blocks under active development?
 -b. If we were to use it and then found D specific issues are we likely to 
 see the fixed in a reasonably short time frame?
 
 
 3. “Can Code::Blocks do auto-complete in general and what would it take to 
 make it work for D.”
 -a. I should really answerer the first bit myself but I don’t have
Code::Blocks 
 (or C++) set up on my systems.
 
 
 4. “What is the current stability of dmd 2.0?”
 -a. I said alpha. Please correct me if I’m wrong.
 
 
 5. “What is the estimated “ship date” of dmd 2.0?”
 
 
 6. “What is the new features list for dmd 2.0? “
 
 
 
 I generally develop with a good text editor and a build script so I’m not 
 at all up to date on IDE’s and such so I have a few questions of my own:
 
 1. What is the state of the art in IDE’s for D? Code::Blocks? Eclipse+Decent?
 
 2. What stage are these in? Stable, approaching stability, active development, 
 in development but not very active? 
 
 3. Same for debuggers. I know ddbg works on windows and for Linux there is 
 a GDB patch and ZeroBugs. However I haven’t seen much recent work on any 
 of these. 
 
 4. Direct question to Walter (and the developers of the other tools) If we 
 were to use D and run into a blocking issue, can we effect your properties 
 with regards to resolving it? (This assumes that the issue is not a language 
 design issue.)
 
 
 If I get enough responses that I can put together a report of some kind for 
 my boss I’ll post it somewhere (with necessary redactions ;-)
 
 

Mar 16 2008
parent BCS <BCS pathlink.com> writes:
Lawrence wrote:
 I do know that code::blocks just released a new stable version 8.02
 However, I have it set up to compile C++ although it is suppose to do
 d also. Zeus for windows looks very promising as an IDE for d. It is already
 partly setup and has detailed instructions on the web site and in the help
 menu. It will do auto-completion and context sensitive help for both D1
 and Tango. It can also be setup to use ddbg as the frontend for its
 debugger. I have just finished setting it up to use as my d IDE but have
 not as yet tried it out. I will let you know if it works OK or not.
 
 lh
 

thanks, looking forward to it.
Mar 17 2008