From: Drew Adams <drew.adams@oracle.com>
To: Nikolay Kudryavtsev <nikolay.kudryavtsev@gmail.com>,
Jean-Christophe Helary <jean.christophe.helary@gmail.com>,
emacs-devel <emacs-devel@gnu.org>
Subject: RE: docstrings and elisp reference
Date: Sat, 10 Jun 2017 07:26:25 -0700 (PDT) [thread overview]
Message-ID: <f32aabf7-7ad3-4e4f-bcce-460643fe34e5@default> (raw)
In-Reply-To: <1f0a4527-e669-a618-8864-baf9ec4c27e0@gmail.com>
> What's important to understand here is that docstring documentation
> is of very limited use. This applies to both Emacs docstrings and
> everything created by javadoc and its cousins.
>
> Let's say I want to do something with an API that I have no prior
> knowledge of and I have only the docstring documentation. I start by
> searching docstrings for something that looks vaguely useful for solving
> the problem at hand. Would the first thing(be it a class, or a function)
> I found be the optimal solution?
>
> Maybe there's actually a more
> specialized version of this function that better suits my case. Or maybe
> it's the opposite - I stumbled into a specialized function, where the
> broader one is more suited for me. There's no way to know until you read
> everything that looks even slightly important.
>
> Because of this, the documentation needs some glue, that puts separate
> elements into a proper context. Docstrings are incapable of solving this
> problem yet. You can't just have docstrings that go "if you find this
> function useful, maybe you actually need this-other-function or maybe
> this-totally-other-function".
>
> The key word here is _discoverability_. Because of this, you can't just
> dispose for example of Elisp manual, since it's exactly that rug that
> ties the room together.
+1. Plus: the source code - in particular, Lisp.
That's the glue behind the glue and the single source of
information and truth. (Well, not quite single - see C.)
A typical such quest might lead from one or more doc strings
to the Elisp manual, and then to source code - to find the
most useful functions and variables to use, or to find parts
of the code that are enlightening or useful for constructing
new code for the job.
Or it might lead from the Elisp manual to one or both of
the other sources of such info. Or it might lead from
a single doc string to the source code. Or back & forth.
All three are useful: doc strings, Elisp manual, source
code. They overlap, but they also complement each other,
sometimes in terms of information content but mainly in
terms of presentation, audience, and means of access.
It's all in the source code, but the other, help, features
often facilitate discoverability and improve understanding.
Similarly, other help commands and functions: apropos etc.
Yes, Java source code is also consultable. But I think
that the boost that you get from combining the various
information sources that Emacs offers is something more.
I don't think that JavaDoc (especially typical JavaDoc!)
plus source code gives you what you get with Emacs.
Partly that is due to Lisp being what Lisp is, perhaps,
but it is also probably due to the ubiquitous and
fine-scale attachment of doc/help to code and even to
Lisp symbols.
The comment above about "typical JavaDoc" is really
meant to emphasize this other aspect of Emacs help:
It is good not just because the constructs of doc
strings and manual _exist_ but because key people
in Emacs development have long insisted on their
importance. Just being able to attach doc strings
or create JavaDoc is not enough. You also need a
commitment to using them to create good help.
Good help does not fall from the sky. It does not
come for free, generated from the source code.
Why? Because part of the job of coming up with
good help involves addressing the possible
audiences, contexts and use cases. Unless and
until info about that is encoded in the source
code, it needs to be added. (And encoding it in
the source code would involve the same "user
documentation" work.)
IMHO, that commitment is the most important factor -
the glue behind the glue. Let's hope it continues.
There is no substitute for careful human time and
clear eyes devoted to help/doc. No degree of
"reuse" or generation of deliverables can substitute
for that. Tools are fine, but they don't replace
paying attention.
next prev parent reply other threads:[~2017-06-10 14:26 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-05 21:26 docstrings and elisp reference Jean-Christophe Helary
2017-06-06 0:09 ` Tino Calancha
2017-06-06 5:10 ` Jean-Christophe Helary
2017-06-06 15:03 ` Eli Zaretskii
2017-06-06 20:25 ` Stephen Leake
2017-06-06 20:36 ` Drew Adams
2017-06-08 2:29 ` Etienne Prud’homme
2017-06-08 3:48 ` Jean-Christophe Helary
2017-06-08 5:39 ` Chad Brown
2017-06-08 8:12 ` Jean-Christophe Helary
2017-06-08 15:11 ` Eli Zaretskii
2017-06-08 15:42 ` Jean-Christophe Helary
2017-06-09 0:25 ` Chad Brown
2017-06-08 18:29 ` Etienne Prud’homme
2017-06-09 4:10 ` Richard Stallman
2017-06-08 15:18 ` Eli Zaretskii
2017-06-08 18:10 ` Etienne Prud’homme
2017-06-08 19:14 ` Eli Zaretskii
2017-06-08 20:07 ` Drew Adams
2017-06-08 20:22 ` Etienne Prud’homme
2017-06-08 22:44 ` Jean-Christophe Helary
2017-06-09 4:10 ` Richard Stallman
2017-06-09 5:20 ` Etienne Prud’homme
2017-06-09 7:08 ` Eli Zaretskii
2017-06-09 8:27 ` Yuri Khan
2017-06-09 9:38 ` Eli Zaretskii
2017-06-09 12:21 ` Eli Zaretskii
2017-06-09 12:32 ` Yuri Khan
2017-06-09 13:46 ` Eli Zaretskii
2017-06-09 19:24 ` Etienne Prud’homme
2017-06-10 1:06 ` Jean-Christophe Helary
2017-06-10 11:36 ` Nikolay Kudryavtsev
2017-06-10 14:26 ` Drew Adams [this message]
2017-06-10 3:19 ` Richard Stallman
2017-06-10 7:31 ` Eli Zaretskii
2017-06-11 2:43 ` Richard Stallman
2017-06-11 2:44 ` Richard Stallman
2017-06-11 15:18 ` Stefan Monnier
2017-06-12 2:52 ` Richard Stallman
2017-06-12 3:27 ` Stefan Monnier
2017-06-13 3:25 ` Richard Stallman
2017-06-10 8:22 ` Yuri Khan
2017-06-10 3:19 ` Richard Stallman
2017-06-06 20:45 ` Joost Kremers
2017-06-07 13:03 ` Stefan Monnier
2017-06-07 13:23 ` Yuri Khan
2017-06-07 13:31 ` Stefan Monnier
2017-06-07 14:18 ` Drew Adams
2017-06-07 15:43 ` Eli Zaretskii
2017-06-06 20:47 ` Dmitry Gutov
2017-06-06 21:21 ` Drew Adams
2017-06-06 21:50 ` Dmitry Gutov
2017-06-07 5:28 ` Eli Zaretskii
2017-06-17 12:46 ` Dmitry Gutov
2017-06-17 13:04 ` Alan Mackenzie
2017-06-17 13:55 ` Dmitry Gutov
2017-06-17 20:14 ` Alan Mackenzie
2017-06-18 2:32 ` Eli Zaretskii
2017-06-18 19:52 ` Richard Stallman
2017-06-17 22:13 ` Richard Stallman
2017-06-20 18:05 ` John Wiegley
2017-06-17 14:10 ` Eli Zaretskii
2017-06-17 15:13 ` Stefan Monnier
2017-06-17 18:59 ` Paul Eggert
2017-06-17 14:52 ` Drew Adams
2017-06-19 18:31 ` Thien-Thi Nguyen
2017-06-07 14:05 ` Drew Adams
2017-06-07 14:27 ` Drew Adams
2017-06-08 1:27 ` Richard Stallman
2017-06-06 22:42 ` Richard Stallman
2017-06-06 22:49 ` Dmitry Gutov
2017-06-07 5:20 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f32aabf7-7ad3-4e4f-bcce-460643fe34e5@default \
--to=drew.adams@oracle.com \
--cc=emacs-devel@gnu.org \
--cc=jean.christophe.helary@gmail.com \
--cc=nikolay.kudryavtsev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).