Brendan apparently pulled himself away from the Keno table long enough to make a good point about UIs; it's not easy to create them with most programming languages. His example was Java. The mere thought of doing a UI in Java makes me want to pound on my desk with my shoe and start wailing like a banshee. Not because it's a bad language or anything, just because of our history together.
Senior year at Trinity, I took a course called Software Engineering. We had to do a semester long project in groups. Half-way through the semester, we switched projects with another team and had to do maintenance on the work they had done. Our original project was really cool; it was a Space Invaders game in C++. The project we had to maintain was decidedly less cool: a LiveJournal client in Java. Being lazy college students, it didn't occur to anyone in our group that it might be a problem that a) all of us were unfamiliar with LiveJournal and b) all of us were unfamiliar with Java.
We realized this the week before all of our changes were due, and half the team promptly quit in abject terror. That left only two of us. The other guy did all of the backend work, while I did the front end stuff in Swing. The Java part came easy enough, but oh sweet Jesus, the Swing part was a little bit tricky. That is to say, I had absolutely no idea what I was doing and did a completely crappy job. In the end, I managed to add one new feature to the UI that crashed almost every time you tried it. In fact, I did such a crappy job, each time you tried to use the LJ client, the computer desk burst into flames. I would've been worried about this, had I not been so exasperated with Swing. It came through when it counted, though; for reasons I;ll never be able to explain, the UI worked beautifully when we had to present. Sometimes, it's better to be lucky than good.
Are there any UI-friendly languages? Well, I can think of two: VB and Tcl/Tk. And, oddly enough, many agree that neither of these are industrial-strength programming languages. Why is that? Is there some sort of trade-off between ease of front-end creation and programmability (made up term, but I like it)? I have no idea, and I'm not versed in enough languages to really comment here. But I do know that every time I think of doing another front end in Java, I have a hard time holding back the tears.