Showing posts with label user interface. Show all posts
Showing posts with label user interface. Show all posts

May 07, 2012

Abstract interfaces

Gimp 2.8 - an important milestone in the road to Gimp 3 - is out. But this post is not about the new single window UI, or about the fact that saving an image is easy for the first time. This post is about the path to get to version 2.8.

Gimp is powerful - not entirely Photoshop powerful - but more than sufficient to handle anything an amateur photography enthusiast might want to throw at it. But overshadowing it's power is a user interface that feels piecemeal and awkward. If I had to summarize it's problems - it would be this: the interface lacks abstraction.

When a programmer builds user interfaces, it is a bit like an engineer trying to sell a product. A programmer knows exactly how piece of functionality works - what the variables are, what the functions do. The user interface reflects that - a list of inputs for the variables, organized into groups of functions. This would be perfect, if the goal of a user was to run the various functions - but when the user comes in to perform a task, the interface begins to get in the way.

A great abstraction bridges the gap between the user task and tool functionality.

And Gimp is taking it's first steps in that direction. Starting with a brutal evaluation of the current state of the interface, the Gimp team is doing what any good built-by-consensus project would. Reach out to the community for ideas.

But there is many a step before Gimp begins to resemble a polished UI. While that in no way means copying the Photoshop interface, but it involves coming up with a way to interact with the user in such a way as to provide capability and not functions. Of taking all available ideas and distill them into a coherent experience. But again, just like consensus might not be the best way to build a program, it might not be the best way to polish an interface. Maybe it just takes singular vision.

January 13, 2012

Android design standards - Finally!

Google just announced design standards for applications on Android. Having three different Android devices at home, I have first hand experience of the UI fragmentation on the platform. However, Google needs to go beyond Android for design unification. Google is broader than mobile, and having design consistency is going to be crucial for a standard user experience across all Google properties.

Consider the Gmail app, and in particular the menu item to “Report Spam”, for example. I use three different flavors of GMail, and the design across the three avenues is not only non-intuitive, but inconsistent. Even with an abundance of access, I have yet to develop the sort of muscle memory that I would associate with the typical Google user interface.

On the desktop, it is part of a grouped threesome, and looks like a happy stop sign. And it's relative position remains the same whether I am in the inbox view or the message view. That feels like a UI that I could get used to.

On my Galaxy SII, the SPAM icon looks like an alien, with a varying location on the menu. When I select a thread from my inbox, it shows up as an option in first menu page. When I am within an email, however, it takes two menu clicks to get to the option.

Finally on my Thrive, it is an option available only on the overflow menu. While that might say a lot about how good Google thinks it's filters are, it still makes for a very annoying user experience.

Three form factors, and three different ways of thinking about Spam. It is time Google thought about design standards for across it's solutions, and not just for a platform.

May 16, 2011

GDesk on the Nokia 5800: more details

GDesk is a work in progress. This is painfully obvious when you begin trying to configure or edit the existing UI.

Toggling the "edit" mode happens via the Design menu item. Once you toggle the edit mode, you are now able to modify the content and placement of the various icons on the interface.

What you can do though is severely limited. The first, and most glaring problem is the lack of an undo option. This puts you in a strangely tentative mode while editing. To add to it, there is no easy way to manage the z-index. So if you have overlapping elements, it seems like what ends up on top is something you have no control over. A couple of slips of the stylus and the only option is to Discard Changes and start right over. Saving frequently is probably the only approach to successfully making big changes.

That said, there is still a lot you can do. You can set up icons and links, change their sizes and use many of the active elements supplied by GDesk.

