Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
[flagged]
grokcode on April 26, 2012 | hide | past | favorite


It was posts like this that made me decide to learn Python instead of Ruby, many years back when I was trying to decide what new scripting language to learn.

I could not find any particular programming advantage of Python over Ruby or vice versa. But from the blog posts it was obvious which community I liked much better:

Python's were to the point and technical, if making comparisons with Ruby they'd say they're both powerful languages and pick the one you like best.

Ruby's blog posts were so much more about imago, "personality" and pointing out whatever (even irrelevant) attributes to prove that their thing was better than the other. Not so much Python vs Ruby btw, but also Ruby library X vs Y, or Ruby blogger P vs Q--it felt like everything in the Ruby community was some sort of popularity contest.

On another note, I do agree that Django's website is a mess. And so are its docs, you're much better off using a great IDE like PyScripter and sail through the source code (not saying that's a good thing, on the contrary, just a bit of advice to anyone using Django ;-) ). But Django is hardly the only web framework out there.

There's also a bunch of really nice and clean Python sites out there. I really like the looks of Armin Ronacher's stuff, for instance Jinja2.


Really? In my experience, Django has about the best documentation of any open source web framework. How are the docs lacking? The site's focus is definitely developer-centric. It would be nice if there was either a broader focus on that site or an alternative entry port for non-developer folks--particularly non-technical decision makers.


> Really? In my experience, Django has about the best documentation of any open source web framework. How are the docs lacking?

It's been a few years so I don't recall exactly (and maybe it has improved) but I just found myself browsing and clicking around to re-read particular chapters all the time, that I could only reach via an unintuitive sequence of 2 or 3 clicks.

Only when I found that the docstrings inside Django's code, plus the function signatures and the (IMO very well-written) code itself, were much more useful--as long as you have an IDE that allows one to ctrl-click an identifier to jump to its definition (cross-file/module), only then I got a better grasp on what Django was doing and how it worked.

But then, that's the general take I got from Django after using it for some time: As long as you strictly stay within the "batteries included", it's absolutely great, and the documentation is probably wonderful and sufficient. But as soon as you need to develop your own `ImageFileWithMultipleSizesThumbnailAndExtraCheeseField`, you really need to dive into the innards of the code, the documentation starts lacking, and it's like they never even considered that sometimes your customers prefer their database fields with extra cheese.

Hey but I'm not here to bash Django, it's a great framework (and so is Rails, btw). It's just that next time when I need something like it, I'm going to try and use one of those WSGI things with SQLAlchemy and see how that works for me. I'll probably really miss the automatic admin though.


>I just found myself browsing and clicking around to re-read particular chapters all the time, that I could only reach via an unintuitive sequence of 2 or 3 clicks.

It's true that the main documentation link doesn't have everything. If you want everything you need to go to https://docs.djangoproject.com/en/1.4/contents/


Yeah, when you start digging into Django, there's just no substitute for a good IDE (PyCharm for me) that lets you dive into the source. The source never lies. :)


I agree, best documentation of any framework I've used.


I'd say that used to be true for me but the pyramid guys have raised the bar when it comes to docs in the last few years - they're simply fantastic!


Interesting then that the OP is a Python developer.


I have to strongly disagree on the documentation. The Python online documentation for the language (http://docs.python.org/reference/index.html) and the standard library (http://docs.python.org/library/index.html) are a pleasure to read and navigate. And, easily Googlable; the search "python docs x" on Google usually has the Python documentation for x as the top hit.


As a new Ruby developer, the thing I most miss about Python is the quality of the documentation. The official Ruby docs are usually adequate, but the Python documentation team really went the extra mile.


This is thanks to Sphinx (http://sphinx.pocoo.org/) and the kind of community participation Python is famous for.


Misleading title. Link Bait.

What does the aesthetics of a web page have to do with the quality of the language?

If the usability is in question, that's one thing -- but the author isn't arguing the less "Sexy" (his words) sites are less usable, simply less attractive to him.

Who cares? If you pick a language based on the sexiness of various websites that are related to the language, you are probably not in the right role.


>>If the usability is in question, that's one thing -- but the author isn't arguing the less "Sexy" (his words) sites are less usable, simply less attractive to him.

No, he does:

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.


He makes that strong assertion with no evidence other than "I say so".

I agree that the ruby sites demonstrate better visual design, but he needs way more evidence to convince me that they're more useful.


Good design is a signal. If the people behind a product took the time to make something look good it's likely that they sweated the other details too.

Especially when two products are close to functionally interchangeable, like Ruby and Python, design can be decisive. Engineers chronically underestimate the importance of design and marketing.


Ruby and Python are. But look at the origin of popularity. Python was popular in academia / system scripts for a long time. Ruby's popularity comes in a large part from Rails.

Now guess which community has better graphical design skills? Or from the other end - all other things being equal (and of course they aren't in reality, there are many small differences), I'd rather use a language designed by someone who specialises in designing programming languages rather than one creating websites.


From Matz's wiki entry: He graduated with an information science degree from University of Tsukuba, where he was a member of Ikuo Nakata's research lab on programming languages and compilers.

Doesn't sound like someone who specializes in creating websites to me.


No, I wasn't trying to point out anything about Ruby's creators. The preference bit was a PS I could actually skip... but it's there.

I do however think that high popularity in one specific circle (rails developers) results in pretty pages about the language itself. The split was actually very clear not that long ago even in ruby itself. A couple of months ago docs for ruby core were on a really ugly and not very usable page with 3 small scrolling boxes on the top and documentation view below. It's gone now fortunately. (old version of rdoc generator theme - still visible on http://stdlib.rubyonrails.org/libdoc/rdoc/rdoc/index.html)


I'd rather use a language designed by someone who specialises in designing programming languages rather than one creating websites.

Are you referring to PHP or something? Certainly Matz is every bit the language designer Guido is. Like it or not, Python and Ruby are competing in a lot of very similar niches. Fluffing the design of your webpages is like stopping at the 24th mile of a marathon.


This is true, I'm really more likely to put my credit card in a website that looks awesome than in one that doesn't. It immediately gives you some sense of trust.

Disclaimer: you should't base your credit card use only on design!


Have you ever seen MSDN or JDK docs?


yes. horrible from any perspective.


Consider that signals mean different things to different people.

These Python sites are targeted at Python programmers. What do Python programmers want? They want clean, neat and obvious. Above all they cannot abide unnecessary clutter.

The Ruby screenshots listed have the following 'visual impact' features. They may make them more attractive, but don't help with usability and potentially get take up space that could be used for information:

  Elements introduced purely for decoration.
  Oversized logos
  Pictures of people
  Designer fonts
By contrast, the Python pages are all information dense and organised with hierarchies of headers.

This is a pretty rough analysis, but perhaps it explains the difference in approach?


It's definitely a signal, though I don't take to mean quite what you do...

It's only 'likely that they sweated the other details' if you assume infinite manpower and resources. In reality, all of the very finite resources that went into picking the right shade of beige for the background could have instead gone into improving the actual tools.

I don't think it's possible for an engineer to underestimate the importance of design and marketing for an engineering tool.

Have you seen nginx.org?


Some overestimate the importance of design, take a look at some ugly sites that are successful http://www.ebay.com/ or http://www.craigslist.org


You can succeed without good design if you have no real competition. Both those sites also established themselves when design standards on the web were very primitive. Good luck finding the same success with that approach now.


I really don't give a damn about look, but that guy has a point.


You don't care. But other people care. Duh.


>> Misleading title. Link Bait.

true, that's why I didn't continue reading the article.


Here's an anecdote:

In my experience, finding something in Python docs takes a total of five seconds, including passing through the "Google gateway".

Finding something in Rails reference has been downright impossible. This is a function of Ruby itself, a very magical language, magic that fails to communicate in auto-generated documentation. How does this work? Good luck finding out, but you'll feel very clever three hours from now.

Admittedly, I've had very limited exposure to Rails, but perhaps that makes my experience even more relevant.


As a ruby developer I may not be that well qualified to ask about this but can you give me an example where you've had this difficulty? It would be good to know in case there's some low-hanging fruit in documentation that would make new ruby/rails developers lives easier.

I tend to have a very easy time finding the documentation I need, in both ruby and rails. Sometimes that means a google search, but if I want more fine-grained implementation details, I normally crack open the gem in question with `bundle open` and read the source. I know that a lot people from a Java background for example prefer code-completion in their IDE's to reading source, but it seems to be the most comfortable way to find what you're looking for, in ruby at least.


My last exposure was months ago, sorry. =(

Reading the source is certainly not an alien notion to me coming from Python. I just find Ruby code very difficult to follow when you actually need to understand the implementation.

One of Ruby's greatest strengths, the ease with which you can define a DSL, is its biggest weakness in practice (in my opinion, of course.) In Rails for example, there is a DSL for everything, the Ruby language is used in non-obvious ways to get the desired DSL syntax.

All this makes it very difficult to read other people's code. For the same reason, reading the documentation is difficult. You don't know what function you should be looking for in the first place.


I'm in the same boat as you. What I've discovered while learning rails is that while you may have a hard time tracking down function names, you'll almost always remember them for next time.


This reminds me of the jQuery docs situation. Every month or so somebody comes up with an alternative way to access them that's flashy and uses <div> frames with low contrast text and lots of shadows and gradients. I play with the site for 60 seconds thinking "this is neat", and then go back to using the official docs because they come up in a Google search.

I don't think I've ever actually accessed the Python docs in any other way in fact. Same goes for Django. They're clean, static HTML, totally trivial for search engines to index and you always get just what you think you're getting when you click over from a search engine.

Also, unrelated: I learned something today. I read the claim that Python and Ruby are roughly the same age and thought "no way, Python is old-as-hell, Ruby can't be nearly as old". But then Wikipedia pointed out that Python is only 4 years older (1991 vs. 1995).


> I don't think I've ever actually accessed the Python docs in any other way in fact. Same goes for Django. They're clean, static HTML, totally trivial for search engines to index and you always get just what you think you're getting when you click over from a search engine.

I usually download them as local static HTML so I can also access them when I'm coding without stray wireless packets floating in the air.


I've actually done this as well, should have mentioned that. Also, the Django docs can be easily compiled into a (very large) ebook in epub format. I put a copy on my Nook. Comes in handy every now and then.


And Ruby is actually (slightly) older than Javascript (96/97). Funny how things look when you've been seeing JS for a decade and a half and Ruby is this new shiny thing (but it actually isn't). Same with Python.


What do people gain by writing ill informed, flame bait artictles?

http://docs.python.org/

Official python docs are a class of its own - browse online, higher in google results, download static files, offline searching, well organized, curated content with a lot of example code etc etc.

http://ruby-doc.org/

Ruby docs don't even come close. I have been told ruby docs are mostly a volunteer effort and one man operation, and I mean no offence to whoever is the maintainer, but it isn't comparable to python's.

I haven't tried interactive python tutorial, but the official python tutorial is the best tutorial I have read.

http://docs.python.org/tutorial/index.html

I program comfortably in a number of langauges, and have read a lot of code and documentation. If I have to choose top language tutorials among c, c++, java, perl, python, erlang, lua, javascript, c#, it will be a tie between python's and "Learning Perl".

https://docs.djangoproject.com/en/1.4/

Django's documentation is one click away from the landing page, and the link is located where it is expected to be. Are you seriously telling me you had a problem finding the docs or the download button(so called usability problem)?

FWIW, I find rails guide better than django docs, but that doesn't make the django docs unusable or bad.

http://guides.rubyonrails.org/

http://ringce.com/hyde Jekyll's counterpart is hyde. A simple google search for "python jekyll" would have told you that.

Comparing Google App Engine to Heroku or DHH's landing page Adrian's, and concluding Python is ugly is ridiculous. To be honest, I find the whole article ridiculous.

I have nothing against design and people making pretty shit. I just take exception to lame claims about a language's usability based on how pretty the landing page looks. And in the case of python docs and django tutorials, it doesn't even look bad, and is perfectly usable.


(Disclaimer: I'm the author of one of the books linked at the end of the post.)

Design is not just important for usability, but also for marketing. If you have an awesome framework, you have to get the word out so people know about it and want to use it. It's not the same kind of marketing a business uses because it's not directly tied to revenue, but it is important if you want said framework to be used and its surrounding community to grow.

How many blog posts do you see complaining about or even advocating the new framework hotness? People are jumping ship to Node.js now and saying Rails sucks, and there's consistently a new framework du jour. I'm not saying that's a good thing, but it is definitely proof that marketing affects framework adoption.

I know it sounds kind of scummy to talk about marketing OSS. The point isn't to position Python as the sexy new language everyone needs to switch to, but to represent the community and quality tools and knowledge it offers. If a new programmer visits the Django site and then the Rails site, might they assume Django is a smaller community because the site isn't as pretty? Maybe the first impression is that Django isn't as well maintained, when we all know that's not true.


When one option is overwhelmingly technically superior to another you can afford to ignore design, marketing and human psychology. Python and Ruby are close enough to interchangeable for web work that these other factors can be critical.

Personally I'm really tired of hearing programmers dismiss the importance of aesthetics and branding. They can easily have more impact than all those technical details you spend so much time sweating over. Like it or not, humans are not cooly rational decision makers.


Maybe Python is marketing itself to developers who can read well over those who are impressed by eye candy?

Looking through the screenshots, there's consistently more information on the Python side.

I don't want my web framework's developer website to be "sexy", I want it to get me the information I need as quickly as possible so I can get the job done.


The astounding number of devs asking "who cares?" sums up one of my biggest pet peeves. Would you buy a car that had a modern engine but a chassis and interior from 1983? Maybe if you wanted to save a few bucks - but your friends would still tease you for owning an old clunker.

True, Python is a beautiful language that's stayed modern in the face of the evolving web, and I've come across many Python sites that do look really slick. But if the face of the Python community tends to lean towards the look and feel of 1997 Geocities pages, where are new developers going to flock? If you care about your community you should foster it by showcasing the fact that Python more than keeps pace with the modern web instead of subconsciously suggesting to budding programmers that your language is stuck in the 90's.

Also, PHP community, I'm speaking to you as well. Your PHP homepage, pecl, and pear sites (although easy enough to navigate) are in desperate need of a modern design.


PHP has had an 'alpha' version of a new site design available for a while now, but its buried in the 'My PHP.net' section of their site.

You can get to it here: http://php.net/?beta=1


> Would you buy a car that had a modern engine but a chassis and interior from 1983?

Yes. I'd prefer it to one of a million cars that all look the same.


There seems to be certain amount of confirmation bias in the post. He started with the premise that python resources are ugly, then found examples that proved his point. If you look at his twitter feed, he was asking for particular resources/pages that confirmed what he already thought.


> Dear Python, Why Are You So Ugly?

Well, once upon a time Python had a beautiful documentation website with lovely illustrations and cute stories. But then the fairy princess elf who made it threw a hissy-fit, disappeared from the Internet and took all their content offline with them, without telling anyone why.

Ever since then we've been recycling Monty Python jokes, because hopefully John Cleese is above that sort of thing.


Really guys, I'm all for beautifully designed pages and stuff, but when you use page design to judge between two things in which design will probably not interfere I think that the hipsterness went too far.


Some minor nitpicks first:

1. Blogofile is a de facto abandoned project. The project's inherent bugginess is a testament to the fact that the author had more important priorities to address than the design of the site.

2. Comparing Google's App Engine with Heroku is absurd and seems like a sign that the number of data points is so small that comparisons don't make much sense in the first place.

I agree that Python sites look hideous - and have often wondered whether someone should make an alternative style sheet - but I have a feeling the Python community's problem is not that of design, but legacy. As bland as Django's and Python's documentation looks, Pythonistas have come to learn where things are and how they work.

I don't know if migrating the websites of Django and Python to something new would be a good idea, especially when it comes to preserving links for directing to dead ends.

I'd rather that someone did a CSS userstyle than to see the sites get redesigned, because I think it would break more than it improves. If the CSS and HTML could be improved without any changes to URLs, then that would be even better, of course. We can't pretend the changes aren't retroactive.

Maybe someone could do a fork of the sites and apply the changes they want?

As someone said, maybe the Python people just decided to spend their time writing good documentation instead of creating a good-looking front-end? There are only so many people and resources to go around, especially in one-man projects like Blogofile. As chance would have it, I actually use Blogofile over all the alternatives, meagre design or not. Maybe I share sensibilities with the Blogofile and Python guys that don't translate to good-looking websites?


That OP is cherrypicking is obvious, but his web shop example is particularly brazen.

Google for 'django consulting' also turns up on first page:

http://www.comfychairconsulting.com/

http://tivix.com/

http://www.caktusgroup.com/


Probably the most stupid thing I have read in a long time. Thanks.


Linkbait with a main course of generalization and ample sides of selection bias. OP is a Python/Django shop -- if this is intended as a call to arms it is severely misguided.

What does web design have to do with the actual languages? All you've proven is that Ruby developers spend more time on HTML and CSS.

With regard to docs, as of May 2011

  "With revision 31499 of trunk RDoc reports that just 
  under half of ruby has not even a single character of
  comments with over half of the classes and modules
  missing documentation"
Source: http://blog.segment7.net/2011/05/09/ruby-1-9-3-documentation...

Given finite developer resources, I'd rather have docs over shiny. The Python community has its priorities straight.


Maybe because python has been around a lot longer than rails which is when ruby really exploded. Newer web design techniques allow for better looking websites.


Maybe because there are more real programmers in the Python community :)

Joking aside design is a visual representation of quality. For newcomers a better design might be all is needed to attract them. I guess then you can also argue why many In Ruby world are rather shallow :p


Am I the only one who read this article and thought a designer with no sense of programming skills is talking, over an actual programmer?


A designer should know that a design come to life with HTML/CSS + some artistic skills


Sure, it's a provocative title, but the post is clearly not about comparing languages as languages - he's using programming languages as a grouping variable for people and their websites. It's a terrible post if you're trying to learn something about the two languages, but a great post if you're interested in seeing examples of how design aesthetics might correlate with chosen programming language communities.

To all the people criticizing the post, please realize this has little to do with computer science and is almost entirely sociology. It's not a particularly rigorous "study", but it's not really trying to be be.


In defense of Python:

* Rails' website has the design might of 37signals behind it. Most things look bad in comparison. To be fair, Django's website isn't great. Maybe compare Sinatra and Flask's websites too?

* Comparing the personal webpages of the guys behind the main frameworks seems pointless.

* I host Python code on both Heroku and GAE (Heroku isn't only for Ruby). Heroku might be more designed, but GAE certainly isn't ugly, and I think I prefer their documentation.

* Have you compared the official websites for Python and Ruby? I know which one I prefer. Python's documentation is excellent.


I know this is an appeal to authority and past success if no guarantee of future success... but the Django homepage was designed by Wilson Miner (http://wilsonminer.com/) who also originally designed the Apple homepage among other things.


Years ago when I was learning to code I chose Python over Ruby (and Java, etc) because of the aesthetics of the code. Python is so pleasing to look at on the screen.

I tend to agree with the premise of the article. I've thought the same for years.


Ignoring the misleading title; who cares? As long as the documentation/information is easy to get to and digest, who cares how the primary website looks?

The only area of python (specifically Django) I consider "ugly" that actually has any impact on the user is the default admin area. Fortunately there are projects like Grappelli (https://github.com/sehmaschine/django-grappelli) that help alleviate that.


Rails grew up in the design community (led by 37 Signals) so the current situation makes sense. I'm not sure it's that bad but there is probably room for improvement. Some may even appreciate the sparer aesthetics in the Python world.

The one I think wish is that Sphinx had a better design. There's something attractive about its simplicity but I have the hardest time navigating around.


I think it's worth pointing out that you can deploy Python webapps to Heroku and Dotcloud [1], not just GAE. And for blogging software: Hyde [2] is just as well designed and equivalent in functionality to Jekyll.

[1]: https://www.dotcloud.com/

[2]: http://ringce.com/hyde


Having built sites in Rails and Django, I far prefer the Django docs in terms of content and visual style.


Ahem... "Usability".


What a terrible article. Aesthetics are not the core of design.


Is this really a python issue, or a ruby specialty? If you look at programming resources for any language but ruby, I'll bet they're more like the python pages linked there than the ruby ones.

I suspect that ruby just has an especially beauty and design focused culture. Python is a little more old school. This might drive some people away from python, but there are other things that drive them to it.


I'd agree. One of my big laments as a ruby developer is that the minute you step outside web development, pythons libraries kick the crap out of rubys, in comprehensiveness and maturity. See nltk and scipy.


I prefer the style of Python to the ones of Ruby anyday.

I also prefer the style of Hackernews/Reddit to the one of Digg. Digg may look better, but its style and content is what i don't like.


Your two last sentences contradict one another. I think you are mixing up style/looks with content.


No, style has nothing to do with superficial looks.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: