No header files?

BCS none at anon.com
Wed Oct 28 11:51:59 PDT 2009


Hello Yigal,

> On 27/10/2009 22:50, BCS wrote:
> 
>> And as soon as you *require* an IDE to view the stuff, working
>> without one goes from 'less than ideal' to functionally impossible. I
>> think we have been over this ground before; I have major issues with
>> tool chains that are more or less impossible to use without a
>> language aware IDE. I know there are productivity gains to be had
>> from IDEs and I know that even in the best of cases working without
>> one will cost something. What I'm saying is that I want it to be
>> *possible* to work without one.
>> 
> I'm not requiring anything of that sort. I view the metadata as
> machine readable information that is processed by tools like compilers
> and third party tools. The metadata is required to link in a binary
> lib file NOT as documentation of the interface.
> 

In theory yes. In practice....

If the meat data can be used for auto compleat then someone will make an 
IDE tool that does that. Once that happens the meta data can function as 
documentation and soon some people will start expecting people to use it 
as documentation. At that point it we functional be documentation. And now, 
even with the best of intentions, we are where I don't want to be. If it 
is possible to link a program without some human readable "documentation" 
you /will/ end up with libraries where the only documentation is non human 
readable.

>>> comparing to original source is useless - commercial companies may
>>> want to protect their commercial secrets and provide you with only a
>>> binary file and the bare minimum to use that file in your projects.
>>> D needs to support that option.
>>> 
>> I agree. What I want is that your "binary file and the bare minimum
>> to use that file" includes something with the public API that can be
>> handedly read with a text editor. (Really I'd like DMD to force
>> people it to include a proper well written documentation file with
>> good code examples and a nice tutorial but we all know that's not
>> going to happen).
>> 
> that handily readable something is documentation. NOT header files. If
> you really insist you can generate man pages or text files but for
> documentation MUST be easy to navigate such as click-able PDF, HTML,
> etc.
> look at this this way: a lib is a binary file with binary meta-data
> not
> ment for human beings. in order to know what API functions that lib
> provides you must provide documentation as described above and that's
> trivial to generate even without a single comment in the source.
> if you allow for header files that gives a reason for lazy programmers
> not to generate the documentation, even though it's as simple as
> adding
> a line in the makefile

Some fraction of libs will be shipped with the minimum needed to compile 
and link. If that doesn't include some form of documentation, some fraction 
of libs will ship without documentation. The point about trivially generateable 
is exactly the crux of the issue; it trivially generateable *with the right 
tools*. With the right tools (a good IDE) it's not no only trivial to generate 
but you don't even need to generate it. And now we are right back where I 
don;t want to be with a language that end up being nearly impossible to use 
without a pile of extra tools that are not otherwise needed. 
.
>>>> I'm cynical enough that I'd bet if D switches to a "smarter lib
>>>> format"
>>>> a lot of people would manage to forget the documentation.
>>>> With the current system, the library must be shipped with, at a
>>>> minimum,
>>>> a human readable list of prototypes.
>>> without proper documentation people will have no way to know how to
>>> use such libraries.
>>> 
>> If the lib is worth useing, the function names will tell you
>> something.
>> 
> and those function names would be provided in an easy to navigate and
> read HTML format. not in header files.

"What HTML file? The vendor didn't ship my PHB an HTML file."






More information about the Digitalmars-d mailing list