Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!feeder.news-service.com!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!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.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python,': 0.01; 'languages,': 0.03; 'python.': 0.04; 'distinct': 0.05; 'perl,': 0.05; 'python?': 0.05; 'xml,': 0.05; 'subject:Python': 0.06; 'dictionary': 0.07; 'flows': 0.07; 'indentation': 0.07; 'path,': 0.07; 'programmers,': 0.07; "shouldn't": 0.07; 'though.': 0.07; 'type,': 0.07; 'python': 0.08; 'basic,': 0.09; 'consume': 0.09; 'framework,': 0.09; 'orm,': 0.09; 'processor,': 0.09; 'syntax.': 0.09; 'variables.': 0.09; 'scripts': 0.10; 'programmer': 0.11; 'syntax': 0.11; 'discussions': 0.12; 'server,': 0.12; 'written': 0.14; 'archive,': 0.16; 'code!': 0.16; 'it...': 0.16; 'json,': 0.16; 'lab.': 0.16; 'no...': 0.16; 'old-style': 0.16; 'orm': 0.16; 'perl.': 0.16; 'root,': 0.16; 'structures,': 0.16; 'style,': 0.16; 'templating': 0.16; 'terse': 0.16; 'thick': 0.16; "wouldn't": 0.17; 'language,': 0.17; 'mapping': 0.19; 'model,': 0.19; 'perl': 0.19; 'shell': 0.19; 'command': 0.19; '(which': 0.20; 'java': 0.21; 'framework': 0.22; 'right,': 0.22; 'code.': 0.22; 'tests.': 0.23; 'received:209.85.161.46': 0.23; 'received:mail- fx0-f46.google.com': 0.23; 'structure': 0.23; 'asked': 0.24; 'code': 0.24; "doesn't": 0.25; 'somebody': 0.25; 'libraries': 0.25; '(and': 0.25; 'modules': 0.26; 'tests': 0.26; 'received:209.85.161': 0.26; 'object': 0.26; 'script': 0.27; 'noticed': 0.28; '(you': 0.29; 'reaches': 0.29; 'subject:?': 0.29; 'installing': 0.29; 'books': 0.29; 'lists': 0.29; 'code,': 0.29; 'fact': 0.30; 'module': 0.30; 'also.': 0.30; 'blocks': 0.30; 'initiated': 0.30; 'modules,': 0.30; 'ran': 0.30; 'x-mailer:microsoft outlook express 6.00.2900.5931': 0.30; 'yes.': 0.30; 'ago': 0.31; 'this.': 0.31; 'agree': 0.32; 'go.': 0.32; 'to:addr:python-list': 0.33; 'list': 0.33; 'lines': 0.33; "i've": 0.33; 'shows': 0.34; 'light': 0.34; 'view,': 0.34; 'example,': 0.35; 'there': 0.35; 'skip:" 10': 0.35; 'change,': 0.35; 'defining': 0.35; 'exercises': 0.35; 'forces': 0.35; 'languages.': 0.35; 'packages,': 0.35; 'using': 0.35; 'test': 0.35; 'from:': 0.36; 'created': 0.36; 'received:google.com': 0.37; 'members': 0.37; 'something': 0.37; 'received:209.85': 0.37; 'checks': 0.37; 'logging': 0.37; 'ways': 0.37; 'another': 0.37; 'platforms': 0.37; 'matter': 0.63; 'levels': 0.63; 'full': 0.63; 'our': 0.63; 'bring': 0.64; 'respect': 0.65; 'day': 0.67; 'ways,': 0.67; 'freedom': 0.68; 'spaces': 0.73; 'quality': 0.74; 'advantages': 0.77; 'objective': 0.77; 'participants': 0.80; 'beware': 0.84; 'delphi,': 0.84; 'flexibility,': 0.84; 'forever': 0.84; 'ini,': 0.84; 'replacements': 0.84; 'strapped': 0.84; 'subject:Why': 0.84; 'subject:choose': 0.84; 'subject:its': 0.84; 'dark': 0.91; 'good,': 0.91; 'visually': 0.91; 'placement': 0.97 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:from:to:references:subject:date :mime-version:content-type:content-transfer-encoding:x-priority :x-msmail-priority:x-mailer:x-mimeole; bh=gWBFDkOUFqycGg0gLq+iQVbh5dTei2DaKqAD1VJBuc8=; b=pBGLLRVwIhTEiOVValR8CbYkuE4L9awJHG8F0uniqNf208zOxJMKwWbI5WKH/NrbIl MzzASAz6vDlTv9EbQ8kBb+JgU2tDULzlDIRLtfQeqT1SxKYNY7IT3lpIOkXMQ18DCU6A 3BWXdLtfoKvOqx89s9CBkKPI4pGzfTCZQoBPA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:to:references:subject:date:mime-version :content-type:content-transfer-encoding:x-priority:x-msmail-priority :x-mailer:x-mimeole; b=Bh3WiQhbKp4iGI1UAtBF+IUwqecux/BsBGSFihiw+W9lKPjmnYwQx928BAxqkH8GHw qynbMTny/E/aPIbDFbH0rb4ZEsTbGpopXIf9wK3LVGhFbfJPslKbrl7gUyBFqrrKBTxr p8ckbrKLSmYpzwopW24qrJYGF/5hWR3PvLECI= From: "Octavian Rasnita" To: References: <80d59383-36a3-4744-85c4-1a0577f1d3a6@dr5g2000vbb.googlegroups.com> Subject: Re: Why did Quora choose Python for its development? Date: Sun, 22 May 2011 10:44:18 +0300 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6090 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 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: 105 NNTP-Posting-Host: 82.94.164.166 X-Trace: 1306050712 news.xs4all.nl 49038 [::ffff:82.94.164.166]:34421 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:5967 From: "Hansmeet Singh" >i think we should end our butchering of perl on a light note (you may = have > already read this): > EXTERIOR: DAGOBAH -- DAY > With Yoda strapped to his back, Luke climbs up one of > the many thick vines that grow in the swamp until he > reaches the Dagobah statistics lab. Panting heavily, he > continues his exercises -- grepping, installing new > packages, logging in as root, and writing replacements for > two-year-old shell scripts in Python. >=20 > YODA: Code! Yes. A programmer's strength flows from code > maintainability. But beware of Perl. Terse syntax... more > than one way to do it... default variables. The dark side > of code maintainability are they. Easily they flow, quick > to join you when code you write. If once you start down the > dark path, forever will it dominate your destiny, consume > you it will. >=20 > LUKE: Is Perl better than Python? >=20 > YODA: No... no... no. Quicker, easier, more seductive. >=20 > LUKE: But how will I know why Python is better than Perl? >=20 > YODA: You will know. When your code you try to read six months > from now. >=20 I've noticed that on many Perl mailing lists the list members talk very = rarely about Python, but only on this Python mailing list I read many = discussions about Perl, in which most of the participants use to agree = that yes, Python is better, as it shouldn't be obvious that most of the = list members prefer Python. If Python would be so great, you wouldn't talk so much about how bad are = other languages, or if these discussions are not initiated by envy, you = would be also talking about how bad is Visual Basic, or Pascal, or = Delphi, or who knows other languages. A few months ago I have asked how can I create a dictionary from a list, = and there were so many techniques that I think that it is just a = buzzword that in Perl there are many ways to do it, while in Python = there is a single way. In Python I found from the messages I received on = this mailing list that there are a lot of ways, without even beeing a = "recommended" way, while in Perl there is a single way, of course much = shorter and clearer. A bad program can be written in any language, no matter if it is so = strict and forces the programmer to use spaces as a way of defining the = blocks of code, so the fact that Perl is very flexible is an advantage = for the programmer who writes the code. Perl offers the module Perl::Critic which offers a command line that = checks the code for different levels of syntax errors which don't = respect the good practices (which are also published in a book) so if = the program has to be used by more programmers, it is very simple to = bring it to a very standard syntax. Perl also has Perl::Tidy that offers another command line which = re-arrange the code to a standard way, including the indentation type, = the placement of parenthesis, spacing and other things, so the programs = can look visually the same. And these are advantages for those that need to read the code by others = also. Because of its flexibility, Perl offers more advanced modules and = libraries which are not available for Python. For example, Catalyst web = framework is much powerful and flexible than any other Python framework, = because it can be used with any ORM, with any templating system, with = any form processor, with any type of configuration files (Apache style, = ini, JSON, XML, perl data structures, yaml), and it can run with its own = web server, or with mod_perl, FastCGI, cgi, psgi without any change, and = it has a very clean and flexible URL dispatcher that doesn't need to do = (and maintain) the URL mapping in a distinct module made only for this. A Catalyst based application is very easy to maintain because it has a = very clean structure and the command lines that can be used to = automaticly generate the base for controllers, models or views also = generate the base test files and also create a few basic tests for the = created modules, beeing very easy to add new tests. And DBIx::Class ORM is a very powerful ORM and Template-Toolkit a great = templating system, and Moose can be used to create a very powerful = object model, and there are a lot of other very good modules which are = not available for other languages. It can be hard to find the good quality Perl code while you don't know = where to look for though. This is right, because the web is full of = old-style Perl code since the era of Matt's Perl script archive, and the = web is also full of pirated books about using CGI, but talking about = that bad style code shows just that you are talking about something you = don't know. Somebody told that C# and Objective C are good languages. They might be = good, but they are proprietary, and not only that they are proprietary, = but they need to be ran under platforms that cannot be used freely, so = from the freedom point of view, Perl, Ruby, Python and Java are the ways = to go. Octavian