Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!newsfeed.xs4all.nl!newsfeed1.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.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'scripts': 0.03; 'languages,': 0.04; 'cpython': 0.05; 'true,': 0.05; 'subject:Python': 0.06; 'javascript,': 0.07; 'only,': 0.07; 'pypy': 0.07; 'steve': 0.09; 'bindings': 0.09; 'main()': 0.09; 'python': 0.11; "wouldn't": 0.14; '"int': 0.16; '*any*': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'hayes': 0.16; 'inverse': 0.16; 'tends': 0.16; 'language': 0.16; 'wrote:': 0.18; 'wed,': 0.18; "python's": 0.19; 'thu,': 0.19; '>>>': 0.22; 'python?': 0.22; 'browsers': 0.24; 'certainly': 0.24; 'tells': 0.24; 'header:In-Reply-To:1': 0.27; 'specifically': 0.29; '[1]': 0.29; 'absolute': 0.30; 'andrew': 0.30; 'especially': 0.30; 'message-id:@mail.gmail.com': 0.30; 'gives': 0.31; 'code': 0.31; 'that.': 0.31; 'fighting': 0.31; 'sep': 0.31; 'anyone': 0.31; 'run': 0.32; 'ago': 0.33; 'not.': 0.33; 'plain': 0.33; "i'd": 0.34; 'could': 0.34; 'advice': 0.35; 'something': 0.35; 'one,': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'building': 0.35; 'there': 0.35; '+0200,': 0.36; 'too': 0.37; 'level': 0.37; 'minimum': 0.38; 'sometimes': 0.38; 'massive': 0.38; 'needed': 0.38; 'to:addr:python-list': 0.38; 'pm,': 0.38; 'rather': 0.38; 'short': 0.38; 'extremely': 0.39; 'to:addr:python.org': 0.39; 'worry': 0.60; 'affect': 0.61; 'lower': 0.61; 'numbers': 0.61; "you're": 0.61; 'first': 0.61; 'kind': 0.63; 'goals': 0.81; 'church': 0.84; 'now)': 0.84; 'subject:guide': 0.84; 'graphical': 0.91; 'suited': 0.93; '2013': 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:to :content-type; bh=UADKPcQIIqO9eEY/RbaVTugci4juBOc9dsIgbqk2yKo=; b=VotSqwvPOE3Vx8TpV8UzzoUO+8pmR2KzR3vlCE3EcRRKLSLusQYRlOgxbRU/zcxeCE r0RFRvXS2u214c/3d1W1dOU/7/wtlVLWKbBKpIyiJx0w5LfJOq0+IwFgn1enksVftA7f 6afTxhWYalTehE7hXW3Q8VvGcaKWh12W1+rc8zCcf7xlqShee0qh1ufPmQ4hgEvsY4Xa IsDaWOmxREPcTwz1pYAmL414CsnTYetsZgKCgUHqMVqngQtiKxPw8fCjYcbrxHMeGA8J sHiuoms8IIho5JQZkPhcmrm1jh4leBytAJ+nXtsTOGzQRGidaLnKZOqbdADBg0NlBc6S TV8A== MIME-Version: 1.0 X-Received: by 10.58.165.70 with SMTP id yw6mr5802102veb.19.1378354474511; Wed, 04 Sep 2013 21:14:34 -0700 (PDT) In-Reply-To: <52280285.4040902@gmail.com> References: <52280285.4040902@gmail.com> Date: Thu, 5 Sep 2013 14:14:34 +1000 Subject: Re: Beginner's guide to Python From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 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: 40 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1378354477 news.xs4all.nl 16001 [2001:888:2000:d::a6]:49417 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:53670 On Thu, Sep 5, 2013 at 2:03 PM, Andrew Berg wrote: > On 2013.09.04 22:39, Dennis Lee Bieber wrote: >> On Wed, 04 Sep 2013 07:26:47 +0200, Steve Hayes >> declaimed the following: >> >>>Can anyone recommend a web site that gives a good beginner's guide to Python? >>> >>>One that tells one, especially -- >>> >>>-- what kind of projects Python is good for >> >> So far as I know, Python is "Turing-complete" -- it can be used for >> anything... > So is Brainfuck, but I wouldn't say it's good for *any* project... There are always surprises. A few years ago (okay, a good few now) I was gobsmacked to learn that JavaScript, which I'd always thought was for web browsers only, could be used for writing web *servers*. And the inverse is true, too - Pike, a language specifically designed for building servers (specifically MUDs - plain text), has bindings for GTK, so it can be used for writing graphical desktop applications. But there are definite goals and philosophies that affect whether a language is good for something or not. Python is extremely well suited to short scripts that do one tiny thing and immediately shut down, because it has an absolute minimum of boilerplate; other languages, where you have to wrap your code up in "int main() { ... }" are less suited to that. On the flip side, Python's object model tends to be less well suited to massive scaling; I don't know about PyPy and other Pythons, but certainly CPython isn't designed to run on arbitrary numbers of cores (once you go to multiprocessing, you then need to worry about IPC; if you work in a lower level language like C, you can use threads and directly access each other's memory). "Everything is permissible" - but not everything is constructive. [1] Sometimes you're fighting the language rather than working with it. ChrisA [1] Did you know that the Corinthian church needed advice on programming? First letter, tenth chapter, twenty-third verse.