User friendly - I do not think that means what you think it means
Saw this post the other day: Emacs is hurting Clojure and this response: Is Emacs Really HJard to Learn / Use.
This called to mind those countless discussions about tools being user friendly. I'm frequently on the unpopular side of these discussions. Linux vs Windows vs Mac, Shell vs GUI, Emacs vs fill-in-the-blank-editor-or-IDE and on and on.
Don't use Emacs, it isn't user friendly. Don't use Linux, it isn't user friendly.
The thing is, I don't think that word means what they think it does.
I tell my kids that Linux and the shell is amazingly user friendly and Windows and Macs aren't user friendly at all. Windows, rather, is "Learner Friendly." For years, it's been easy to learn what you can do on Windows or Mac (as used via the GUI, not dropping to a shell) but the truth is you can't do that much. They're designed as program loaders not tool kits.
You can learn how to get around and load programs and files very quickly - much more quickly at first than using a command line interface. The problem is, at that point, you hit a wall. No doubt those operating systems are more learner friendly than Linux and the shell but once you learn the command line, it can be leveraged for all sorts of things and pretty easily at that - user friendly (see these posts for some examples: Shell posts).
This is important because we have our students use all sorts of tools and we should be thinking about things like usability but we really should be thinking about them a little differently.
First, is it learner friendly. Part of this is cost of entry. Linux has a high cost of entry. On the other hand, while Emacs might look uglier than other modern editors, the cost of entry is pretty much the same as any other editor - click or type a command and then you can use the mouse and drop down menus to get started. Vim, in my opinion, on the other hand has a higher cost of entry due to its modal nature.
So, there's no reason not to use Emacs (vs another editor) but you might pause before using Linux. My approach is to start as if it were Windows - use the gui, icons and menus, and then slowly introduce the command line.
Once your past the cost of entry, the we can think about being learner friendly. As I mentioned, Linux, not so much. Emacs, sure - just like any other editor with drop downs that then give you keyboard equivalents.
The keyboard equivalents lead us to another part of learner friendly – discoverability - can you easily discover new things about the tool. Here Emacs shines. Linux, maybe not so much.
Once past learner friendly we get to user friendly. The core question is "can I do what I need to and want to do easily." For most people, it comes down to - the tool I know is user friendly and the one I don't know and don't want to take the time to know isn't. There are some things that are cumbersome no matter what, but really, when we say user friendly, most people mean "what I like." To me, it's a little more - is the tool expressive and powerful as well.
So, why is this important? First, we shouldn't allow our biases to color the way we expose our kids to tools but at the same time, we should pay attention to learnability, cost of entry, discoverability, and indeed, true user friendliness.
Low Power | High Power | |
Low Learnability | CP/M | Linux Shell, Mac Terminal |
High Learnability | Windows / Mac OS GUI | Most editors, including Emacs |
So, let's stop with this "your tool isn't easy to use" nonsense. Any tool we don't know isn't easy to use until we learn it. Let's focus on the path to learning the useful ones.