Editing is not the only thing that is half-baked. After using the interface for a while, it feels like I am ready to get back to the original UI. There are several reasons for that.

  • First and most importantly, this is not a complete replacement of the UI. All applications still look exactly the same as under the original UI. This is merely an alternate home screen.
  • While on the subjects of home screens, GDesk does not really replace it. Instead, it is full screen program, configured to jump in everytime you go to the home screen.
  • Most elements on the UI are not configurable. It does seem to have a title-bar but no way to edit it's properties.
  • GDesk is limited in terms of how much you can talk to the underlying phone, and how much the phone can talk to you. Notification is the key gap here. Each notification capability needs to be programmed separately, and right now the only notifications programmed are the SMS and battery. This means you cannot see if you have missed calls, emails or other alerts.
  • The other capability I missed was the ability to choose the profile directly. This meant 5 or 6 taps to switch to and from silent; instead of the usual 2.

Overall GDesk is more a way to get some good eye candy and not really a replacement UI. But again, this was little more than a beta, and something Nokia never thought to run with.

May 13, 2011

GDesk to skin Nokia 5800

For all it's hardware prowess, and flexibility, the Nokia 5800's interface is little more than a hastily put together extension of the S60 3rd edition interface that runs on top of the Symbian OS. This makes the touch interface more of an after-thought, but importantly carries over several elements that were more suited for keyboard interaction than touch. Nokia never got around to fixing this gap, before it's well publicized surrender to Apple & Android by choosing to go with Microsoft's Windows Mobile OS.

Luckily there were several other attempts to make up for Nokia's nearsightedness.

One such attempt was GDesk, written first for S60 3rd edition, and subsequently ported to the 5th edition. GDesk is a flexible, extensible desktop framework, that has the capability to build entirely new UI from scratch.

Inexplicably, or perhaps explained now in hindsight, Nokia did not jump on projects like this and try to integrate into their own interface efforts. There also has been limited development of GDesk in about 2 years. That however, did not stop folks from creating multiple themes and skins that can be used to create pretend interfaces.

Installing GDesk

Installing GDesk is pretty straightforward. The full package consists of the main GDesk .sis file, along with six other "plugins", giving you a total of seven installable files. The trickiest part is finding signed installable files so that you can install them on the Nokia 5800.

  • Search for "gdesk 0.34 signed" and you should be able to find a copy that works
  • Create a folder on your memory card, and copy all seven .sis files over
  • Use the File Manager on the phone to locate the GDesk installer first and tap to install it, as shown above.
  • Repeat with the rest of the plugins, and you are all ready to go.

Running GDesk

GDesk shows up as a regular application, double tap to run it. When it first runs, it is little more than an empty "desktop" with no distinguishing features at all. What you need is a GDesk desktop file, that contains a particular configuration. These are available as .gdd files.

  • Google around for good desktop file. I got mine from here. It emulates HTC's interface. Download it and store it on your memory card.
  • Tap anywhere on the desktop and select "Design". This switches GDesk into an editable mode.
  • Tap anywhere on the screen again and select "Load Design". Browse to wherever you stored the .gdd file and hit Select.
  • Wait, watch and enjoy.
  • There are two settings that are not checked by default, that you may want to make sure to enable: Tap > Options > Full Screen and Tap > Options > Replace Main. The first one makes it full screen, and the second one allows GDesk to replace the main menu.

GDesk: A Preview

The first feeling after installing GDesk and running the HTC UI is frankly euphoric. The graphics are clean and vibrant, thanks to the 5800's beautiful screen. There are five screens that you can swipe to traverse. But very soon the lack of depth of the implementation comes through. But more on that in a later post.

To be clear, GDesk is by no means a full fledged user interface. When you run any application, what you see is the default 5th edition navigation buttons. However, when you get to the home screen, GDesk appears, overriding the default (after a perceptible delay).

All said, this is a surprisingly powerful way to create a new home screen for the 5800. Next post to be about what works and what doesn't along with my first attempt at modifying the UI.

While it goes without saying, you could brick your phone if you do not take care. And everything on this post is provided with absolutely no warranty.

September 10, 2010

Using GIMP: Web 2.0 Buttons - II

In a prior post, I posted an easy way to make those three dimensional reflective buttons that are typical of the new Web 2.0 interface elements. GIMP, is a great tool to create those nice and shiny buttons. The other method was relatively quick, and this one is a tad more involved.

