Path: csiph.com!news.swapon.de!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!feeder.erje.net!1.eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!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; 'subject:Django': 0.03; 'framework.': 0.07; 'seemed': 0.07; 'socket': 0.07; 'cc:addr :python-list': 0.09; 'app,': 0.09; 'indicates': 0.09; 'libraries.': 0.09; 'python.': 0.11; 'language,': 0.11; 'causing': 0.13; 'django': 0.13; '11:30': 0.16; 'at.': 0.16; 'correctness': 0.16; 'correctness.': 0.16; 'distinction': 0.16; 'dsl,': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; "he'll": 0.16; 'help;': 0.16; 'install.': 0.16; 'quantum': 0.16; 'relates': 0.16; 'say.': 0.16; 'templating': 0.16; 'wrote:': 0.16; "wouldn't": 0.16; 'frameworks': 0.18; 'library,': 0.18; 'library': 0.20; '2015': 0.20; 'cc:2**0': 0.20; 'cc:addr:python.org': 0.20; 'aug': 0.20; 'issue.': 0.20; 'saying': 0.22; 'libraries': 0.22; 'referring': 0.22; 'am,': 0.23; 'slightly': 0.23; 'implemented': 0.24; 'header:In-Reply-To:1': 0.24; 'discussion': 0.24; 'install': 0.25; "i've": 0.25; "doesn't": 0.26; '(which': 0.26; 'sense': 0.26; 'fri,': 0.27; 'message-id:@mail.gmail.com': 0.27; '14,': 0.27; '(optional)': 0.29; 'about.': 0.29; 'context,': 0.29; 'request,': 0.29; 'system?': 0.29; "i'm": 0.30; 'too.': 0.30; 'code': 0.30; 'probably': 0.31; '"the': 0.32; 'getting': 0.33; 'michael': 0.33; 'usually': 0.33; 'http': 0.33; 'view,': 0.33; 'structure': 0.34; 'gets': 0.35; 'received:google.com': 0.35; 'quite': 0.35; "isn't": 0.35; 'but': 0.36; 'framework': 0.36; 'subject:?': 0.36; 'subject:: ': 0.37; 'really': 0.37; 'thought': 0.37; 'things': 0.38; 'detail': 0.38; 'difference': 0.38; "won't": 0.38; 'goes': 0.39; 'sure': 0.39; 'subject:the': 0.39; 'along': 0.39; 'term': 0.60; 'him': 0.60; 'care': 0.60; 'your': 0.60; 'making': 0.62; 'course': 0.62; 'intent': 0.66; 'matter.': 0.66; 'connection,': 0.72; 'electrical': 0.72; 'directed': 0.81; 'chrisa': 0.84; 'confusing': 0.84; 'lying': 0.84; 'mechanics': 0.84; 'to:none': 0.91; 'on?': 0.91; 'hands': 0.96 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=1TRa+ekp26kgGFyxECXll+KM4x/0PGn774rKxa3NERU=; b=FDyHGqEvOdk7/me5QNIwEQ/MkHRKzry1MUebW5OtMA71vApmuThg6hLmmf6R3R61+X 0eKusAc9cvsNPK075cY8Lhyy97JLF6XrwC2/SR2Jso3xV2KL+jD716Xxq4epcmr9k4Or 6duVQTQnOFq5YwBJhquL4+FxTTlG3MhPrL9Zn/rZk5Twa95jsE1pWdGGR/T6tpOTTarx sV2OVzbKTMPZREKsdXNl7vCgnP9zpxa/arPFtBxaSzEyc/KzD0uSY/Cl7eNiCx8ROqve zNOslkF3xp+BGF5Bw/kbEnCbhYCM2bK/tvkvaaEm6BeZ9to7uyzEo51b57MunLB7afhA Epig== MIME-Version: 1.0 X-Received: by 10.50.124.97 with SMTP id mh1mr363741igb.92.1439516682994; Thu, 13 Aug 2015 18:44:42 -0700 (PDT) In-Reply-To: <55CD3EC6.7030300@gmail.com> References: <55C7E15C.6070003@verizon.net> <6f2dc159-146b-44b8-b72e-fa34c4dc43cf@googlegroups.com> <55CD3EC6.7030300@gmail.com> Date: Fri, 14 Aug 2015 11:44:42 +1000 Subject: Re: Is Django the way to go for a newbie? 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.20+ 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: 41 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1439516685 news.xs4all.nl 2843 [2001:888:2000:d::a6]:44424 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:95364 On Fri, Aug 14, 2015 at 11:05 AM, Michael Torrie wrote: > Given that until recently he thought Django was an IDE, I think calling > Django a library is fair, as it describes to him how it relates to > Python. You download it and install it and it goes in site-packages > along with all the other libraries you might install. Of course it > comes with utilities as well (which I mentioned). Making the > distinctions you are making, in this context, is probably ultimately > going to be confusing to him at this stage of the game. As he gets > familiar with django I don't think he'll find this original > simplification confusing, nor has it seemed to make this discussion a mess. > > As to the DSL, I'm not quite sure which part of django you're getting > at. Are you referring to the (optional) templating system? My view, for what it's worth: Django is a library, but it's also a framework. The difference isn't really that great, and most frameworks are implemented using libraries. The "library vs framework" distinction, from an application's standpoint, broadly one of how you structure your code - do you write a bunch of top-level code that calls on library functions, or do you write a bunch of functions that the framework calls on? The distinction can blur some, too. And as Michael says, the slight simplification isn't causing problems, so it's really only a technical correctness issue. (Pedantry, in the best sense of the word.) I've often explained things using technically-incorrect language, because going into immense detail won't help; we don't explain quantum mechanics and the nuances of electrical engineering when we explain how an HTTP request arrives at your app, because it doesn't matter. Saying "The system hands you a request to process" is slightly sloppy even from a network admin's perspective (what you actually get is a socket connection, and then you read from that until you reckon you have the whole request, yada yada), but it's what you most likely care about. On Fri, Aug 14, 2015 at 11:30 AM, Rustom Mody wrote: > Purposive, directed lying is usually better pedagogy than legalistic correctness. Right :) Only I wouldn't call it "lying", as that term indicates an intent to deceive. Purposeful inaccuracy, let's say. ChrisA