亲爱的Python,你为什么这么难看?

Dear Python, Why Are You So Ugly?

by Jess Johnson in Programming Languages

Dear Python, something has been bothering me for a while. Its just that, well, ummm…you’re kind of ugly. Look, you are beautiful inside: Python is a beautiful language and the Python community is open and welcoming. But Python resources are ugly enough to affect usability and adoption. This is damaging to the community.

Documentation and tutorials are often difficult to navigate. Products built with Python don’t put any thought into design. Blogging software written in Python helps create more ugly blogs about Python. Pythonistas just don’t care about presentation.

Let’s compare the usability and design of some different Python and Ruby sites. Ruby is a good reference point since it occupies a similar niche in the programming language ecosystem and is roughly the same age.

Python Interactive TutorialRuby Interactive Tutorial

Above are online interactive tutorials for learning Python vs. Ruby. Learnpython.org isn’t ugly exactly, it’s just that Try Ruby is so much more polished. It’s obvious that a professional designer had a hand in Try Ruby, whereas the design of learnpython.org was thrown together by a programmer who later slapped a few ads on it and called it done. Which tutorial would you rather use?

Django web frameworkRuby on Rails web framework

Here are the homepages for Django and Ruby on Rails, popular web frameworks. Django’s homepage is poorly organized. The entire page is just a mess of links with no clear emphasis on anything. In contrast, the Ruby on Rails homepage does a good job of introducing people to Rails and pointing them to different areas of the site.

Adrian Holovaty's HomepageDavid Heinemeier Hansson's Homepage

Homepage of Django co-creator Adrian Holovaty vs. Ruby on Rails creator David Heinemeier Hansson. Both are well organized, but it is obvious at a glance who places importance on professional design and who doesn’t.

Google App Engine hosting

Cloud hosting: Google App Engine vs. Heroku. Once again the Ruby side is sexier.

Blogofile blogging softwareJekyll blogging software

Tinkerer Python blogging softwareOctopress Ruby blogging software

Python blogging software vs Ruby blogging software. The Python blog designs are uninspiring and unpolished, while the Ruby designs are striking. And who doesn’t love octopodes?

eGenix Python consultingNorbauerinc ruby consulting

Tummy Python consultingLittlelines Ruby consulting

Some top Google search results for “python consulting” vs. “ruby consulting”. The Python results look painfully outdated.

Maybe Ruby has an advantage because it is more tightly focused on web programming? It seems likely that consultants for web apps would have nicer web pages than consultants working on, say, scientific problems. To eliminate any unfair advantage, below are some top Google search results for “django consulting” vs. “ruby on rails consulting”.

Fez Django consultingScrum and agile rails consulting

It doesn’t matter. Python is still the ugly duckling.

This wasn’t a scientific comparison – somebody could try show the opposite conclusion by cherry-picking a different set of sites – but I think the screenshots I used are pretty representative. I also think that most people who have spent a little bit of time in both communities will agree that Python sites are ugly compared to Ruby sites.

Why does this happen?

Either Pythonistas aren’t pairing with designers as often as Rubyists, Pythonistas have less design talent, or Pythonistas simply don’t care enough about design to spend the time to do it right. I’m not really sure which is the case.

Does it matter?

Yes! This stuff matters.

It’s not just that Python sites are ugly (even though they are). It’s that the uglyness makes sites hard to navigate and hard to use. It’s that nobody is inspired by uglyness and nobody wants to use ugly products when there are better options. Nobody wants to hire someone who builds ugly web apps. It is unprofessional and sloppy to be so ugly.

This damages the Python community.

这是外国程序员把Python相关站点和Ruby相关站点的UI对比,Python基本完败,感觉就像把一个出生在60年代的老年人和一个出生在21世纪的青年人穿衣风格做对比,上次去访问scipy的官网,我是真的搞不懂,一个做人工智能数据分析的公司页面会这么丑,难道他们就真的要把程序员的那种风格表现出来吗?