I am using GIMP 2.6.10 for the tutorial. For earlier versions, the main difference is the difficulty in selecting with rounded corners. Step by step tutorial with pictures after the break

September 09, 2010

Using GIMP: Web 2.0 Buttons - I

Web 2.0 has adopted its own distinctive style for interface elements, dominated by those three dimensional, reflective buttons. Using GIMP, it is easy to create those buttons. This is the first of two ways to do it - a relatively simple method. I will post a slightly more involved method later.

I am using GIMP 2.6.10 for the tutorial. For earlier versions, the main difference is the difficulty in selecting with rounded corners. Step by step tutorial with pictures after the break

September 01, 2010

Swype on, Symbian

Woo Hoo!

Nokia Beta Labs, has just announced the availability of Swype for the S60 5th Edition phones - including the Nokia 5800.

Not that this gets the S60 5th platform in line with Android, or gives me much respite from phone-envy, But it is a pretty darn good step in the right direction.

Just installed it on my phone and can confirm that it is indeed working. Swyped my first text message out. What struck me though was the broken UI in trying to download the beta directly onto the phone. Beta labs, on my phone, has a sign-on link that doesn't work. Nokia Ovi, defaulted to a mobile interface that does not have a link to sign-in. The quickest way seemed to be to go to https://account.nokia.com, force a log in and then go onto Beta Labs.

Despite the pain to get to it - Swype does work now.

July 26, 2010

Ugliest Website of All Time

Who wants to see the ugliest website of all time? And it needs additional plugins to display all the media on this page. And it is, I think, about wedding gowns.

 

My eyes!! My eyes!!

July 12, 2010

The real life Social Network

Came across this really informative post via Slashdot, on a Google researcher's presentation on Social networks. 216 slides and worth it. Paul Adams, the author of the piece, has a few compelling ideas that he introduces as part of the pitch - focusing on how Social Networks have got social networking wrong.

Paul starts off by showing how, by their very nature, social networks lump different types of acquaintances together under the umbrella of “friends” creating an inherently awkward atmosphere. By referring to everyone as friends, social networks (*wink* facebook *wink*) ignore the reality that people have distinctly different groups of friends.

Secondly, social networks also do a poor job of differentiating between strong and weak ties. Not everyone in a given group of friends is equally close to us. Instead social networks take the Twitter approach of treating everyone the same - giving rise to overload of trivial updates.

Thirdly, users care about privacy. But privacy is not a two-state concept or private or not private. Instead it is a much more nuanced state of private, public and publicized across different groups and strength of ties.

The entire presentation along with the speaker notes after the break.

June 26, 2010

Swype

Swype was a company I had followed ever since I first saw their video describing a new method for text input. Swyping instead of typing. A few days ago, I was able to take advantage of their limited beta for Android mobiles, and install it on my wife's Nexus One. And boy was it good!

Swyping S-W-Y-P-E

Here is how it works, instead of typing the letters of a word on a soft mobile keyboard, you swipe a rough pattern through the corresponding letters on a QWERTY keyboard. For example, the pattern on the left is tracing the word - Swype. A couple of things stand out - firstly you do not have to be very precise. The tool is very forgiving and can recognize your intent easily. Secondly Swype comes with a 65,000 word dictionary that it adds to every time you type in a word it doesn't recognize. Both key features promise a very easy interface.

But how easy to use is it in practice? My wife picked up phone after having Swype enabled on it, and after tracing two words exclaimed excitedly - This is going to change everything. If you knew my wife, that is a sentence she wouldn't normally use for just any app. In addition Swype has a ton of tips and tricks that turn up the speed on mobile text input.

The Swype beta for Android mobiles is now closed. Other platforms are not supported yet, but according to the company, support is in the works.

The product works. The next challenge for the company is to quickly scale up the platform support - Android, iOS, Symbian and Windows Mobile. And to translate this support into OEM deals like with the T9.

