Hitchhiker's Guide to Python
late.am
late.am
In almost any language community there is usually an established set of best practices and tools but this can be a quickly moving target, which leaves behind a confusing array of deprecated tools and frameworks that were once the community's preferred way of doing things. Having a running document that keeps everyone up to date helps immensely with adoption. I'd love to see something similar for other communities.
In fact I'm a bit annoyed at seeing this new effort reuse the name, because the hitchhiker's guide to packaging has great content and is getting some well-deserved name recognition. The official Python wiki is another good place to learn and write guides about the ecosystem.
The packaging guide is fantastic, and will be heavily linked to.
Totally awesome & insanely useful.
I'd really like to see a meta-wiki with many "How to write a _blank_ program" pages. It would be great for languages, but it could also be useful for things like "How to write a 3D simulation program" or "How to write a math-intensive program" that serve as opinionated starting points to save me some time during researching new projects.
I think so - Python would do well to figure out the distutils/packaging/pip/easy_install confusion.
An installed package has and fulfills dependencies, no matter what language you use. Requiring each language to reimplement aptitude or emerge or macports or homebrew or asdf or rpm or gems in its own quirky way is bad for both end users and library developers.
Fantastic! Of course it's a bit of a bummer that as a dev I now have to handle setting up my python package so that it is acceptable to each of the major Linux distributions. And as a user, it does kind of suck, having to wait for said distributions to publish the package.
I see language-specific package managers as being complementary to system package management, not competition. A ruby gem to me is the equivalent of distributing a package written in C via a tarball/autotools, except it is much more user-friendly. As a developer, I can publish the gem myself, without having to fight with the distribution managers over the one true way to package up my software. In fact, that whole fight can be handled by the language package management system - so for example you only need rubygems to be compliant with Debian's rules, or Fedora's, and it will correctly install gems for your system, in much the same way that each distribution has its own implementation of pkg-config for autotools. Admittedly there have been many bitter battles when this has failed to be the case, but technically there is nothing stopping this from being a very effective, and flexible way of distributing software.
People make different naming choices - for example , take a look at distro specific installation information at http://code.google.com/p/neuroinfotoolkit/wiki/Installation
In ruby, I simply have to do gem install ABC and I have it regardless of distro.
I would accept your argument if python were giving library installation instructions in terms of distro-independent puppet configuration - but basically, you do have to build the abstraction somewhere.
Its not about technology - I think lisp has a bunch of different package managers and it is the same problem that ruby solves using gem (bad example?). Clojure has different package-management tools, but a single packaging format - that would have been a recipe for future disaster which hopefully has been averted (http://groups.google.com/group/clojure/browse_thread/thread/...)
Link to actual guide
The "real" Hitchhiker's Guide to the Galaxy is described as being a singularly unhelpful book. It "contains much that is apocryphal, or at least wildly inaccurate," but is profitable because of its affordability and the friendly words on the cover. It is as likely to lead you into danger as to help you out of it, which shouldn't be surprising since its editorial staff spend most of their time partying and making up facts to put in the book. Arthur (like the reader) is initially enamored of its space-age technology, but other characters refer to it as "oh, that thing". It's a tabloid rag-- more like a for-profit Encyclopedia Dramatica than Wikipedia.
I know, it's a silly nit to pick, but I often feel like people kind of miss the point of the series.
if they come up with a cover for the book, the cover will read, in large friendly letters, "Don't Panic! The python doesn't bite."
This is because Python is a rather simple and straightforward language. It's not the sort of language that makes you panic at all when you first see it. It doesn't fit. Python is not a "seat of your pants, what the hell is going on, what do you mean my house is being demolished today?, oh the plans on display in the disused lavatory with the sign marked "beware of the leopard"?, oh well may as well enjoy the ride" type of language. The Python community is co-opting the wrong name.
There's gotta be a million better names to use. Some Monty Python-related ideas:
* Yorkshireman's Python Guide: You've got it easy!
* Python Guide: It's wafer thin!
* Python Guide: I like it runny!
* Self-defense against fresh Python: A guide
* Python! Wink wink, nudge nudge, say no more!
* Spam-free guide to Python
* Python: Our chief weapon is simplicity ... simplicity and readability ... readability and simplicity ... Our two weapons are simplicity and readability ... and namespaces .... Our three weapons are simplicity, readability, and namespaces ... and an almost fanatical devotion to Guido .... Our four ... no ... Amongst our weapons .... Amongst our weaponry ... are such elements as simplicity, readability .... I'll come in again.
This is a great outline for building out your knowledge of Python (or any tech, really). Even where there are stubs, it still points to something you should learn about (and then possibly fill in the stub).