Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Why Are Programming Languages Sites So Ugly? (sachagreif.com)
30 points by sgdesign on Sept 21, 2012 | hide | past | favorite | 80 comments


> [...] PHP is an old language [...] More modern languages like Python or Ruby have somewhat decent sites.

Just a nitpick but PHP (1995) is not older than Ruby (1995) or Python (1991).

http://en.wikipedia.org/wiki/PHP

http://en.wikipedia.org/wiki/Ruby_(programming_language)

http://en.wikipedia.org/wiki/Python_(programming_language)


I think its in the eye of the beholder.

The Go site looks fine to me, whilst https://github.com/404 is downright ugly.

EDIT: I notice how the OP link is a horrid design too. This has to be a troll.


I feel this way too. I even kind of like the no bullshit design ("design") on PHP's site as well. It's fast and it's clear and it makes me reminisce about the times when I didn't need a top of the line computer just to surf the fucking web.


It is /not/ "in the eye of the beholder". UX is a science. If you can't tell the difference between PHP's site and, say, git's, well, I don't think there's much else to talk about here.


Er, what? Please explain -- I type a function name into PHP's search box (or actually, at this point it's so well indexed on Google all I need to do is type the function name into Chrome's omnibox) and I get exactly what I'm looking for. I'm guessing I'm not in the minority of people who visit PHP's site for language doc / reference. As an end user, php.net gives me what I'm looking for 95% of the time. How is that not good UX?

I do like github and find it to be well organized as well, although it's search leaves something to be desired and sometimes I find myself fumbling through the UI to find a specific git feature. Although I'd argue that the breadth of functionality they need to cover is beyond that of a language site like PHP's.

On a complete sidenote, I've always thought github's 404 page was neat, but what does it have to do with good UX?


Ok, you're able to accomplish your given task on php.net; it's functionally complete to you, someone who has probably visited it many times. It really isn't a very high standard to find the only text input box on the page and type in exactly what you're looking for.

And, that doesn't inherently make it well-organized, nor does it say anything about how discoverable content is, or how well the interaction is with the commenting system, or anything else really.

It is a science, I implore you to read up more on it if you really think your anecdote is an example of 'good' UX (and by extension, design).


I haven't "read up" on UX (a term only popularized within the last few years), but I have developed websites for the last decade or so.

I'm not sure what the sciences say, but in my opinion good user experience starts with knowing who your audience is. I still argue that ~95% of php.net's audience is there for documentation reference. If 95% of your audience needs to simply look up a language construct or function, how can one to two page requests be perceived as bad UX?

I can literally type in http://php.net/[FUNCTION_NAME_HERE] and get exactly what I want. The only thing I need to memorize is a domain name. And if I'm too lazy for that, it's undoubtedly the #1 hit on Google.


True, the audience has a lot to do with it, but just because something "works" doesn't mean that it's optimal.

Take for instance, one of the 1st things many might use the site for: downloading PHP. There's a downloads page, and then there's a Windows download page, and they're both fundamentally different. It's as if you're going to a completely different site, which breaks any continuity there was to begin with. Am I even still on php.net?

Likewise, what's the utility of the tutorial[1]? It directs the user to Apache's website to download a server, even though one has been bundled with PHP for 6 months now. A server that's included by default for the sole reason of making local development easier, but they can't even keep their "newbie" tutorial up-to-date even after 6 months?

Please don't get me wrong, I'm not trying php.net is /bad/; rather, I think there's room for improvement.


I know you're replying to Saiko-chriskun, but I would just like to point out that my post was not about UX. I don't have any complaints about the UX of the Go site (although as far as PHP is concerned, they could probably remove some of the clutter on there).


Agreed about the Go site. Not ugly at all but, personally, I'd set a max-width on the container and maybe up the line-height a bit.

What don't you like about the OP's site? It's certainly "hip and modern" but what makes it horrid?


