[Baypiggies] Frequently Argued Objections

Andrew Toulouse baypiggies at atoulou.se
Fri Jun 20 00:28:45 CEST 2008

Those answers come off as somewhat insular or holier-than-thou. More than a
few people I know factored the Python community's lack of nerdraging into
their decision to learn it over Ruby. Not that you intended that, but some
people might take it as such.

I'd change a few answers. Forgive me if the answers are wrong, I'm a
journeyman, not a master of Python. Here are my answers to the first four:

A1. There are many reasons to make a language case-sensitive, not the least
of which being that many (possibly even most) other languages are also
case-sensitive. Case-sensitivity also encourages a sensible and consistent
naming style.

A2. Since Python's internals are standardizing on Unicode, strings are, by
default, Unicode. The 'u' tag no longer has a purpose, and with the break in
compatibility from 2.x to 3.0, now is the ideal time to remove it from the

A3. There are many things that make languages faster or slower. It is often
the case that the more flexibility a language gives you, the harder it is to
optimize. C++ is fast because it is extremely explicit and much of its logic
can be optimized and transformed into machine code at compile-time. Python,
on the other hand, is much more dynamic, and allows the programmer a great
deal of functionality at run-time. With respect to the lack of lambdas, this
isn't entirely true. There are lambdas that aren't quite as useful as full
functions, but Python also supports nested function definitions, and
functions are first class. Anywhere a lambda can be used, a function can be
used, and you can define these within a local scope. If most of this flew
over your head, then take our word for it that Python is how it is to make
it easier to quickly write solid code. It should also be noted that Python
makes it easy to write C or C++ extensions, bypassing the overhead when
speed is needed more than flexibility.

A4. --- see A3

Andy Toulouse

On Thu, Jun 19, 2008 at 1:54 PM, Charles Merriam <charles.merriam at gmail.com>

> Hello Shandy,
> While there isn't a link, here are the frequent questions I see:
> Q1.  Why is Python case-sensitive?  That is, why is
> 'bob_is_your_uncle" different from "Bob_is_your_uncle" and
> "BobIsYourUncle"?
> A1.  Because Guido said so, it would be too much of a break with older
> languages, and it encourages a consistent style.
> Q2.  Why is Python moving to 3.0?  Why is the 'u' tag breaking?  Why
> change?
> A2.  Languages evolve or die.  The 'u' tag disappears because purists
> like to write.
> Q3.  Why isn't Python the same speed as C++, have lambdas like Lisp,
> strong typing like Java, etc?
> A3.  Because it is Python.
> Q4.  Why isn't Python faster?
> A4.  It's fast enough for almost everything, and links easily to C/C++
> code.  It is aimed at quickly writing solid code.
> Q5.  Why is Pep-8 hard to read?  Why isn't rgruet's quick reference
> guide part of the Python documentation?  Why don't Python docs link to
> sample code and a wiki?  Why aren't usual "gotcha's" pointed out in
> the Python documentation.
> A5.  Because you haven't rewritten the Python documentation.
> Q6.  Why is Python so complicated and concise?
> A7.  Many common problems can be written concisely, so as to save
> space.  Python works on some consistent rules under the hood, like
> linear execution within a namespace, which provides an understanding
> of the concise syntax.
> Have fun!
> Charles Merriam
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20080619/7a438632/attachment-0001.htm>

More information about the Baypiggies mailing list