April 21, 2010

Sensory overload

Holy cow!

A couple of really good videos, from TED. Repetitive, so you need not watch both. But what it boils down to is the ability to better integrate the natural world and the digital world. A combination of off the shelf camera and projector, with the processing power of a mobile phone gives the ability to project information on everyday objects and use natural motions to access and manipulate digital information. More after the break.

October 31, 2003

User Interfaces

Gawd, I _*HAD*_ to post this.

check this out for the best in User Interfaces.



we aim to please

- ravikiran n.

September 11, 2001

User Friendly?

An essay on the concept of User Friendliness

The growth in the use of the Personal Computer has brought into prominence a very important concept of user-friendliness, a concept that was not very used in the eras preceding this period. In the succeeding period there has not been a term that has been more used and abused for various means and ends. Here we shall try to get a perspective of user-friendliness and ask some strange questions.

Also note that a major focus of this paper is the application of this term to the environments of Linux and Windows.

The early beginnings of the term user-friendly are shrouded in mystery. But what is known is that this word alone forms one of the biggest and the most successful mantra for the some of the biggest software companies around. So what is user-friendliness.

There's a lot of talk about making software more user friendly. Some pieces of software is user friendly, while others are not, right? Well, that seems to be the opinion that most people have. A common view seems to be that a program is user friendly if it has a graphical user interface, otherwise it is not. But this is a very simplistic and short sighted way of defining user-friendliness. All that graphical systems allows is friendliness and not user-friendliness.

What is the difference? The term "user-friendliness" also contains the word user that explicitly binds any definition of the term to another variable - the user. It means something friendly to the intended audience, and that is where the buck stops. User-friendly software is that software which does not get into the way of a user, not one that can be used without reading a single line from the manual. All user-friendliness requires is a fitness for purpose in the most unobtrusive manner possible.

It is not incumbent upon user friendly software to do the user's work for him. It is also not incumbent to provide animated paper clips that tear across your screen. User friendliness does not mean blandness of design, or lack of options.

One more additional point is to be taken care of before we accept this definition. That is the type of the audience. It is obvious that any user of the software is not one that comes into this world with all this information about that software built into him. He has a learning curve, for every piece of software he uses, just like any other thing he learned about. User friendliness of a software can be therefore further split into friendliness towards the newbie user and the seasoned user. We shall therefore define the user-friendliness aspect of the software with respect to the audience state as being "newbie friendly" "seasoned friendly".

We have in place a set of rules and guidelines, and of course a formal definition of the term user-friendliness. We shall use these tools to examine and understand some of the present concepts of user-friendliness that are prevalent in the community. We shall then proceed from that analysis to examine more important questions.

A few examples before we go on. Emacs is just another text editor. For a newbie. But any user of Emacs who has learnt the keystrokes will swear by Emacs till death. Therefore Emacs is user-friendly as it does indeed makes itself fit for the purpose and does it well, it also is more seasoned friendly. Take the MS-Paint program as another example. Almost every user has used it when he was taking his first faltering moves with the mouse. This program is very simple and intuitive to use. A simple straight forward application for a simple straight forward use. We may argue about the purpose of the program for which it is claiming fitness to, but the point is that this program is classic newbie friendly. I am aware of the bias in choosing examples but this was only for the purpose of illustration, and so no inferences are to be drawn right now.


The present concept of user-friendliness

There are a number of misconceptions about user-friendliness. I shall look at a few of the present attributes of software that are due to misapplication and ms-interpretation of the concept of user-friendliness.

