Wiser (not elder…) developers like me will certainly remember Love-is comics. In my software design classes, for a time I used a few slides rephrasing the slogan to Architecture-is. Today, I want to share a couple of thoughts on the theme of what usability means to people.
Don’t worry! I’m in a rush so I won’t take the long and winding (and annoying) road of arguing around philosophy, models, behavior, central role of users in modern software and all those known-and-boring things. I just report a glimpse of reality topped with a couple of personal considerations.
Yesterday I was looking into IntelliJ IDEA and Eclipse. For years, Eclipse has been the free IDE for tons of Java developers. IntelliJ IDEA appeared a few years ago and being a paid product (at least in its Ultimate edition) it managed to offer more. What more? Mostly usability.
What’s usability then?
For the most part, usability is a large collection of many little things. It’s something you can easily recognize but hardly describe in a formal way. Usability, I think, is also an absolute value and not subject to personal preferences. Here’s a little example of usability that Eclipse first provided and IntelliJ IDEA improved on.
Eclipse comes with its own Java compiler and doesn’t use javac–the compiler you get with the Oracle SDK. The Eclipse Java Compiler (EJC) exists for two main reasons: supporting incremental builds and producing binaries out of code with errors. The second point sounds intriguing, isn’t it? It means that ECJ always tries to give you an executable; if you submitted code with errors you get a run time exception only if the execution flow reaches the buggy code.
Architects of IntelliJ IDEA took a different and more traditional route to it. IntelliJ IDEA defaults to the classic javac compiler and uses pieces of logic within the IDE to implement incremental builds. But IntelliJ IDEA also lets you switch the compiler and use ECJ instead of javac so that Eclipse users can feel at home and just enjoy as much as possible of the other IDE.
Paraphrasing the comincs, usability is … letting her choose your Java compiler!