I'm not the parent, but: text is spaced out awkwardly, tan text on a tan background is hard to see, orange popping out at you everywhere is distracting, orange twitter and Google+ buttons at the bottom are unfamiliar, the inline pictures look as though the right hand side is cut off.

Even if you don't think these are valid criticisms, the point is that this is all subjective. These are opinions and the OP saying "this is bad and that is good" as though it's law only shows that he misunderstands the audience of programmers who use these sites. I don't program in C or C++ because I thought they have a good website; they have no official website at all.


Perfectly valid criticisms. I actually agree with yours, especially with the (over)use of orange. But I still wouldn't call it "horrid".

I didn't mean to sound like I was dismissing hermanhermitage's opinion. But by just calling the design horrid and the OP a troll without specifics, he falls into the same "this is bad and that is good" trap.

As a wannabe-designer I am legitimately curious what hermanhermitage doesn't like about the OP's site. I've seen much worse.

As for the OP misunderstanding the primary users of programming languages' websites, that seems to be part and parcel of some designers, isn't it?


"Comic Sans II" - The Return of the King! :)

[Ok not quite, not close?, but thats what I feel].


Ahh, the rounded font. I actually didn't notice until you mentioned it. Typography is one thing I don't think I'll ever get my head around.


Would love to know what's so horrid about my site's design.


Hopefully you'll ignore my opinion - its all in the eye of the beholder from my perspective :) (The basis of that not being UX - thanks to whomever raised that random distraction, but about Beauty / Ugliness as cited in your headline).

You aren't going to please everyone all the time, and certainly your design gets a reaction from me.

My assessment is made in the context of you assessing other designs - hoist with your own petard if you will. This heightens the situation - that is I'd expect an exemplary design on a page willing to comment on others.

The number one turn off for me would be the choice of font. It certainly comes of as playful and dare I comment on Mark's work (for I shall) - I do not think that quality of font is suitable for body text. No it's not in the comic sans league, but it evokes unpleasant sensations. This could be the font itself or font rendering on Chrome on the Mac. Quite frankly I find it horrid.

Next for me is the typographical structure. The spacing is aggressive and draws attention to the font - which is undesirable for me given my reaction to the font. All your headings have what appears to be the same amount of white space above and below. It feels rather generic and rushed.

Finally the elements on the right hand side are too dominant for my liking and draw focus away from the article. Perhaps as they contain advertising material that is the intent. But it doesn't do much for me.

Take it all with a grain of salt, I think it was Keith Richards who had a comment about opinions being like... :)


"Horrid" is a bit harsh, but the typography choices are hard to understand, at least as rendered on my screen:

* http://koldfront.dk/misc/hn/sg.png

The font for the main text is oddly changing between being very thin/light and on some select letters quite fat (v, A). The links are _very_ bold, impeding reading.

Other than that I think your design nice and simple.


They're a reflection of the people who create them (rimshot).