User friendliness has come to denote the GUI, especially when it comes to comparisons between Windows and Linux. "Linux is less user-friendly" because it does not have a GUI like Windows. While the "fact" itself is arguable, that is not the intent here. The fact of the matter is that Linux, like its predecessors in Unix, has a rich set of small and powerful tools, that achieve a particular objective and do so the best way that they can. This tends to be a lot newbie unfriendly, because of the large number of tools available, and the variety of options that they provide. But again most of the tools that are needed to run on the commanline are those that actually do benefit from using the command line. Also these are tools that are not really meant to be used by a newbie, unless he is probably interested in the tool itself. Finally most of these tools do come in with a standard help on the commandline itself. Going by our earlier strict definition of fitness for purpose for the intended audience, all the commanline tools do indeed pass this criterion. They can be safely concluded to be user-friendly. If you find the use of some of these tools difficult or otherwise difficult, think a second they may not probably be for you. You might, have another option of doing the same thing that might be more friendly towards you.

Another common view of user-friendliness of user-friendliness has been "uniformity". Similarity of interface, and similar looking names so that users don't take time to adapt to the software. Although this concept is admirable per se, but an application of our rules makes us thing otherwise. A program is required to be fit for a particular purpose. Which means, so should the user interface. Any good interface should be intuitive for the purpose for which it has been built. And once this is done I see no reason for "uniform interfaces" and "ease of getting used to new interfaces". If you cannot make a spread sheet look like a word processor, the concept of uniformity does not exist and had not existed. In fact I will go so far as to say that all talk of uniformity of interfaces has never existed, was a product of the PR team rather than the developers, and was in fact a limitation of the GUI to be unable to provide ease of creation of new interfaces to the developers.

An aside here. The concept of similar interfaces has been abandoned by all the major software developers. The present term is "intuitive" interfaces. The reason is obvious. When a firm spend a lot of money actually developing software, it would like to make it distinctive and have top of the mind recall for its customers. The interface is the only way of doing it. Given the limitations of adhering to the user-friendliness, the companies obviously have opted out. So not only is the concept idiotic, it does not even exist, except in the PR department briefs.

User friendliness is come to mean the aggregation and integration of multiple functionalities into single monolithic all powerful programs. This is one of the great myths of personal computing. There have never been any programs that make things all powerful, and integrated at the same time, which have also been extremely powerful, safe and easy to use. Perceptions of user friendliness have always been at loggerheads for deciding which functionalities to include into a single program. Making a single huge program will also mean providing a lot of configuration options, which is considered not to be user-friendly. Hence given the functionality in a integrated program, there are inevitably a number of ways to do all of it better with smaller more focused programs. This has indeed spawned a new industry offering tweaks and hacks into known software to extend and increase functionality. Integration is newbie friendly and seasoned unfriendly.

A by-product of user friendliness coupled with the closed software model has stressed on hiding the internals of the software from the user. This is evidently to protect the user from the program, and make sure that he is not intimidated by the software in any way. In fact it is more to hide the shoddy work of the programmer, hide all flaws under the hood, keep the user uninformed and keep that poor idiot permanently dependant on the service department and new product updates.

One really absurd interpretation of user friendliness is perceived to be lack of information on what the programming =is doing at a time. It is considered to the program to apparently freeze up rather than give information on what it is trying to accomplish. On the contrary what user friendly software should do is to keep the user informed about what it is achieving. Normally the user would ignore all that information. But this becomes absolutely invaluable in times of errors. Any such information would be very useful in diagnosing faults, and for first aid. With the programs denying the user such knowledge he is bound to the support and service for salvation.

One final measure of user friendliness is the lack if information about how the program works. Modern OSes provide a number of ways of achieving the same objective. The absolute lack of technical information in the help, and limiting help files to "click here" information is hardly friendly. It may be argued that such information is not newbie friendly. Depends on the capabilities of the newbie really, and what is achieved by not including it at all. A real I-dont-care-a-damn newbie will never look into it anyway, even if it were included. But not including it actually makes the program unfriendly as it would take away crucial information about the fitness of purpose of the software.


Evaluation of the need

Ask any layman who uses computers about what he believes to be the most important requirement of a computer system. More often than not he will come up with the cliched user-friendliness. But should it? In other words why should computer systems be user friendly?

This may seem blasphemy to all but hear me out. The fashionable thing to do today is to make things user friendly, this has, on one hand, led to the development of the click and do interfaces. It has also, on the other hand, led to the excommunication of geek-speak from products of computer science. I need to dwell upon this for a little perspective on the path my reasoning is going to follow.

Through out man's history we have seen a number of sciences grow and develop. Without fail we have seen each science develop its own language. Practitioners say it allows easy and quick communication. Sceptics say this is to protect the practitioners of the science for the laymen. No matter what the reason, the fact remains that this particular stream of computer science is being denied of use of its own language from its own products.

The point is simple. Computer science is just another stream of science. Practicing it needs just the same amount of learning and preparation that any other stream of science needs. And just because it has the ability to reach the masses should not take away from the fact that it needs the respect that any other branch of engineering gets. Its ease of use should not be held against it.

To take complete advantage of this argument it is necessary, like in any other branch of engineering to identify the various components of the user populace. We shall split the user populace into two categories. The first we shall call the "dummies", after the famous set of user manuals that flooded the market. These are users who are primarily concerned with not the product, but only what it does for them. These users are the ones who should be given the whole "ease of use benefit". The titles that these users use are primarily the end user software like the word processor, spread sheets, multimedia applications, browsing and P2P applications. This will also include the large quantity of applications for other fields of study. All software that is used for data processing by members of other branches of science, engineering and even art come into this category. This therefore forms not only the biggest segment, it also is the most elastic and responsive to the user-friendliness of software.

Unlike common perceptions this will also be the toughest segment to program for. Instead of the sorry software of today that is sold to this segment, there should be more really user friendliness built in. There needs to be a lot of improvement in the software, which actually means not following the present norms. The following is a set of guidelines for the kind of software that is expected to meet the needs of the dummies.

  • Software must be focused, and accomplish more with little effort, especially when it comes to engineering applications
  • The software must make things transparent to the user, as far as the actual implementation of the various options in the program goes. It is not necessary or desirable for the software to prevent the user from being able to do things differently, in a way he desires. One such idea is preventing
  • The software must keep the user in the loop, communication to the user through visual and audio signals denoting the function performed. The signals should be subtle enough to ignore. For example the status bar is a great place to give a lot of information on what the program is performing.
  • While it may be required to keep the initial configuration of the program simple, no attempt must be made to reduce the option set available to the user. Advance configuration options are a must.
  • Rather than keep the interface standard, stress should be on keeping the interface simple, uncluttered and intuitive.
  • Documentation is important. Just like it is desirable to keep the configuration simple, without reducing the available options, advanced information and advanced implementation should be discussed. Any issues that may be faced by the users must be documented. If a known bug exists, it should be listed. Any warnings to the user must be explicit and easy to understand.
  • The user must forever be in control of his own machine. Rather than annoying OK pop ups, more desirable is to provide logs, keep track of changes performed and give the advanced user power to see and undo any changes made to the system.

Then we have the "power-users". These are the users who are either directly related to the branch of Computer Science, or those who are well versed with the usage of software. The kind of software this segment will be using will be the high end server level software, like web servers, SQL servers etc. This will also include those from the dummies who have gained an insight into the working of their own software and are willing to experiment and learn more. This is a set of guidelines for this kind of software.

  • These users are not newbies and should not be assumed to be the lowest rung of the use populace. The interfaces should be designed using common configuration themes
  • Administration should necessarily be centralized and be powerful and flexible.
  • Information should never be hidden from these users. Configuration options should never be limited to a few option sheets. It is strongly advised to follow the configuration file method of setting options. The Administration console may be a front end for a limited set of options. If the console can list all the options it is welcome, but none should be dropped because of lack of space.
  • Alternate methods for similar tasks may be optional but no attempt must be made to make it transparent. The user should have the power to choose.
  • Documentation should be complete, easily accessible and also include relevant technical and implementation information.
  • Log files are a necessity and so are front end analyzers for those log files
  • The administrator should for ever be in control of the machine, under all circumstances

