Ok, over the last week or so I've been giving a lot of thought as to what
exactly Linux (or Unix in general) needs to have in order for it to
become more popular than Microsoft Windows. Last night I stayed up real
late typing out the following document. Read through it and discuss..
I can provide more detailed info about my ideas upon request..
===========================================================================
Fellow Linux fans,
For awhile now a debate has been raging as to whether or not Linux
should be shared with the rest of the world. From what I've seen many
seem to believe that Linux is something that even newbies could use, but
there are those who believe that since Unix in general is more complex than
DOS/Windows, Linux should be reserved for Unix activists.. I'm inclined to
agree with both. Linux has the potential to become the next great popular
OS, but it is still too complex for the average user. Here's why:
* There is still too much reliance on the command line interface.
* There are insufficient applications available that would be useful.
* It is too difficult to configure anything (especially X).
* The GUI isn't simple enough.
* It's too hard to install anything.
* No good games.
Now I'm a command line junkie personally, but most of the people
who haven't yet switched and probably never will are those who rely on
Microsoft Windows to do everything for them. Now we all pretty much agree
that Windows is a clunky, unreliable GUI. I've seen nobody arguing that,
except those who have never tried anything else. We also all agree that
Linux (or Unix in general) is far more stable, and powerful. But I'll be
the first to admit that Bill Gates has us beat in one area. Windows is
incredibly easy to use compared to Unix and XFree. Here's why:
* Program Manager: an easy to use icon based application launcher.
* File Manager: a pretty good one especially when compared to what's
out there for X.
* Built in Multi-Media: The ability to add new formats to the media
player is a major plus.
* Easy to use standardized interface: Many X programs have easy to
use interfaces, but it seems no two programs use the same
one.
* Programmers have a standard toolkit: X has Motif and XView, but
one's commercial and the other is all too infrequently used.
* Individually loadable drivers: Linux itself has never had these,
but is now working towards that goal. An X interface to
aid in their configuration will be a must.
* A host of other little things
What can we do about this? Plenty. I have a plan for the development
of several different programs for X that can help us move towards a standard,
which will blow Microsoft away in terms of usability, power, and
-= hopefully =- popularity. Let me explain. For starters, I'd like to
use programs which are already in existance to do much of this. If it's
already been done, why start over. In these cases, it would be wise to contact
the author(s) whose program we wish to use and ask for their help in
integrating the program with the new standard. In areas where nothing
currently exists, we can ask for programmers to help in the creation. Here's
the general structure I'd like to see:
* A new Window Manager. Many of the features of fvwm would be
useful, and in fact it could be used as a foundation for
this project. However we would need to streamline the
resource file so that on-the-fly changes could be made
as necessary. The modular system of fvwm would also
be useful, and many of it's current modules could be
ported without many modifications (it's Sound Event and
Pager modules for example). Many of fvwm's currently
built-in functions should also be modulized to cut down
on overhead.
* A program manager should be created. I will include more
details later in this document.
* A media player. I've found xanim to be very useful so far, but
it lacks in the area that it's not expandable to include
new formats except by the author. More later.
* A file manager. Midnight Commander has announced that its new
version will be written for X. I'm not exactly sure what
new features it's touting, but a file viewer would be a
definate bonus.
* A programmers' toolkit. It would contain easy ways to do things
that both Motif and XView left out. Such as toolbars, pull
down menus, OLE, drag-n-drop, multi-media functions, etc..
Basically all the different specifications of this standard.
* An Install manager. This is an idea I believe to be an original
from me. More later.
* Applications that can follow both this standard, and still retain
the ability to run without it. Programmer's would be
encouraged (but not forced) to write programs that would
use all the features the new standard provides for (ie. OLE,
drag-n-drop, on-the-fly config, toolbars) which would still
be able to operate without this "library".
Now, to go into more detail on a few of these things..
First of all, and most importantly, the programmer's toolkit. This would
have to provide functions to do all the different things the standard
specifies. In writing this library, we could borrow from both Motif and
XView for what has already been written. I believe things like buttons,
basic X functions, & etc are written in here. Stop me if I'm wrong, I'm not
the best programmer, and I really have no X programming experience. However,
I'm not aware of any functions for doing things like OLE, drag-n-drop, toolbars,
dialog boxes, pull-down menus, on-the-fly configuration, and other high-end
features being included. As this standard develops, new features could be
added, but here's a few I'd like to see as a start:
* Object Linking and Embedding
* Drag 'n' Drop
* Button Toolbars
* Pull Down Menus
* Built-in Icons (for the program manager)
* Dialog-boxes
* On-the-fly configuration
* Printer Interface
Next, the Program Manager. This could be written either as a module, or
as an application using the toolkit just described. As a module, it would
have to run from within the new window manager, but could be written smaller
so as not to take up too much overhead. As a seperate program, it could run
in any window manager (thus allowing the option of using others), but would
be larger due to the fact that the library would have to be linked in. I
generally envision this as a cross between PCTools Desktop and Norton Desktop.
Either way it should have at least the following features:
* Program groups
* Clickable icons to run apps
* Application Icon's don't necessarily have to be inside a group
* Groups can contain other groups
* The ability to drag an icon to and from other apps.
* Automatic groups for containing up-to-date listings of a users's
docs or whatever.
* Whatever else we can think of..
A Media-Viewer. Like I said before, Xanim is a good start. However, a better
approach would be to create a general viewer with the basic controls (stop,
play, pause, rewind, fast-forward, loop, etc..) and have it only have two
native formats: A sound format, and a video format. Then create drivers,
which would convert whatever it is into one of these formats (ie. a driver
for .wav would convert the .wav into the native sound format which would
then be played) or in the case of video with sound, would break the file
into it's two parts as well as convert both parts into the native formats
(ie. .mov would be broken into native sound and native video). The native
format specs naturally would have to be made public so that new format creators
would be able to write drivers for them (or so third parties could).
A File-Manager. I mentioned Midnight Commander before.. It's not out yet for
X, so I don't really have anything to base an opinion on, but my guess is it
will be good. I also said if it doesn't include it, we'll want a built-in
file viewer. Most people know how this works.. One standard display format
and a filter for converting others.. ie. the viewer would be programmed to
display only jpg and the filters would be written for specific apps (ie
rtf -> jpg).. Now obviously that specific scenario seems a little odd, but
some other format would be more ideal for the standard.. Authors of an
app which creates one format would then write the filter.. Same concept
as the Media-Viewer but for still images.
A Sound-event manager. FVWM's already got one, but it could use some
enhancements, such as the ability for other programs to add events to it.
The Install Manager. I believe this may be an original idea of mine. I've
never heard of anything like it.. What this is is a client/server program.
The specs for the client will be distributed to programmers, and will be
similar to the Makefile. Programmers will include in it instructions on what
needs to be configured by the user, how they want the user to be prompted
for this info, etc, compilation info, and installation info. The server
will be built in to the window-manager, or maybe as a seperate app callable
from any program conforming to the standard (fileman, progman, etc). It will
control the actual details such as how to display the info given it by the
client. It will be similar to make in effect. Thus a user will be able to
pull down a menu from the program manager, select Install App, be asked
where the App is to be installed from, and it will take it from there,
prompting the user for info as needed, and displaying error messages, and
progress meter along the way. It will be in effect like providing an
install.exe program to all developers and allowing them to create an
install.nfo file or whatever. Some DOS/Windows app companies already use
one installer for all of their apps making only minor modifications for
individual programs.. Why can't X have something like this?
Disclaimer:
* I'm aware of the 4D window manager for SGI which has some of
the feature's i've mentioned.
...
read more »