The single most reason why a language X (it's python for me today) wins my heart is not because it's extra fancy or anything but the times when it gets out of my way to let me think about the problem and then everything else seems clearer. I write a lot in both Python and Ruby, but the days when I have to dig into my old code, Python readability trumps over Ruby's (or anything else for that matter).
The real reason I prefer Macs to PCs is that I find the 'mental environment' more pleasant. Uncluttered. Spacious. While you're working at a computer you almost inhabit it, and while you may not have a luxurious apartment, you can probably afford an iMac. I take it a step further by avoiding any software that doesn't live up to the Mac 'feel.'<p>I describe it to people as 'feng-shui' for computers. I'm surprised I've not seen that concept mentioned more in connection with programming. Python is probably my favourite language. Probably due to the white-spacing more than anything. And lack of those damn brackets.
Purely meta: It would be nice if HN could automatically show links to the discussions that took place the numerous other times this and other links have been submitted and front-paged. Seems like a lot of waste if each batch of HN users has to re-discuss the article from scratch. I tried Googling for the rest of them but so many irrelevant pages came up that I just gave up.
For me, I find Lua has more clarity and consistency than Python. From the design of the language, to its implementation, to it's C API --- it's a very beautiful language.
"And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know." This seems that is not the case anymore. I think that since Python became more popular even in big corporations (see Google) the Python Paradox should be in 2011 something else. You name it. The ideas expressed in the essay are of course still relevant but the example maybe has lost some of its accuracy.
The python paradox is not true anymore - since it is taught in so many schools these days. Unlike in 2004 when the article was written.<p>However the main thesis holds true still... just replace python with haskell, erlang, clojure, or some other esoteric language.
Actually, I learned it chiefly because what it would do for me on Windows: a REPL plus access to COM. Need to bash around Excel spreadsheets & do funky regexp stuff? Done. Do I like it? A lot? You bet. But I didn't pick it up out of some existential need to improve myself.
this article holds especially true for non-technical entrepreneurs deciding which language to choose. while the supply of developers may be lower for languages such as ruby or python, you find a much more enthusiastic crowd of developers who in general seem to already have graduated from another language such as php. thus, from a business non-technical background, by choosing an enthusiast type language such as ruby it made it easier to narrow down quality developers with the right mentality as a technical co-founder than say a language with a large supply of developers such as php.
Last time I looked into Python, I was reading something where the guy was going on about how awesome it is to get rid of all the cruft of C syntax, the semicolons and braces.<p>Then as I started getting into it, and thinking to myself, yeah, a lot of that cruft is just unnecessary, getting rid of it would be awesome... I tripped over the underscores and passing of self in Python.<p>If the whole point of your syntax is to get rid of old ugly syntax cruft, don't introduce new ugly syntax cruft at the same time.
While I agree with the approach described, in practice things can be a little different.<p>We decided to start using python in our agency a couple of years ago. We really love it but since that time we've really struggled to hire good people. Even in a big city like London we can't seem to find python devs that also have the other skills required for the agency world.<p>When I interviewed for this job we bonded over a shared interest in erlang (4 years ago). You don't need to use it internally but if you have a candidate who is interested in something like erlang, they're (probably) deeply interested in programming.<p>That's going probably a safer approach. Find people who do have an interest in the more obscure parts of software development (easy to gauge in a phone interview) whilst still practicing a more common language.<p>My point is that there's a much bigger picture to language choice. I'd rather be trying to find perfect candidates from a flood of ruby cvs than struggling to find any candidates at all from <i>insert lesser known language</i> cvs.
The strange thing about python is it is almost TOO easy. I have worked with developers who preferred python because basically they were not great developers. The ease of development and attractiveness of the speed of development was a lure.<p>The only problem is the overall systems they wrote were bulky, not efficient and generally over-engineered. Very not hacker like. For example using threads in python, a very big no no that can and does cause many performance issues. Designing python middleware that had no reason to exist other than to be a cool project to build.<p>And so on and so forth. Painful.
This essay does assume, of course, that you can find enough developers in your locality that can write software competently in Python.<p>A few years ago I developed software (engine diagnostic/programming) for a large semi-truck manufacture in the Midwest. Our primary concern when selecting a language for a new product/project was whether or not we could find developers who were competent in that language. That almost always meant we chose Java because that is what our local developer pool was competent in.
very nice article, python's also my choice of coding language. i started with c/c++ in college and then moved on to use c++/java at my first job. but for the past 5 years it's been all python. i'd like to say that the reason is the speed with which i can write applications; not having to think about types, managing memory, or compiling source code helps remove some of the barriers that plague software development for me. time is money and most of the time i feel that i'm able to write applications much faster in python.<p>the language seems to blend all the best things, i'm never at a loss of finding a good open source library for python and it's most of all relevant. so even while ruby seems to be really popular at the moment because of the rails framework, python also has equivalent* web app frameworks such as django. i remember reading an article by the creator of python where he was praising the php language for having purpose built the language for the web and how python was more generic and less suited for the web (no reference at the moment), today there are lots of excellent web frameworks for python such as tornado web. so python is modern, it has adapted over the years quite nicely, and most importantly it just lets me do what i need to do.