PEP 20 – The Zen of Python
Long time Pythoneer Tim Peters succinctly channels the BDFL’s guiding principles for Python’s design into 20 aphorisms, only 19 of which have been written down.
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 35 posts.
Long time Pythoneer Tim Peters succinctly channels the BDFL’s guiding principles for Python’s design into 20 aphorisms, only 19 of which have been written down.
Last substantive modification 1996-04-10 or earlier; Kragen link updated 2016-11-30
Wow, no comments? They must all be stuck on that bit about the "home row." Oh well... here's hoping some of those non-typists make it all the way through this piece.
“ The word hack doesn't really have 69 different meanings”, according to MIT hacker Phil Agre. “ In fact, hack has only one meaning, an extremely subtle and profound one which defies articulation. Which connotation is implied by a given use of the word depends in similarly profound ways on the context. Similar remarks…
Vaughan Pratt presented "Top Down Operator Precedence" at the first annual Principles of Programming Languages Symposium in Boston in 1973. In the paper Pratt described a parsing technique that combines the best properties of Recursive Descent and Floyd 's Operator Precedence. It is easy to use. It feels a lot like…
It was seven years ago today when everybody was getting excited about Microsoft’s bombastic announcement of Hailstorm, promising that “Hailstorm makes the technology in your life work t…
Elastic tabstops - a better way to indent and align code
[coined in a paper by T.H. Myer and I.E. Sutherland On the Design of Display Processors , Comm. ACM, Vol. 11, no. 6, June 1968)] Term used to refer to a well-known effect whereby function in a computing system family is migrated out to special-purpose peripheral hardware for speed, then the peripheral evolves toward…
In 1991, I was working at Lucid Inc., and our newest product, Energize, was an integrated development environment for C and C++ on Unix. The design of this development environment involved very tight integration between the various tools: compilers, linkers, debuggers, graphers, and editors. So of course we needed a…
In most languages that support nested scopes, code can refer to or rebind (assign to) any name in the nearest enclosing scope. Currently, Python code can refer to a name in any enclosing scope, but it can only rebind names in two scopes: the local scope...
As we’ve discussed, in Batman Begins 1960s-style full employment and antipoverty programs lead to skyrocketing crime while in The Dark Knight Rises 1980s-style tough-on-crime policies and neoliberal economics lead to a revolt of the economic underclass. The films are mirror images, one about the failure of liberal…
Tuple parameter unpacking is the use of a tuple as a parameter in a function signature so as to have a sequence argument automatically unpacked. An example is:
In this series I will detail what I found out empirically about how mochiweb performs with lots of open connections, and show how to build a comet application using mochiweb, where each mochiweb connection is registered with a router which dispatches messages to various users. We end up with a working application that…
The side-effect that destroyed touch-screens as a mainstream input technology despite a promising start in the early 1980s. It seems the designers of all those spiffy touch-menu systems failed to notice that humans aren't designed to hold their arms in front of their faces making small motions. After more than a very…
Ok, so here's where I tell all about how I (now we) got to be tied for third place on the netflix prize . And I don't mean a sordid tale of computing in the jungle, but rather the actual math and methods. So yes, after reading this post, you too should be able to rank in the top ten or so.
This PEP suggests to support non-ASCII letters (such as accented characters, Cyrillic, Greek, Kanji, etc.) in Python identifiers.
The current method for transforming functions and methods (for instance, declaring them as a class or static method) is awkward and can lead to code that is difficult to understand. Ideally, these transformations should be made at the same point in the...
Today is a fairly momentous day in the history of Ruby web frameworks. You will probably find the news I’m about to share with you fairly shocking, but I will attempt to explain the situation. Before talking tech, and even going into the details of the announcement, I want
Some folks have asked me what I know about Phil Katz. It occurs to me that most folks have probably never heard the story, and of the ones who have heard of it, few would know or remember the details. So here's what I know about Phil Katz, plus a little history to put it in context. The dates could be off a bit. I…
The official home of the Python Programming Language
The Long Now Foundation fosters long-term thinking. Our work encourages imagination at the timescale of civilization — the next and last 10,000 years — a timespan we call the long now.
As a sort-of reverse birthday present I’ve decided to release one of my largest projects, in recent memory. This is the project that I’ve been alluding to for quite some time now :