Honestly, I blame Unix/Gnu (http://www.gnu.org/). Most programmers are command-line oriented and think GUIs are a distraction. It doesn't bother them that most newbies have no means of discovering features absent menus and suchlike, and that means design takes a backseat on their websites too.

I personally thought the go website was a lot better than most; at least it's (semantically) accessible, even if it's cartoonish.


I agree with you, and would add that the precursor to the modern full-featured browser-based WWW was a CLI-based web (Lynx et. all), whereby the only means of formatting text were akin to what you get out of a word processor (linebreaks, bold, italics, etc.).

Also, most programmers (like those making the languages) aren't designers, and when they try to be, very bad things can happen[1]. Could they hire a designer? Probably not, seeing as most of those projects are FOSS, and the maintainers get paid nothing for their efforts.

There's also the fact that the maintainers of those languages, and likely a majority of the users, would prefer development efforts be focused on the language itself and not its website.

[1] http://www.codinghorror.com/blog/2006/11/this-is-what-happen...


The current Go homepage is surprisingly good functionally and aesthetically. PHP, Clojure, Haskell sites look like monolithic corporate website templates aesthetically.

The main problem is with the author who can't appreciate good design when it doesn't fit his trendy aesthetic sensibilities.


What are the problems with Go's website? If the website appeals to the target audience, than it's designed correctly.


Maybe the problem is precisely the target audience. The current site only appeals to a very specific kind of people.


Let me rephrase:

What are some specific objections that you have with the Go website?


If you can't compare the Go site and, say, http://git-scm.com/ and see which one is better designed, then I don't think anything I can say will change your mind. It's just a general feeling, specific objections are not important. But here are a few anyway:

-There is no logo to establish a brand identity

- The mascot looks amateurish

- There is no thought given to typograph or colors. Contrast this with the Git site where, for example, body copy is not pure black to avoid a harsh contrast.

- The documentation uses a fluid width layout which hurts readability on wide screens


I designed the Go site, so I just wanted to point out some things.

The Gopher is the logo and our brand identity. He was designed by Renée French, an award-winning illustrator. Perhaps you think his presence is amateurish, but I disagree. We are professionals, but we are also a community and we like fun. The gopher is emblematic of Go as a project.

I gave plenty of thought to the typography and colors. There is a spare color palette, and I chose complimentary blues and yellows. I chose a consistent set of font sizes. You may have a different aesthetic taste to me, but you can't say that no thought was given. Also, the darkest text on golang.org is #222. There is no pure black.

The previous design had a max-width for all docs, but it was widely criticized by users of the site. That's why I removed it in the redesign. The users are happy, and I'm not one to disagree with them. If you find it hard to read you can just make your browser window narrower. This was a UX decision.

Ultimately the site is a resource and I certainly spent more time concentrating on UX than the visual appearance. It may be simple and it may not have enough gradients (or whatever) for your tastes, but the design is consistent and well thought out.

Thanks for taking the time to write up your thoughts. I know your heart is in the right place, but in the end you did come across as presumptuous and holier than thou.


You are treating "better designed" as a single axis: the question should be "better designed for X" given a specific value of X. As an example, to take your feedback item "the mascot looks amateurish" <- the kind of quirky humor that the people who designed this project have, and are thereby are appealing to, actually likes that mascot. In the genre of programming languages, this is quite honestly very typical: that mascot is part of what makes it feel like a programming language "worth paying attention to" to people like me (aka, people who study and learn interesting programming languages).

Without taking into account this context, your feedback is frankly about as closed minded and generally insulting as claiming that XKCD (or hell: anything by Don Hertzfeldt, which is probably an even stronger extreme case) is poorly executed because the artwork is likewise "amateurish" to someone used to full-color 3D rendered 60 fps animation (or hell: an actual HD video). However, these people have managed to entrench an entire genre of art that now others try to invoke in their own audiences.

Personally, I find the git-scm.com website to be full of way too much clipart and not enough personality; to the extent to which there is personality, I might call it "Web 2.0 with a hint of retro-corporate", which is highly awkward as I have always felt git represented something grungier, certainly "harsher": tied to ideas like raw power and distributed anti-disestablishment as opposed to control or simplicity. However, someone liked that website, and apparently you do. I find http://darcs.net/ much better at first glance, for a version control tool.

The original author (edit: apparently, also you) even liked the Firebase website, which has always turned me off as something designed to attract people who don't know what they are doing: it feels too "Web 2.0" and has much too strong an emphasis on "nothing to something" as opposed to "something to something great" to be a product to which I'd trust storing my data. Of course: I'm not in their target market, as I don't need their service and in fact "know too much" and can nitpick how they built it; they are targeting people who don't know enough to build backends, and that design thereby probably works for them. I thereby can't negatively judge their website without paying attention to that context.

tl;dr different strokes for different folks


    - There is no logo to establish a brand identity.
The mascot is the logo and it does establish a brand identity. It's reminiscent of the plan nine rabbit glenda and is part of a heritage of well designed systems stretching back to the beginnings of unix. It establishes exactly the brand and identity that the creators/core developers want to create.

    - The mascot looks amateurish.
See comment above

    - There is no thought given to typograph or colors.
I'm no expert but the go site is readable and so is the git site. They look different but both are readable and pleasant on my eyes.

   - The documentation uses a fluid width layout which hurts readability on wide screens.
Possibly true but it's the only indictment you list that I find plausible. I think you may have had a good point to make but you used a terrible example in Go's site.


Go's mascot was drawn by a professional illustrator: http://reneefrench.blogspot.com


I think the mascot is stunning.

Its even balanced with the playful sense of minimalism of the language itself.


Why don't you link to git-scm circa 2009 (when Git started getting popular): http://web.archive.org/web/20090303081943/http://git-scm.com... No brand identity? Mascot (or whatever it is in the header) looks amateurish? No thought given ot typograph? And somehow Git managed to kick everyone's ass. Here's a hint how: by being better than all other version control systems and not by having the prettiest website.


I love the old git site to be honest. Less eye candy but far more direct in achieving what it does. Hard to knock the domo-kun-esque mascot - with a "you'll get it when you're ready" in-joke to boot.


(For some reason I can't reply to the reply so will have to post here.)

> But why couldn't you have both?! That's what I mean when I'm talking about a false dichotomy, you're just using a strawman argument.

You can't have both because people don't have unlimited amount of time and resources. I'm not sure why I have to explain this.


But why couldn't you have both?! That's what I mean when I'm talking about a false dichotomy, you're just using a strawman argument.


I would say programmers using go don't really care how amateurish the mascot looks (see the linux penguin) or how good the typography of the website is.

I would assume programmers care about things like:

- How can I get to the documentation fast - How can I start playing around with the language - What are the language features - How do I install the language and how do I use it

all these things are easily accessible through the golang website in my opinion.


> The documentation uses a fluid width layout which hurts readability on wide screens

I agree with this, but I still think the golang documentation is well designed for usability. If you compare this page - http://golang.org/ref/spec - with this page - http://git-scm.com/docs/git-config, you'll see that the golang site has limited the font and background to a few non-glaring colors.

The red text on the git-scm site is just awful. I can scan the golang pages easily, but a page like this - http://git-scm.com/book/en/Git-Basics-Recording-Changes-to-t... - is too visually distracting.


It sounds like you have less an issue with the design than with the target audience. The go site looks modern and well designed to me.

It doesn't look glossy or trendy but then I don't think it needs to either or that the lack of those things indicates a bad design.


Sacha,

If you are interested, I would love to team up with you to contribute an open source design and I will do the markup. As a developer, I have long hated the design of many sites. After the awesome redesign of http://git-scm.com/ I wanted to make contribute another design to one of the terrible OSS sites that are out there. What do you say, are you interested in teaming up?


My portfolio is at http://twogiraffes.com


The new Git website is awesome. It makes you think: if they spend that much attention to every detail, this product must be really good..


Just FYI, PHP has had a redesign in the works for a long time. http://prototype.php.net/


Much nicer!


> Having the PHP site in your design portfolio would open doors with a lot of people.

That's true for beginners with a weak portfolio. Experienced ones don't care about php, they have commercial projects in there.

> Plus, a lot of designers are already spending their time working for free anyway. If you don’t believe me, just look at the number of Instagram redesigns or iTunes icons on Dribbble.

Hey, let's try to find a programmer who will code your website for free. Lots of them do stuff for free anyway, just look on github and bitbucket.

Now seriously (I am aware there are a lot of generalizations in there, but I think they are not far from the most common):

The thing is, just like coders publish opensource, designers publish icons and redux because it's their cause, their branch, their market. And just like you wouldn't code a random designer's project while publishing lots of libraries for other programmers, he won't design yours while publishing fonts and icons elswhere to prove something.

Second, while programming in commitee works (in general), webdesign by commitee doesn't and always results in crap. And experienced designers have the 'my way or the highway' approach anyway.

Third, most designers just don't get opensource quite well, while most opensource gurus just don't get design quite well. The former ones don't feel why they should do it, the latter ones don't feel the need to make use of the ones who would even if they are there.

If a designer finds a programmer who will work for free, 99% chance he's very unexperienced. The same comes to getting a designer for free.

ps. let's see how the Django redesign works out https://groups.google.com/forum/?fromgroups#!topic/django-de...


I would love to prove you wrong, so let's hope somebody contacts me to redesign their site through this article.


It would be even better if you started up a trend of designers making cool websites for opensource projects, for free. A gang of opensource designers, that's an awesome idea.

I'm really surprised reading a lot of comments about not seeing what's wrong with php or golang sites. Ugh.


It's not about being "ugly" and needing help to become "beautiful". It's what you are trying to tell people.

Partly, it's a good thing if these sites look a bit amateurish, because they should look grassroots. It should look like: wow, I can join this. It should look authentic.

A nice example of this is www.drupal.org (where you can join) versus www.drupal.com (where you should "buy").

The new Git website is very nice. But is also a very mature project. It doesn't need help from thousands of people. It needs a lot of consumers and maybe some brilliant minds to share their ideas.

What the Go website tells: this is a very young project (not even a logo), we have some backing from Google (hence the name and the colours), we have something good (by calling it "easy" and "reliable"), but we could need your help (by still calling it "The Project") and you might want to try (look you can even try it top-left on our homepage) this if you are curious and want to have fun (see our goofy, eye-rolling, mascot).


It's like an unwritten maxim: the more technical a site is, the more basic its design. A corollary might be: the more in-demand (famous) a person is, the more basic their site will be.

Here's some "homepages" from programming gurus:

Dennis Ritchie: http://cm.bell-labs.com/cm/cs/who/dmr/

Brian Kernighan: http://www.cs.princeton.edu/~bwk/

Bjarne Stroustrup: http://www.stroustrup.com/

Richard Stallman: http://stallman.org/


Don't forget http://norvig.com/


Hah, yes, there's tons out there.


those sites were up before CSS, it has nothing to do with demand.


Most (if not all) have been updated since the advent of CSS, though.

You may be correct about demand, but it just seems logical to me that when a notable programmer is spending lots of time either coding, or travelling the country speaking at conferences and/or having high-level meetings, etc...basically, busy all the time...the last thing on their mind is "I need to make my website pretty". I think that most of what they host on their site is simply either for their own reference or for the reference of others. I know I've said more than once "just go to my site, it's linked there" when asked a question about something (and I'm the most un-notable there is).


I think the main Go site could be improved, but i quite like the new version of the Go tour:

http://tour.golang.org


Sorry, your active link colors distracted me. What were you saying?

Ergo, I can't be bothered to look at funny 404 cartoons when I'm trying to read documentation.


active link colors distracted you? what? so.. you don't use syntax highlighting in your editor?

and what exactly does a 404 page have to do with a page with actual content.


It kind of reflects the aesthetic of the given language itself, to some degree- for instance, http://docs.python-requests.org/en/latest/index.html http://flask.pocoo.org/ both seem clean in the way python is, visually.


That website for Requests to me is a great example that you don't have to choose between being beautiful and being functional.


<3


There's another reason, I think.

Making a site look fashionable (and web design is really like the clothes industry in that sense) will require the authors to revisit it avery year or so, whenever the design fad du jour changes.

While black text on white background is like jeans and t-shirts - not too hip, but always acceptable.


What a stupid article. Looking pretty is far less important than being functional. And his site is the perfect example of that; it looked pretty, but the content only took up a 50% column of the total viewable space (and that's without having my browser window set to full screen). His site would be terrible for productivity driven sites like PHP's manual.

Also I reject his premiss that language sites need to be pretty to attract developers. You pick a language based on it's suitability for a project, not whether it has lashes of CSS3 and bespoke type-faces. To even suggest otherwise is painfully superficial.

There's an old adage: less is more. And I think that's very true when discussing sites that are designed to serve content rather than sell content.


> PHP is an old language, a relic of a bygone era!

> And there’s some truth to this.

> More modern languages like Python or Ruby have somewhat decent sites.

Ruby and Python were both around way before PHP. Get your story straight, Mr. Hater.


I'm confused if you're accusing me of hating on PHP, or Ruby & Python, or all of them. In any case I'm sure you know what I mean, there's clearly a move away from PHP and towards Ruby & Python, at least in these parts.


Ruby & Python are growing, but not at the cost of PHP. New developers are choosing non-PHP languages when moving into the market.


How can you give the PHP site a hard time for looking old and then praise Python's modified WikiMedia layout?

The point of all of these sites is to maximize functionality and make language information easy to get at. All that maters is UX, graphical niceties don't improve on that, and no one serious about learning a new language is really going to be dissuaded by "ugliness".

But the real answer to the title question is simple: They're made by programmers, not designers.


PHP's main page is a good example of how not to design a main page.

- The first thing the user sees is a massive wall of text. The whole site looks visually cluttered. Everything is arranged haphazardly.

- The more useful parts (e.g. the introduction, documentation links, download links) are hidden away in small corners of the site.

- The relatively useless Events and News sections take up >80% of the site.

Python's site looks slightly better, but not by much.


Because the best way to browse the enormous PHP site is via Google search. Type in your query and Google will point you to the specific page you are looking for.


The PHP site doesn't need a massive facelift, but honestly, this is actually a bit of a problem. The site is basically just a hosting of the resources already, why not make it easier to find things from inside the site?


> no one serious about learning a new language is really going to be dissuaded by "ugliness"

What about people who are not serious? As I said in my post, this "ugliness" acts as a filter to turn away non-experts. Whether this is good or bad depends on your point of view, I personally think it's bad.


People who aren't serious don't really matter, unless they become serious. The new design will alienate people who had gotten used to it and enjoyed that it was easy to find the resources they needed. Also, any language not already attracting new users probably won't have many incentives for keeping them around (I'm thinking of lisp with its scary parentheses).

Being fairly new to programming myself, I've actually noticed that the most powerful languages usually have websites with terrible aesthetics. It usually means that instead of worrying about how the site looks, most of the people involved are solving problems with the language. The only changes come when usability is hindered.


I think a big part of it has to do with the fact that a lot of the people using the languages are engineers or like minded people.


I think the Python Software Foundation was asking for redesign proposals for the Python site a while ago; so we might see some improvements for the Python site. I don't find the Python site particularly ugly, but I think the docs could improve a lot. Same goes for a lot of other python frameworks that use the default Sphinx template.


Design is irrelevant when it comes to programing sites. We programmers want to get straight to the code and some times design becomes a distraction. I have no issues with the Go site and even the PHP site. It is great until I can quickly find what I'm looking for.


If the design is a distraction then it is bad design. Good design would help you easily and happily "get straight to the code".


Because they contain documentation and have to be fast and readable. While modern web-design, it seems, is bent on creating slow sites with barely readable gray letters on off-white backgrounds.


Note: this post was inspired by this discussion on the Go thread yesterday: http://news.ycombinator.org/item?id=4548144


A lot of Ruby sites are nice, like: http://guides.rubyonrails.org/getting_started.html


Look at this site: http://kernel.org/ Design is plain, the mascot looks amateurish, there is no logo to establish brand identity. They don't know how to sell anything, this will never catch on.


Perfect example of a strawman argument. Nobody said that bad design was preventing something from catching on at all. I said that good design would help something catch on.


Except that you did:

> I know you pretend like you don’t care, but I’m sure that down deep you’re wondering why NodeJS is getting all the attention instead of you.


sigh


But! but! but! Django has a pony!!!

http://djangopony.com/


the actual django page is being redesigned https://groups.google.com/forum/?fromgroups#!topic/django-de...




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

Search: