Path: csiph.com!usenet.pasdenom.info!gegeweb.org!newsfeed0.kamp.net!newsfeed.kamp.net!feeder1.cambriumusenet.nl!82.197.223.103.MISMATCH!feeder3.cambriumusenet.nl!feed.tweaknews.nl!194.109.133.83.MISMATCH!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.024 X-Spam-Evidence: '*H*': 0.95; '*S*': 0.00; 'languages,': 0.04; 'string': 0.09; 'bash': 0.09; 'boundaries': 0.09; 'specified,': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'anybody.': 0.16; 'concerted': 0.16; 'expect,': 0.16; 'fiddle': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'java.': 0.16; 'least)': 0.16; 'underlying': 0.16; 'java,': 0.16; 'wrote:': 0.18; 'library': 0.18; "python's": 0.19; 'thu,': 0.19; 'saying': 0.22; 'cc:addr:python.org': 0.22; 'lets': 0.24; 'decide': 0.24; '(or': 0.24; 'cc:2**0': 0.24; 'world,': 0.26; 'gets': 0.27; 'header:In-Reply-To:1': 0.27; 'chris': 0.29; 'am,': 0.29; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'anyone': 0.31; 'class': 0.32; 'another': 0.32; 'but': 0.35; 'received:google.com': 0.35; 'really': 0.36; 'doubt': 0.36; 'everyone.': 0.36; 'useful': 0.36; 'should': 0.36; 'application': 0.37; 'turn': 0.37; 'list': 0.37; 'functional': 0.39; 'sure': 0.39; 'either': 0.39; 'is.': 0.60; "you'll": 0.62; "you've": 0.63; 'become': 0.64; 'more': 0.64; '30,': 0.65; 'between': 0.67; 'biggest': 0.67; 'believe': 0.68; 'hints': 0.68; 'policy.': 0.68; "class's": 0.84; 'etc,': 0.84; 'everything,': 0.84; 'official,': 0.84; 'pike': 0.84; 'lift': 0.91; 'to:none': 0.92 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 :content-type; bh=YWHO2d8oa2UO531n7AKvfD7MD0vr1qKmmn+AJkU9v+8=; b=WRIcaHfvwFbNqEJH5Mu484Ht+gX4Lg2ucHlqiD4pX42yEbCEVp8gWR4VABXaVc2PWE gbY+VO+Fg09h/qIN2fXhhrhIWf+djsIPXt4Ayp4luwtUYzwP99E8psCKA1SkLM0Nnm/Q l0fnw5pshoR6hmzNhRbpeCnCqZGx0sHlxiBuDnQzgZjLR3r0JO6bejFWTdIIrZIxInMd hMbO/dXpOkAqBPyp/vPQz8+Gcv+Oop6o4I3WA1VZgYQ+TNkxGLvzK27xVtefTaSKEKBM FvrsbmxowhsWjj3xnRoapvlOCsb9EAihJ/GfGGJ792u0zVWaEaJg/2vAiZ6f3PJR65ul n2Lg== MIME-Version: 1.0 X-Received: by 10.107.136.68 with SMTP id k65mr14047658iod.43.1414608219121; Wed, 29 Oct 2014 11:43:39 -0700 (PDT) In-Reply-To: <87vbn268oc.fsf@elektro.pacujo.net> References: <99399d4a-902d-42d9-86c8-7bdcd2a766cc@googlegroups.com> <18fa60be-225e-422d-82de-902c4a0c66da@googlegroups.com> <545127D8.1040408@stoneleaf.us> <87vbn268oc.fsf@elektro.pacujo.net> Date: Thu, 30 Oct 2014 05:43:39 +1100 Subject: Re: optional types From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 29 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1414608222 news.xs4all.nl 2914 [2001:888:2000:d::a6]:55989 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:79931 On Thu, Oct 30, 2014 at 5:18 AM, Marko Rauhamaa wrote: > Chris Angelico : > >> Yes, but if it's official, the standard library (large parts of it, at >> least) will use it, which will make it a lot more useful than it >> currently is. > > I doubt it. Python should decide if it wants to stay Python or become > another Java. I don't really believe in this "be everything for > everybody" thing. You'll only become nothing for anybody. Mebbe. More likely, Python wants to lift ideas from anyone and everyone. List comprehensions came from the functional world, flexible string representation came from Pike or bash (or was independently invented), etc, etc. Python won't turn into Java. The biggest philosophical difference between the languages, as I see it, is Java's rigidity of boundaries versus Python's consenting-adults policy. In Java, you write getters and setters for everything, you lock your class up and make sure people use it ONLY in the ways you've specified, you declare parameters/return values/exceptions so people know exactly what to expect, etc. Python gets out of your way and lets you write a single application as a concerted whole; if you want to "reach in" and fiddle with another class's members, go for it. I'm not saying that either philosophy is *wrong*, of course, but just adding type hints to Python isn't going to change the underlying philosophical model. ChrisA