all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Nikolay Kudryavtsev <nikolay.kudryavtsev@gmail.com>
To: 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 14:36:12 +0300	[thread overview]
Message-ID: <1f0a4527-e669-a618-8864-baf9ec4c27e0@gmail.com> (raw)
In-Reply-To: <54A01FC0-6692-411D-91CB-764402C7BF14@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.

I'm not saying that it's impossible to build a better documentation 
system than we currently have in info. It's just a massive investment 
that would at best be a very slight improvement.

As a practical example I installed Zeal and downloaded MySQL manual for 
it. It has different indexes, but there is no table of contents(1). 
Let's say I want to calculate a logarithm. I go by function index and 
find one of the log functions. Luckily that's the full MySQL Reference 
Manual and not some javadoc abomination and it provides all log 
functions within the same context, and that within a broader context of 
math functions. Also I can't search the whole manual at once, only 
indexes or a single chapter(2). And it's worth noting that the search is 
just a dumb text search(just as in info) and not some natural language 
processing one as proposed by Etienne Prud’homme in this thread. So, due 
to 1 and 2 Zeal is not superior to info in usability, while 
discoverability is a feature of the material and not presentation.

-- 
Best Regards,
Nikolay Kudryavtsev




  reply	other threads:[~2017-06-10 11:36 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 [this message]
2017-06-10 14:26                                   ` Drew Adams
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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1f0a4527-e669-a618-8864-baf9ec4c27e0@gmail.com \
    --to=nikolay.kudryavtsev@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=jean.christophe.helary@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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.