From: whyroc Slade
what is it about Blender's interface that is so difficult? can anyone help me understand with some specific critiques other than its 'non intuitive'.
Excellent question, Whyroc. I'll try to frame my answer, as best I can, in terms of what I think makes for most effective communion between the average human and a computer. Hopefully any fanboyism in this discussion can be kept to a minimum.
First, a couple of disclaimers:
Throughout this post, I'll be mentioning programs that I think hit well on the various points of what make a "good" interface. I may end up repeating a few titles quite often. Please take the reasons for that at face value. I won't be trying to say those programs are better than Blender, or that Blender is bad. I'll simply be using various aspects of those programs' interfaces as counter-examples to help answer your question of what, to so many people, is either lacking or different in Blender to make it less than easily understandable.
I will also be talking a bit about personality traits with respect to various groupings of people. Let me take a quick second to explain what I mean by that. The last time I entered into this type of discussion, some took it the wrong way and were offended. I don't want that to happen again.
It is a simple fact of human psychology that there are different personality types. While it's true that everyone is unique, there a lot of ways in which everyone is the same, and still further ways in which we all fall into various categories. I realize that some are uncomfortable thinking of themselves in those terms, but that doesn't make it less true. If there's anything I learned in 12 years in sales & marketing (during six of which, I taught psychology of sales to college students) it's that while everybody thinks they're very different from everyone else, none of us really are.
To use a euphemism, one way to describe it is that we're all constructed of basically the same hardware, and we're all running what could fairly be called variants of the same software. It stands to reason that those of us with similar variations will respond to similar stimuli in similar ways. For some of us, that might mean being allergic to peanuts. For others, it could mean being good at math. Whatever makes us tick, it is what it is, and there's nothing wrong with talking about it.
It doesn't diminish a person in any way to say, "He's an engineer, and those who become engineers often go that direction because they happen to think of _____ in _____ way," or, "She's athletic, and people with athletic tendencies often find _____ to be more appealing than ______". Clearly that sort of talk is not intended to describe any person as a whole. It's simply a description of some particular personality trait, which may or may not be a part of any person's makeup.
People are, of course, far more than just the sums of their parts. But the question of how the parts affect the whole is still very important. There's absolutely no need for anyone to be offended by the subject, or to think of it as over-generalization or as a put-down in any way. Anyone who chooses to react in such a manner is sadly missing the point, and substituting his own. I'd encourage all those reading not to do that.
With that out of the way, on to the discussion:
To me, what makes Blender's interface instantly "difficult" in comparison with nearly all other programs is that its very concept is quite different from that of most other programs. In the beginning of the manual, it's described as follows:
"The user communicates with the program via the keyboard and mouse, and the program gives feedback via the windowing system."
That is radically different from how nearly all other programs operate, which for many is an instant problem. The concept that most of us are used to is that most of the windows in any program are primarily for input, not for reporting. Some might call this nothing more than semantics, but I think it's indicative of a primary difference between how Blender's authors/users think, and how most other people think.
The manual further illustrates this disconnect. Its first chapter is all about adjusting window layouts, popping up consoles, adding screens. From a programmatic standpoint, this all very important information, but from an "I want to make something" perspective, the whole approach is bass ackwards. Again, this represents, in part, a fundamental difference in thought process between different types of people.
For an opposite approach, consider how Maya gets the new user started. It spends makes its introduction not by explaining how to fiddle with windows and settings, but by showing you how to manipulate the camera. Right away you get to feel productive. You hold alt, drag a mouse button, and you go "Oh, now that's cool." From there, the written documentation takes a much more forwards (from the typical artist's point of view) approach than Blender's does. The opening chapter explains basic vital concepts the artist can latch onto and feel really good about learning, such as what are polygons and how do 3D coordinates work.
And then, even when it does start to get into the dry, program-specific stuff, the ordering of the information is still from a creation-first, program-second, point of view. The very first item covered is how to select objects, not how to arrange windows. That speaks volumes about where the priorities are in the minds of the authors.
The whole feel of that chapter in the Maya documentation seems to be "OK, we know this is the boring part, but bear with us because it is important. We'll get to making stuff in just a minute; we promise." But in Blender, the feel appears to be more like "Check out all these neat ways arrange this and reconfigure that. We programmers find this stuff to be really great, and so should you." Again, the two thought processes couldn't be more reversed. It's not that either is necessarily right or wrong. It's just that one naturally appeals to only a small subset of people, and the other naturally appeals to a much larger majority.
What I've mentioned here is just the tip of a very large iceberg. Blender, for whatever reason, from top to bottom is built with a very specific type of person in mind. To those whose natural thought process fits this model, it's nothing short of incredible, the most intuitive thing on Earth. But as I said, people like that are a small minority. The rest of us need to adapt the way we think in order to make heads or tails of it, and for many, that's an extremely uncomfortable thing to have to do.
To me, here's what makes a good interface:
1. Balance Regarding Input vs. Feedback
For any tool, the primary emphasis should be on input. Feedback should almost be subliminal. When you turn a screwdriver, for example, all you're thinking about is the pressure you're applying to the handle. The fact that the screw turns in response is simply expected. The screw doesn't have to jump up and shout "I just turned". You just know it happened.
People love cars for this reason. The interface in a car is great. You step on the gas, the car goes. Step on the break, it stops. Turn the wheel, it steers. It's a feel thing, not a text-based-thought thing, and it's instantaneous.
By the same token, when you're using a windowed GUI, the emphasis in each window should be on making things happen, not on reporting what you've just done. Blender, from most people's point of view, seems to get this backwards. Programs like Photoshop, Maya, and MS Word (pre-2007 Word, at least), on the other hand, do it in a very forwards way, again from most people's point of view.
Photoshop makes for an easily explainable example of where a GUI can really shine in this regard. Click to select a tool, and all its available settings appear right at the top of the screen, every time. Use various number fields, radio buttons, etc., to configure the tool either before, during, or even after use. It's a very handy, instantly understandable, system, which allows you to think in much the same way you think when turning that screwdriver or driving that car. Your emphasis with each item is on the attack, and the result is just the inevitable natural follow-through that has to happen in response. There's no memorization or indirect thinking required. You simply do, and work responds.
2. Graphics/Layout
The most commonly used tools should be readily accessible, and all icons should be quickly understandable and instantly memorable. The workspace should be large, overwhelmingly dominating the screen, and the GUI itself should be very peripheral, not in any way central, to the feel of the program.
In the early 90's, MS Office became the dominant software suite in the world, not because any of its programs were any better at the actual tasks they performed than their competitors, but because the entire suite's interface was fantastic. Office was revolutionary in that regard. All of a sudden, we had buttons instead of code tags or commands for such simple things as bold, italic, and underline, and they were right at the top center of the screen, where nobody could ever not find them. And the document you were working on actually looked like what you'd be printing out. That changed everything.
And the best part was, since the whole suite had the same interface, all you had to do was learn it once (which took about five minutes), and then you could get by in every program in it. I distinctly remember lots of conversations on the subject at the time. Everyone from CEO's to secretaries was saying the same thing. "Well, that Excel thing isn't quite as powerful as the Lotus 123 I was using before, and Access isn't the greatest database, but everything in Office is so much easier to use since the whole all the programs are set up the same way. And man, that Word is amazing! I'm gonna make the switch."
Photoshop has succeeded, in no small part, for very similar reasons, as has Maya. In both those programs, it takes only a few minutes to learn where the most commonly used things are, and then you're on your way. Some need to be shown where to start, others can just figure it out on their own, but either way, there's no one who can't get it right away.
Blender, for whatever reason, seems to prefer to fill its GUI space with number fields, rather than icons. And proportionally, the interface feels intrusive to the workspace, not peripheral. I often refer to that concept as "cancer of the interface". Again, I attribute it to the difference in thought process between "programmer" types, and most other people. And I'll repeat, it's not that either style is necessarily good or bad; it's just a question of what jives most successfully with the widest range of people. Most people will click with (small pun intended) buttons much more readily than with number fields.
3. Consistency
The best interfaces are those that take sort of a fratal-like approach to their setup, each component a representation of the whole. Ideally, you should be able to grab any component in a program, say to yourself, "OK, what were they probably thinking when they came up with that?" and when you figure out the answer, you'll be able to apply the same exact logic to every other component.
Maya does this nearly flawlessly. Once you've learned one little corner of Maya, you basically know the whole thing. When the time comes you need to use a tool you've never touched before, you can simply grab it and you're all but guaranteed to understand how it works right away. You won't know all of its individual settings and capabilities in advance, obviously, but you'll know where to find them and how to apply them. Learning what they do can then be a matter of reading of or of simple trial and error, whichever you prefer.
Photoshop does fits this same mold quite well also. It's got a few little inexplicable inconsistencies, such as why do some filters pop up a small dedicated dialog window while others launch the whole filter library, but on the whole, the logic behind the whole thing is quite uniform.
And again, I have to defer to early 90's MS Office as probably the most significant advance in this regard. Say what you want about Microsoft, but Office of that era is one thing they did very, very well.
Blender, unfortunately, doesn't seem to have that sort of consistency. Learning one part of it doesn't necessarily help you with any other part. You've got no choice but to learn much of it through brute force, which for many, is uncomfortable.
4. Redundancy and Options
Any really good interface should always have multiple paths to achieve any and every task. At a bare minimum, every button should have a menu command that does the same thing.
Keyboard shortcuts should ALWAYS be optional, never ever required. They should be time-savers, nothing more.
Again, Maya does this perfectly. Literally every single command that has a button also has a menu slot. And anything you can do via button or menu, you can also do via text in the command line, if you prefer. It's impossible to have a keyboard shortcut for every single command, since there are literally thousands of commands, but the most commonly used functions all have them (as options), and you can set up your own any way you want.
Photoshop does this almost as well, but the options are not quite as broad. Not every button has a menu command, but all those that don't have one do have a keyboard shortcut, so there are still two ways to access them. And of course, there's no command line (although it could be interesting if there were one).
Blender, on the other hand, requires the use of keyboard shortcuts, which right away puts up a significant barrier between the user and the work. If you don't know a particular shortcut that you need, you can easily find yourself in trouble fast. Memorization is a must with Blender, and regardless of the best wishful thinking of its authors, the fact is most people are not terribly good at that. For that reason above all others, Blender can't help but be more difficult to learn than the likes of Maya, Max, or just about any other 3D application I've ever used.
Add all this up, and I think it's pretty easy to see why most people find Blender to be a struggle. Again, it's not that it's a bad program. It's got a lot of great things going for it. Its most important attribute, though, the interface, is just not something that the majority of people can easily bond with.