Having defined what we expect from the software, we shall answer the first question, why should computer systems be user friendly?

The only reason computer systems should be user-friendly is to perform their intended function, for the intended audience. True programs are written by correctly identifying the intended audience, and the function is equal proportion. No user-friendly software can be called such if it chooses to ignore one of these two aspects. No concept of friendliness makes sense without both these variables defined, user-friendliness does not exist in vacuum.


Windows and Linux

Based on the discussion above, how do Linux and Windows measure up as Working environments. We shall look at the two environments, one supposedly user friendly and the other user unfriendly. We shall then dispel some myths and then evaluate their positions on the same.

Windows enjoys the position of power in the personal computer segment. This has been to a great extent due to its early mover advantage. Also the perception that Windows is user-friendly had a very important role in this. But how did Windows approach user-friendliness. And is this approach justified?

Windows assumed all of it users to be a bunch of morons. To give credit, it assumed that all it users are those that do not want to spend time at all to spend on trying to know the system that they were using. This may be true to an extent but it sure is a flawed. Although Microsoft has become the biggest player in the PC segment, it sure has lost out on the more advanced markets like say the server segment.

Microsoft through Windows has been highly user focused. All of its decisions have been end user focused. And this end user has been the common man, one who does not want to learn about the tools that he uses. This is brilliant when it comes to marketing strategy, but is bad strategy for building software. They say that the problem with Apple has been that it hired engineers to do marketing. The problem with Microsoft has been the fact that it hired marketing guys to do the development. That is in a few words it. That is the reason for a decent user interface, not no intuitive layout and pathetic functionality. In its desperation for user acceptance it forgot the part that a software is defined by its functionality as well. So we have software that is highly conforming to the standards that it had set about user-friendliness, the functionality has been sacrificed. It is possible to rant about it, but a quick look at the reasons for Microsoft bashing does suggest this thing.

Also Microsoft's focus has been on the simplicity of the interface, that all their products are known for. So what does Microsoft gain by this. By making a simple uniform interface, it prevents product differentiation. It prevents people from differentiating between competing products, giving the choice of these products back to the developers of the OS itself, that is Microsoft.

So is this software user-friendly. According to our definition it is not, it is flawed. The software may be newbie friendly but it sure is not complete user-friendly software. Because it does not give the function of the software enough say in deciding the design of the software itself.

What about Linux. This can be viewed as two things. First Linux with its Unix roots, as a server application. And then it its new avatar of a desktop alternative.

Unix, has been the most powerful and widely used OS in the past. It is incredibly stable and powerful. As many testimonies will prove. But it had absolutely nothing to show for user friendliness. To use Unix one had to undergo a vast learning curve. This obviously gave it absolutely low newbie friendliness. But on the other hand it did have a lot to show for the friendliness with the focus on functionality, and power of use.

But things are changing with the new focus. Linux is with a new focus now. Under the new focus of desktop users it has developed a number of things. Linux has the most powerful and easy to use Windows Managers. It had graphical front ends for all the products that a simple user wants. It also has easy to use products for all kinds of users. What are described as products which are notoriously difficult, are actually intuitive. And then come with a tremendous amount of documentation.

Linux is special in the fact that it has products for all the levels of users. And it has no barricades against getting more information yourself. Information is the most important thing in a Linux system. All the supposedly cryptic commands are not for the everyday users. And then how can one use that to dismiss Linux as a desktop alternative. Linux it more than a desktop alternative alone, it is a server which can be more friendly than a Desktop OS.

So is Linux user-friendly. Not really. It does lack in most of the easy to use interfaces. It sure is newbie unfriendly. But the point to note is the focus. It is just not on either the program or the user. It is on both. Hence in the long run it is Linux alone that can have any truly user-friendly programs. If I were a punter, I would put my money on the Linux horse. It may be slow now, but it will only get faster.

Document Changes
September 11, 2001: Initial publishing of the article.
April 02, 2009: Spell check and cosmetic changes.