I have, over the past few months, noticed a bit of an oddity in my IT-related behaviour (I already knew about the rest of my behaviour). I work as an IBM i developer and, over the years, I have jumped on an started using pretty much every graphical tool I can find. Then I go home, boot up my Linux powered laptop, and spend half my evening in the terminal.
So why the disconnect?
I think it comes down to the fact that modernisation has become a hot topic within the IBM i community over the past few years, and it’s a bandwagon that many people jump into without pausing to define what they mean by ‘modern’. The result is that a great deal of emphasis is placed on the application front end with nowhere near enough thought being given to what overheads these tools incur.
Obviously, graphical tools have many advantages. A well designed GUI is intuitive, easy to use and can put a great deal of information onto a screen in an easily digestible form. There is, however, a performance overhead to be taken into account – both in terms of network traffic and the load on the local user’s CPU. For many applications, especially applications aimed at the business end-user, this performance cost is well worth paying.
For the technical user, though, it’s not quite so clear cut.
Once you know your way around an operating system, and the text-based tools that come with it, it is often the case that the command line is a quicker and more effective method of completing a task. In these cases, the GUI approach gets in the way of achieving stuff and becomes a source of noisy frustration (as the unfortunates who share an office with me can attest).
GUI based applications do have their uses, of course, and there are plenty of tasks for which a graphical approach is the most appropriate. But sometimes it isn’t.
The challenge, therefore, when faced with a shiny new tool is to ask yourself this: How will this tool make my life easier?