Over the past few months, a new venture in Linux usability has sort of appeared on the scene, championed by Mark Shuttleworth, with the aim of making Ubuntu (the Linux distro) eaiser and prettier to use - a worthy competitor to Windows’ does-it-all formula and Mac’s form-factor strengths.
One of the things that was apparently discussed at the last great meeting was file and content management, in which the traditional ways are being challenged by new thinking.
New to some, maybe, but I’ve personally been sitting on this one for a while. Computers now (from the desktop PC to the large-scale parallel-processing supercomputer giants), are based on the same fundamental principles as the first machines ever to be created - like, ENIAC, UNIVAC, those overblown punchcard dinosaur calculators - you get the idea.
Fundamentally, we’re still dealing with files, folders, and one-step-at-a-time process execution. All we’ve really done is make it faster, prettier, and more ubiquitous, but to say that we’ve “advanced” our computing MO in any significant way wouldn’t be entirely true.
Current OSes are too granular - data/process-oriented, individual programs, individual files, and some very complex linkage. In my view, the next generation OS will do away with that pattern forever, with the introduction of a task-oriented platform.
How would that work? Imagine if you’re an office worker. Your daily list of applications would include, perhaps:
- Email client (for office communication)
- Microsoft Word, Excel, Powerpoint
- Instant Messenger
- File Manager (every time you open My Documents, for instance)
- Media Player
And for each of these programs, there are countless other varieties:
- Web-based (ie, Hotmail)
- Word, Excel, Powerpoint
- KDE Office
- Web-based (Google, Zoho)
- Instant messenger
- Google Talk
- AIM, YIM, MSN, ICQ
- Media Player
- Windows Media Player
Your daily list of tasks, however, will be very different:
- Create documents
- Create spreadsheets
- Play songs
So in a task-oriented system, you’d have a list of functions. In the back end, every function is tied to a process, but you’re not forced to deal with complexities like that. Straight off your dashboard, you’d hit the Create Document button, and several things happen at once:
- A document editor launches
- The OS locates your documents:
- Locally stored
- Over a network (collaborative)
- Over the Internet
- Documents in your email inbox
- Documents sent via IM
- Documents on external media
- Your editing history is stacked in a single column, listing the documents you’ve opened/edited/sent/recieved recently.
And away you go. Everything you could possibly need for the task of creating a new document is presented.
Also, unlike the current methodology that Windows provides us with, every task would take up, in its entirety, a screen-sized dashboard. To create a new task, you’ll have to launch a blank dashboard, and perform a new task in there.
This allows for the cooler backend stuff like process sandboxing, but also allows the end user to sort out their work in a logical way. For example, if I were to use a task-oriented OS for the things I currently do on a PC, I’d have the following Task dashboards open right now:
- Social Media
- Web Development
- Web Browsing
Since Music could be considered a “universal” task, it’s centered on the Multimedia dashboard, but is heard throughout the system.
Currently, though, I have several programs open instead:
- Windows Media Player
- Google Talk
- Firefox (performing 2 functions)
I’m sure I’ve sort of made it clear what the difference is.
Next question - how are files (or data) handled?
Files as concrete units are a mistake. They’re called files and folders because they’re direct analogies to paper files and paper folders. The problem with a methodology like that on a digital storage medium is that its comparitively slower, prone to error, and difficult to navigate when they start piling up.
A local database, on the other hand, has several advantages. Native compression, easily indexable, can be synchronised to various storage systems for backup purposes, and a single storage format for just about everything.
Then, another way to reach your data would be meta tagging - assign a set of keywords to individual files. For those that blog with tag-enabled platforms, you’ll know how easy it is to add relevant tags, and how powerful they can be when you need to search for various and disparate pieces of information across multiple file formats, dates, and locations.
This OS should eventually consist of:
- Ground framework
- User interface modules (input and output)
- Networking handler
- Legacy file format handler (to decode/encode incoming/outgoing files)
- Task handler
- Connect tasks to programs
- Handle dashboards
- Process modules that can be re-used and combined to perform various tasks
- For example. A rich text editor for all documents, emails, IM, etc.
- An advanced Mathemetics module that applies to a standalone calculator, spreadsheet application, and interfaces with other modules to serve in advanced applications like photo editors
- And so on - most of your common functionality can be achieved this way.
In order to function in the 21st century, though, a large portion of this OS will be dedicated simply to decoding incoming information from whatever file format its presented in, to a local standard - and to re-encode that information upon transmission. The problem with that is that many of the popular codecs (like mp3) are proprietary, and not easily (and legally) accessible to opensource projects.
Another feature of this OS should be synchronisation across multiple devices. You should be able to keep one contact list, for instance, and have it accessible from your email client, IM client, your phone, PDA, and other computers.
That’s one potential strength of this system. If you’re in a broadband-enabled country, and you’re able to leave your machine online, you’ll never have to carry a solid storage device again - simply log in to your machine from wherever you are, and be presented with your dashboard, data, and tasks, remote-desktop style.
And that, in a very large nutshell, is my concept of a future Operating System.