Future Direction for Linux
***This is a post from an intermediate level Linux user, who is in his final year
of Computer Engineering.***
Name : Ksheerasagar Akella
Location : Mumbai, India
Distros : Mandrake and Slackware
Greetings to the Open Source Community.
I am a recent addition to the "teeming millions" who use Linux as their OS.
I have come from a Windows background, but have sufficiently adapted to the
CLI to feel atleast moderately comfortable with it.
The reason for this post from me is to present a few ideas which IMO will
propell the acceptance of Linux as the OS of choice in the DESKTOP world.
Please bear with me while I list down some reasons why Windows is so popular:
1. Virtually no learning curve for everyday tasks
2. No configuration required -- you don't ever ""have"" to edit .BAT files.
Of course, all this applies only to the "average" person who is happy to simply
use the computer to create documents and surf the web. Any system administration
requires more than the above rudimentary knowledge even in Windows.
Average desktop users do not need/want to know the most mind-blowing way to perform
everyday tasks, all they need is the easiest way. They do not want to deal with all
the myriad complexities of the software world, and especially not with the complexity
associated with a terminal waiting for input. They do not want to read documentation
to perform all the tasks from startup to shutdown. They will just go for the easier
If Linux is ever to be accepted as the desktop OS of choice, the first step ofcourse
is the GUI, and in this respect the developers have left no stone unturned.
But then why is it that Linux still isn't gaining acceptance the way it should be??
The simple truth is that sooner or later, the user WILL have to confront the CLI of
Linux to accomplish a certain task. And then what?? Does he just achieve his task with
ease?? No, he will have to ward through the pile of (truly good, but complex) docs
to know just how to get his task done.
This is where the user falters. Is his task worth spending 2 hours wading through all
that documentation?? Despite what all the more knowledgeable may think, the simple
answer is no. He has an alternative, and he will go for it.
So what is the solution?? Give up the CLI, and lose the one feature of Linux that
endears it to the hearts (and minds) of all?? Create a Windows clone so good
that its GUI gives MS a run of their money??
NO. You do not abandon your best feature just for the sake of the competition. You
package it well, so well that the new user is awed at once at the power of the feature.
The newbie MUST be drawn to the power of the shell WITHOUT having to wade through all that documentation. He must NOT get the feeling that there is some geek out there who is laughing his ass off while he tries to make sense of all that cryptic documentation.
You don't want any beginner to feel that right??
I have read quite a few beginner docs that say "Linux is free, you only need to invest
time". Well, time is exactly the resource the average user cannot spare. He would
rather spend money on Windows than spend time learning some wierd CLI tool.
Why is it that the average user finds it so difficult to adapt?? Why is the initial
learning curve SO STEEP??
Consider some of the first absolute basic commands that the beginner has to learn :
3. df, and so on.
New users are advised to read the manual pages.
The NAME sections of the manpages for the above commands read :
1. ls : ls - list directory contents
2. cd : bash, :, ., [, alias, bg, bind, break, builtin, cd, command, compgen,
complete, continue, declare, dirs, disown, echo, enable, eval, exec,
exit, export, fc, fg, getopts, hash, help, history, jobs, kill, let,
local, logout, popd, printf, pushd, pwd, read, readonly, return, set,
shift, shopt, source, suspend, test, times, trap, type, typeset,
ulimit, umask, unalias, unset, wait - bash built-in commands, see
3. df : df - report filesystem disk space usage
Human beings remember and learn by associations.
1. The first command 'ls' could be guessed to mean "list contents" fairly easily.
2. 'cd' might be recognised by DOS users to mean "change directory", but to the
absolute newbie it will not be obvious. To make matters worse, the user is
pointed to the bash manual (Newbie : What the hell is bash??), which is not
exactly a lesson in simplicity. In fact, the beginner will certainly NOT
follow on to the bash manpage and skim through the whole document searching
(PRO : Oh, don't u know that u can search the man page with '/<searchstring>'??)
3. 'df' :: report filesystem disk space usage
Where is the association?? To my knowledge 'df' stands for "disk free".
But how the hell does the beginner know that?? Do u expect him to think that
up on his own?? How do u suppose he will remember the command 'df' whenever he
wants to see how much disk space he is using??
(Newbie : Windows lets me see disk space usage with a pie chart. Much more
The list could go on and on.
I hope the point I am trying to make is clear.
There is no end to the knowledge one can gain. What makes knowledge of Linux so worth while for the end user, if he is initially bombarded with all that cryptic nonsense??
It isn't worthwhile, that's the point.
The most remembered and widely used objects (not just software) are always those that
are intuitive, that lend themselves naturally to learning by the human mind.
The reason for poor acceptance of Linux is that it does not show the newbie that it
lends itself readily to intuition. There is always a limit to the knowledge one can
acquire in a certain amount of time. Fresh users will not always have the inclination
or indeed the reason to invest time if they do not see results fast!!
Being a programmer myself, some objections that come to my mind:
1. Only the worthy may gain benefit from such a great OS.
2. Hey! You get to learn something new!
3. Linux is worth it.
All the above are zilch. Keep an open mind and you will have to agree with me. Its
after all a question of self respect.
(Newbie : How dare an OS test my worth?? How dare a group of nerds challenge my
intellect?? I make the cars they drive!!...)
Linux was derived from UNIX. UNIX was originally a programmer's OS. The roots which
Linux has emerged from makes it susceptible to the same drawbacks as UNIX. Linux is
also programmer friendly. Its not so friendly to your average grocer.
We have to make Linux intuitive for the computer illiterate (this doesn't make it any
less intuitive for the pros after all). More specifically, we have to make the
COMMANDS more intuitive.
How do we go about such a mammoth task??
IMO, like-it-or-not, Linux has to shed its UNIX roots. The time has come for Linux to
leave its UNIX beginnings and mature into something much beyond what UNIX ever was.
Linux has to outgrow being a "free UNIX clone" and become a true unique OS in its own
Linux is no longer just a system hacked together by a few inspired programmers.
It is a commercial-quality OS, which has to create standardised (in the sense that
it is intuitive) software for easy comprehension and acceptance both by the
computer literates and the illiterates.
Question : Does this go against the philosophy of Linux?? Will it mire the spirit that
has charmed so many out there??
Answer : No. The philosophy of Linux is more "robust" than to be affected by merely
parting ways with UNIX.
For starters :
1. Make Linux commands more intuitive, even at the expense of increasing
the length of some commands.
2. 'ls' is reasonable enough. But shouldn't the manpage of 'df' atleast include the
full-form as an aid to remembering?? Shouldn't the manpage of cd be easily
Why name the shell 'bash' when just 'shell' will do??
Why have shell scripting in bash instead of using Python (a really cool language) for
scripting by default?? (One less language to learn then).
If you want to give credit to the fine minds who wrote the programs, include the names
of the original author and all those who helped make the code better in the manpages.
In fact, including a bit of history in the documentation is also not a bad idea.
Manpages are supposed to be terse, but then they are referred to more than any other
form of documentation including info pages. History gives perspective to the
A note on switches : The letters used as switches have different meanings for different
commands. Wouldn't it be better to standardise the meanings of atleast a few
alphabets when used as switches, so that users will have to look at the manuals
Objection : Its not possible to generalize usage for all commands.
Answer : Agreed. But then we can classify tools based on use. Tools for audio can all
share the same switches, as can tools for video, files and so on.
Surely with a little thought it is possible??
In all areas of study, classification is used as a means of managing complexity.
Isn't it time we classified our tools too? Isn't it time we created standard
"learning aids" to promote the growth of Linux??
There is a lot more that can be said about this, and a hell of a lot to be done if the
Open Source community thinks this is a worthwhile endeavour. However, the end result
will without doubt be a much more "approachable" system than what it is today.
It will show beginners just what they can gain from this OS.
We should consolidate what is in our hands right now and perfect it before
moving on to bigger and better things.
I await a response from the community, especially from all the gurus out there who can
give substantial arguments against my point of view.
If any others had similar ideas before, I would love to be pointed in the right
Re: Future Direction for Linux
First of all...that was a very quick response. Thank You.
Next, I do know what BASH stands for.. I meant that from a newbie's point of view, who is encountering it for the first time
3rd. : I do know that google is perhaps the best search engine around, I myself use it a lot.
BUT, the point is, that the newbie has to go through all that documentation, which is not absolutely necessary to perform basic system tasks, even from the CL
The aim of my post was to try to determine if all of u think that we could somehow make the initial learning curve less steep for newbies.
Being somewhat proficient myself in Linux, I know what u feel when u say
" The docs are all there, we give good support"
What makes u think the average desktop user will want to read all that??
Couldn't we make the CL system more intuitive for the beginner??