Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Chris Angelico Newsgroups: comp.lang.python Subject: Re: Guido sees the light: PEP 8 updated Date: Wed, 20 Apr 2016 12:21:50 +1000 Lines: 55 Message-ID: References: <5711c1b3$0$1596$c3e8da3$5496439d@news.astraweb.com> <87h9f26ioa.fsf@elektro.pacujo.net> <1460809922.1918014.580580553.0AE05EE4@webmail.messagingengine.com> <878u0d7az5.fsf@elektro.pacujo.net> <93639142-6b82-4b8a-8bd0-7f4593e1f692@googlegroups.com> <5716595b$0$1585$c3e8da3$5496439d@news.astraweb.com> <3d95437c-6427-46d2-8e9f-470f121194cd@googlegroups.com> <20160419124321.361751dc@bigbox.christie.dr> <1461092090.2638611.583593041.7C981FAD@webmail.messagingengine.com> <5716dda3$0$1621$c3e8da3$5496439d@news.astraweb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: news.uni-berlin.de NlxXmrWNNz73bZSJDOp/uAoZ61D5i/Hcek+yD2nB4fPQ== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.013 X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; '(using': 0.07; 'subject:PEP': 0.07; 'turtle': 0.07; 'cc:addr:python-list': 0.09; 'mark.': 0.09; "they've": 0.09; 'turn,': 0.09; 'example:': 0.10; 'wed,': 0.15; '"hello': 0.16; '"if"': 0.16; '"while"': 0.16; '(usually)': 0.16; '2016': 0.16; 'complexity,': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'herself': 0.16; 'nodes': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'scratch': 0.16; 'tagged': 0.16; 'wrote:': 0.16; 'programmer': 0.18; 'language': 0.19; 'cc:2**0': 0.20; 'cc:addr:python.org': 0.20; 'saying': 0.22; 'logical': 0.22; 'programming': 0.22; 'am,': 0.23; 'code,': 0.23; 'code.': 0.23; '(or': 0.23; 'elements': 0.23; 'words': 0.24; 'header:In-Reply- To:1': 0.24; 'sort': 0.25; "i've": 0.25; "doesn't": 0.26; 'coding': 0.27; 'define': 0.27; 'least': 0.27; 'message- id:@mail.gmail.com': 0.27; 'defining': 0.27; 'opposed': 0.27; 'pieces': 0.27; 'actual': 0.28; 'node': 0.29; 'url:wikipedia': 0.29; 'starts': 0.29; "i'm": 0.30; '(including': 0.30; 'url:wiki': 0.30; 'probably': 0.31; 'anyone': 0.32; 'says': 0.32; 'url:tv': 0.32; "who's": 0.32; 'maybe': 0.33; "d'aprano": 0.33; 'point,': 0.33; 'steven': 0.33; 'similar': 0.33; 'languages': 0.34; 'url:code': 0.34; 'handle': 0.34; 'add': 0.34; 'that,': 0.34; 'received:google.com': 0.35; 'text': 0.35; 'primarily': 0.35; 'text.': 0.35; 'something': 0.35; 'but': 0.36; 'url:org': 0.36; 'lines': 0.36; 'received:209.85': 0.36; 'basic': 0.36; 'actions': 0.36; 'flow': 0.36; 'visual': 0.36; 'subject:: ': 0.37; 'two': 0.37; 'there,': 0.37; 'say': 0.37; 'received:209.85.213': 0.37; 'itself': 0.38; 'received:209': 0.38; 'names': 0.38; 'turned': 0.38; 'someone': 0.38; 'url:en': 0.39; 'subject:the': 0.39; 'system.': 0.39; 'where': 0.40; 'still': 0.40; 'some': 0.40; 'ever': 0.60; 'engine': 0.62; 'show': 0.62; 'linked': 0.63; 'movement': 0.63; 'more': 0.63; 'here:': 0.63; 'url:png': 0.64; 'series': 0.65; '20,': 0.66; 'results': 0.66; 'url:v': 0.72; 'obvious': 0.76; 'chrisa': 0.84; 'dimensional': 0.84; 'effectively,': 0.84; 'inherent': 0.84; 'lacks': 0.84; 'notably,': 0.84; "that'll": 0.84; 'to:none': 0.91; 'colour': 0.91; 'graphical': 0.91; 'instant': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc; bh=O+sWyYseESpezjPkjpAzUiYS96cMGiOZLa7IiAo5rZs=; b=ExXKEhEC79oBywBKeiirPU2irnoITnLZcomZa5HvftbuEx91Yz0BWf0RHtLQ2+8w3T sVyS8xgOsoza850ad51mpZnDJtFSYXSyqmybU5iadnP1KLaQwldOkB9natjQGBmuVgrZ 8FbSYE4PryEOxfxWidGeSvlrWRkgTYrMdihYZcgx7E9WlrecRc9e1Jj1ZIi7jaoZrfoa H09+BYzEm/BcDpPK3KjmI+KMNoK/afspxY1XLhqkUCV2a6+046ZjEMMtOTstvDAD2m3i T+iJl/XcrqeuN351q3sJhRpMlbZ7/RJHe8TuRM4C/38otCPtdEsnuC8fKG8x7rAj5nEw sBYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:cc; bh=O+sWyYseESpezjPkjpAzUiYS96cMGiOZLa7IiAo5rZs=; b=VfppBnFYGuc7l4y/nhASt71utD/FMrBDNzCJOggkiHNn/Adsb6KHlc1+oTQJnSaX7r uEU/IdGMFLt9GScvI/ys9k4oSHlkKEjaXPkuJxmpf4rlhnTKr4aWEWR3mLV4cMNRuhhN 2JCK4tqnnke+7lMBiIV7lfCaKXgPi7UHsQ3DtsdU6dI/KajeSrwXStnrWGKgDstf4+Lk HwG3KwC9uXzQAjVntXkoKL3aTdRV7+WdNL4/uOGl15I6j1fUdlYWzSVJAUeC7VkVhXFU kUBk98C+5V0ohh8suiYRpwDyHwhjjq+cXEaNzx9MKKmD2PCSEwz6ya673kb1FXyb6S9D u3JA== X-Gm-Message-State: AOPr4FXUXoW/F4Sq5EqkO14GSDPR6VvC1JlWlqxJVT5WGdz2KHoEhgvus1QYir74p4klBxvVbr+vyKt00E7FoQ== X-Received: by 10.50.123.132 with SMTP id ma4mr750696igb.92.1461118911072; Tue, 19 Apr 2016 19:21:51 -0700 (PDT) In-Reply-To: <5716dda3$0$1621$c3e8da3$5496439d@news.astraweb.com> 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: X-Mailman-Original-References: <5711c1b3$0$1596$c3e8da3$5496439d@news.astraweb.com> <87h9f26ioa.fsf@elektro.pacujo.net> <1460809922.1918014.580580553.0AE05EE4@webmail.messagingengine.com> <878u0d7az5.fsf@elektro.pacujo.net> <93639142-6b82-4b8a-8bd0-7f4593e1f692@googlegroups.com> <5716595b$0$1585$c3e8da3$5496439d@news.astraweb.com> <3d95437c-6427-46d2-8e9f-470f121194cd@googlegroups.com> <20160419124321.361751dc@bigbox.christie.dr> <1461092090.2638611.583593041.7C981FAD@webmail.messagingengine.com> <5716dda3$0$1621$c3e8da3$5496439d@news.astraweb.com> Xref: csiph.com comp.lang.python:107387 On Wed, Apr 20, 2016 at 11:38 AM, Steven D'Aprano wrote: > As for "visual programming languages" (languages with an inherent visual > form which lacks any simple or obvious text equivalent), they've been a > dead-end. Even languages like Scratch cannot do without text. Look at > the "Hello World" program here: > > https://en.wikipedia.org/wiki/File:Scratch_Hello_World.png > > The graphical elements are pure presentation, to make it more palatable to > children and beginners. > > Don't think that I'm opposed to such visual presentations. Scratch itself is aimed at children, but there's a very similar language (or maybe it's actually a Scratch derivative) used by the Unreal Engine to animate sprites - the "blueprint" system. I've seen it used by someone who doesn't consider herself a programmer in any way, yet she has a sufficiently logical mind to do the same kind of work as programming requires. Effectively, flow control has been turned into a two-dimensional graph, with nodes pointing to other nodes, but each node is still described primarily with text (using colour to add instant recognition). I think there's a lot of value in depicting flow control graphically. For anyone who's accustomed to working visually, seeing nice little tagged blocks of "stuff", linked by little lines to show how you get from one to another, is way easier to handle than a page of "while" and "if" and "else" statements. But even there, each piece of flow control is *defined* in text - there's a short message saying what the condition is, and then two or more pieces of text defining the potential results of the condition, from which you can link to destinations. https://www.twitch.tv/ellalune/v/59455498 - starts at about the 41 minute mark. Notably, around the 00:42:30 point, I say that this is code, and she says that, well, it sort of is code, but it doesn't *feel* like code. Probably the least text-y form of coding that I've ever seen is turtle graphics, where you depict something using (usually) two dimensional movement and rotation. But even there, it's normal to use text to define all the actual actions. Take this, for example: https://studio.code.org/s/frozen/reset A nice tutorial, a theme that'll appeal to a lot of people (including young children), and primarily point-and-click (or drag) to move components around - but you can *read* the meaning of each component, in *text*. Once again, it uses a visual representation of flow control to bury some of the complexity, but the basic actions (move, turn, etc) are text - and if you want to "capture" a series of actions to reuse, the way to do that is to give it a name, because names and words are how people think. ChrisA