On Friday, 4 May 2012 at 22:38:27 UTC, H. S. Teoh wrote:
On Sat, May 05, 2012 at 12:07:16AM +0200, foobar wrote:
On Friday, 4 May 2012 at 21:11:22 UTC, H. S. Teoh wrote:
>Exactly. And while we're at it, *really* strip unnecessary >stuff from >.di files, like function bodies, template bodies, etc.. That >stuff is >required by the compiler, not the user, so stick that in the >object >files and let the compiler deal with it. The .di file should >be ONLY >what's needed for the user to understand how to use the >library.
>
>
>T

You contradict yourself.
The purpose of di files *is* to provide the compiler the required info to use the binary object/library. If you want human readable
docs we already have DDoc (and other 3rd party tools) for that.
If you don't like the default HTML output (I can't fathom why) you can easily define appropriate macros for other output types such as
TeX (and PDF via external converter), text based, etc..

HTML is a stupid format, and ddoc output is not very navigable, but that's beside the point. I prefer to be reading actual code to be 100% sure that ddoc isn't leaving out some stuff that I should know about. All it takes is for somebody to leave out a doc comment and a particular declaration becomes invisible. (For example, std.uni was next to useless before I discovered that it actually had functions that I needed, but they didn't show up in dlang.org 'cos somebody failed to write doc comments for them.) I've seen too many commercial projects to believe for a moment that documentation is ever up-to-date. It depends on the library authors to provide ddoc output formats in a sane, usable format. Whereas if the compiler had a standardized, uniform, understandable
format in well-known code syntax, that's a lot more dependable.

It's often impossible to debug something if you don't get to see what the compiler sees. I suppose you could argue that leaving out function bodies and stuff amounts to the same thing, but at least the language's interface for a function is the function's signature. When you have a .di file, you're guaranteed that all public declarations are there, and you can see exactly what they are. Of course, IF ddoc can be guaranteed to produce exactly what's in a .di file, then I concede that it is
sufficient this purpose.


T

This all amounts to the issues you have with the current implementation of DDoc which I agree needs more work.
The solution then is to fix/enhance DDoc.
Doxygen for instance has a setting to output all declarations whether documented or not, thus addressing your main point.

The projects you speak of I assume are written in C/C++? Those tend to have poor documentation precisely because people assume the header files are enough. C/C++ requires you to install a 3rd party doc tool and learn that tool's doc syntax - effort that people are too lazy to invest.

In the Java world the syntax is standardized, the tool comes bundled with the compiler, all tools speak it and IDEs will even insert empty doc comment for you automatically. Frankly it takes effort to *not* document your code in this setting. D provides DDoc precisely because it strives to provide the same doc friendly setting as Java.

Reply via email to