Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Random832 Newsgroups: comp.lang.python Subject: Re: What should Python apps do when asked to show help? Date: Thu, 28 Apr 2016 13:30:06 -0400 Lines: 31 Message-ID: References: <57223b76$0$22140$c3e8da3$5496439d@news.astraweb.com> <1461864606.3216317.592558881.0591528C@webmail.messagingengine.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de edK1pbiffQVr8GCJeIY/Wg0x1bpz5dkwoioAF8k+mMdA== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'anyway.': 0.04; 'subject:Python': 0.05; 'null,': 0.07; 'redirected': 0.07; 'subject:help': 0.07; 'exception,': 0.09; 'positional': 0.09; 'received:internal': 0.09; 'skip:# 30': 0.09; 'stderr': 0.09; 'stdout': 0.09; 'output': 0.13; 'thu,': 0.15; '*should*': 0.16; ' --help': 0.16; '--help.': 0.16; '2016': 0.16; '2>&1': 0.16; 'expects': 0.16; 'message-id:@webmail.messagingengine.com': 0.16; 'received:10.202': 0.16; 'received:10.202.2': 0.16; 'received:66.111': 0.16; 'received:66.111.4': 0.16; 'received:io': 0.16; 'received:messagingengine.com': 0.16; 'received:psf.io': 0.16; 'screen,': 0.16; 'stderr.': 0.16; 'stderr:': 0.16; 'subject:show': 0.16; 'subject:when': 0.16; 'summarize': 0.16; 'wrote:': 0.16; 'basically': 0.18; '(in': 0.18; 'arguments': 0.22; 'sends': 0.22; 'am,': 0.23; '(or': 0.23; 'errors': 0.23; 'header :In-Reply-To:1': 0.24; 'example': 0.26; 'command': 0.26; 'chris': 0.26; 'error': 0.27; 'fri,': 0.27; 'function': 0.28; "i'm": 0.30; 'programmers': 0.30; 'error.': 0.31; 'probably': 0.31; 'screen': 0.32; 'options': 0.33; "d'aprano": 0.33; 'foo': 0.33; 'steven': 0.33; "i'll": 0.33; 'that,': 0.34; 'could': 0.35; 'something': 0.35; 'but': 0.36; 'should': 0.36; 'tool': 0.36; 'to:addr:python- list': 0.36; 'subject:?': 0.36; 'subject:: ': 0.37; 'received:10': 0.37; 'received:66': 0.38; 'sure': 0.39; 'whatever': 0.39; 'to:addr:python.org': 0.40; 'ever': 0.60; 'header:Message-Id:1': 0.61; 'show': 0.62; 'programs': 0.62; 'more': 0.63; "they're": 0.66; 'obvious': 0.76; 'flashes': 0.84 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=go32jHjgxvZPqOTzBny/Scr+KOw=; b=QR9A56 /qW7YW+i/r2hbSIQP1frxDTj3+SUCLYzlBB24Mf6mzIyIlDS25ptLwDyHgk9EsqU IHEUbw3+zfe5ufbZaT0YcaRhvGnjlb10XLU14gzobirxJII7nAOeBaPF76LHjOzg VQTtPIk+QrJZv1Eifzwefja1jf90hJnO8XneY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=go32jHjgxvZPqOT zBny/Scr+KOw=; b=PT437It9Eq47+aIrub3ymOdSEZqSFdYqQ1XO1YHTyRWE0Ho U/uZVS4yUXRvGP3yDg9fYFQJjdieozvvnpMzjkQW8w8bhDHI24MBudMw0lxfsQ2R eWVteabkoQOBzuPbRgUxS0ewIP5G4LyzCNS4h4L4grwuwytb0UcYfj0Suq44= X-Sasl-Enc: fjK7+T2yQy4Cp4OhM2Y4VBf9twmv9CauAPEe4CVLXHjF 1461864606 X-Mailer: MessagingEngine.com Webmail Interface - ajax-f1265324 In-Reply-To: X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <1461864606.3216317.592558881.0591528C@webmail.messagingengine.com> X-Mailman-Original-References: <57223b76$0$22140$c3e8da3$5496439d@news.astraweb.com> Xref: csiph.com comp.lang.python:107814 On Thu, Apr 28, 2016, at 13:06, Chris Angelico wrote: > On Fri, Apr 29, 2016 at 2:33 AM, Steven D'Aprano > wrote: > > Many command line tools simply output help to stdout (or stderr, if they're > > evil), > > I'm not sure stderr is particularly more evil than stdout, but whatever > :) When a tool has very long help and sends it to stderr: $ foo --help ok, it's scrolled off the top, and I could just scroll up, but it's so long I'll have to search for what I want anyway. $ foo --help | less *help flashes on the screen, then blank ~~~~~~ screen from less* #@!@#$#$!#$!@#$@#!$@!#$!@#$!@#$!@#$!@#$ $ foo --help 2>&1 | less Basically the only reason this ever happens is that programmers get lazy and use the same function for usage errors as for --help. A usage error message *should* go to stderr (in order to show up if the program's output has been redirected to null, and so as not to be silently piped to something that expects the program's normal output), but it should be short. Help should go to stdout because the user actually requested it. The obvious exception, and probably the bad example that people are following, is programs that don't actually *have* --help, but briefly summarize all their options and the meanings of positional arguments in the usage error. People start with that, and then expand it to a full-blown GNU-style --help message, but continue sending it to stderr.