My Python annoyances
James Stroud
jstroud at mbi.ucla.edu
Sat Apr 28 16:39:24 EDT 2007
André wrote:
> I'm really annoyed at Python - and not for the reasons already
> mentioned on this list.
>
> Everyone know that programming is supposed to be a dark art, nearly
> impossible to learn. Computer code is supposed to be something
> impossible to read to the common person and yet reveal their secrets
> to the initiated - just remember the code displayed in the Matrix...
>
> Python takes all of that away. It is just too readable. Even
> beginners can quickly learn to read code written by experts.
>
> To make it even friendlier to beginners, Python uses ugly double
> underscores both as prefix and suffix on "magic methods" to be invoked
> only by more advanced programmers. What's the fun in hiding the
> complexity so that beginners can stay away from potential problems.
>
> And why, oh why, does raw_input() have to go? Here was at least one
> good example of something that gave a hint (what does "raw" mean?) at
> the underlying complexity. Combined with the evil of the hidden eval
> in the more obvious input(), there was at least a chance to trip
> beginners into doing something "dangerous". Alas, that will no longer
> be the case...
>
> Python does not even make good use of weird symbols like $ and @ and %
> to define variable types like Perl does. Now, that's a language to
> learn if you want to be respected. I think that Georg Brandl had it
> right in his recent proposal:
> http://mail.python.org/pipermail/python-dev/2007-April/072419.html
>
> If not Perl, perhaps Python should be inspired by a language like C++,
> full of arcane stuff and, thankfully, requiring typing declaration.
> This dynamic typing thing makes it just too easy to write working
> programs quickly, especially combined with the ease of use of the
> interpreter. And this other thing called "duck typing" is just too
> flexible to use.
>
> No, Python should be more difficult. It should take a full two
> minutes to compile a "Hello World" program on a modern computer.
>
> Also, this "docstring" business has to go. Any programmer should, as
> a rite of passage, have to spend countless hours reading obscure
> documentation to learn other people's code before finding out what
> methods can be used and how they should be used. Having to use things
> like "dir" and "help" just makes it too easy.
>
> And don't get me started about the absence of curly braces to define
> blocks of code. What's the fun in making it so darn visually easy to
> define such blocks of code, removing the possibility of creating
> subtle bugs due to the misplacement of a curly bracket. No sir, with
> Python, the structure has to be obvious at a glance - newbies can see
> it just as well as experts, thereby decreasing the aura surrounding
> the latter. This is not fair for people that have spent dozens of
> hours in learning to program using Python!
>
> And don't talk to me about functions, classes and methods, not to
> mention modules. Python makes it too easy to write code in many
> different styles, trying to please people who like to write only
> object-oriented code as well as those that follow the more traditional
> procedural approach. Even "functional" type people find their way to
> write code in their preferred method using Python. This is not right.
>
> Fortunately, Python has incorporated some newbie-unfriendly features,
> like metaclasses and, to a lesser extent, decorators which, at last,
> make use of a special character. There should be more of these, to
> make Python something more challenging to learn.
>
> Programming should be more difficult than this - otherwise, how can
> programmers be respected by the common folks?
> ---
> André
>
I want to complain about the fact that I wrote 200 lines the other day
and it worked first time. Problem was, I spent 20 minutes before I
realized that the lack of errors was a result of the lack of bugs.
More information about the Python-list
mailing list