Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

UI is hard in the way that art is hard. It's difficult to understand what people really want or will value.

Backend is hard in the way that building a skyscraper is hard. You need a solid design and framework, but you also have to make sure every wire runs in the right place. Managing complexity is really the problem there.

Which is harder? I don't think they're very comparable, in the way that I don't know if creating beautiful art or building a skyscraper is harder.



Yes, that's the mistake most people make: back-end is engineering, front-end is art. No wonder we have such shitty front-ends.

Sure, there are a whole slew of "applications" that will suffice with a basic form-driven UI accessing a rails or servlet back-end. And indeed there are applications like twitter where the entire complexity is in the complexity of the back-end. But then there are all the apps that simply aren't web-apps yet, because nobody has figured out how to do complex, rich, and above all Interactive, applications using fucking javascript. We're getting there, but people are writing the code to do it as I type (jquery, backbone, etc).

So this is why UI is hard: its art and its engineering. And nobody thinks about the engineering part. And when they do, they have to find an engineer who can talk to the designer without scaring him/her (very often "her").


In a word... UI is architecture (in the original meaning, like "designing buildings where people live/work", not the IT one).


> UI is hard in the way that art is hard

> Backend is hard in the way that building a skyscraper is hard ... Managing complexity is really the problem there.

UI is hard exactly for this same reason: managing complexity.

There are a lot of great great tools and abstractions for back-end work, but UI has too long suffered with same old OO-oriented approaches that GUI frameworks dictate. They are quite bad for managing the complexity.


I think art is probably the wrong analogy, as UI has a lot of science and research behind it, but I see what you mean. I think UI is hard because it's hard to "prove correctness." With software engineering, correctness is enforced at many levels - is the syntax correct, does it compile, do the unit tests pass, do the integration tests pass, does it deploy correctly? All these things can be answered via a yes or no question. UI, on the other hand, is only proved "correct" through repeated use of the program, discussions with users, distillation of that feedback to new UI changes and then more repeated use, discussions, etc. And even then, you're not really sure if you got it right. You just have to use the damn thing and see if it "feels" right. And even then, what "feels" right to one person may not actually be right. Or what feels right today may actually feel wrong after weeks or months of using the software. It's a hard problem.


This sounds remarkably like something pg would say. Not necessarily content-wise, but style-wise and topic-wise.


I guess his essays must be rubbing off on me lol.




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

Search: