Tuesday, March 24, 2015

The Problem With Mainstream Operating Systems

Mainstream Operating Systems:
GUI Bloat, Confusion, And Restriction
What's the problem? What can be done!?

The Rundown
I work primarily with system development and have had it to the brim with desktop operating systems so much so that three years ago I began developing my own from scratch and others based off existing kernels and more. Why? Some background first...

Ignoring the nitty-gritty of computers and considering it a black box, computers truthfully just need a file system, the ability to handle programs, and a user interface. Nothing showcases this basic functionality than the original command line based interface, or CLI. This interface however is not beginner friendly and discouraging to many. However with detailed knowledge of the system this tool can become very effective. To encourage more people to jump on board with personal computers, the graphical interface, or GUI was the next logical step. The only issue is that this was the Pandora's box of computing and inevitably the death of efficiency.

Now for the point. Have you ever tried to use Windows 8 on a desktop? I needn't say more. Ever get confused as to why Windows has three stock image viewing programs and two media viewers? How about using Windows 7 libraries?  Some may debate it as powerful, yet it discourages organization with the typical user. Maybe Mac is more your flavor. Notice how abstract the file system representation can be? This serves a purpose in keeping average users relatively organized. However, power users may feel their skin crawl off as they scramble to execute "defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES killall Finder" or download another file browser. The Mac interface and options have turned near completely to a one way about things GUI that doesn't let the user really see the system innards. I'm not saying it cannot be customized, but this is not first hand knowledge (nor is the massive heap of short keys available - they allow for good management). Although it certainly does not have the incredible clutter of options to navigate the system like Windows. How about Linux? To be honest, Linux development supports flavors that suit any user need. However driver and software support isn't always on par with Windows. In short, the main systems deem the user somewhat stupid, favor heavily graphic based interfaces, and try to abstract things that really do not need abstraction. This leads to clunky or narrow interfaces which either restrict the system or make graphical management of it confusing or bloated. Although some exist with a happy medium, they do not have the traction visionaries like Gates and Jobs developed. This limited support to these other systems.

The GUI could have been a tool, instead it has become a means of abstraction to let the simplest of users manage by stumbling through the system, or being herded towards something. However, why not make the system easier to understand AND powerful. The algorithms and implementations exist in these systems to perform the following. Open a program, file, or location with a partial search. Open file explorers with simple key. Navigate file explorers with arrows, smart searches, favorites, or auto-completion. Window management with basic key presses that can also include mouse usage. Why not deploy a system that trains the user to use this simple interface that has a desktop and touch version? The answer is simple really. GUI's were an experiment. More and more features were added, or more and more power features were restricted in less and less time in order to mimic competition, explore unknown ideas, appeal to simpler users, or to eliminate user generated problems like trying to speed up windows by deleting system32.

A Sample Implementation And Why
(Inspired by Android, Windows, and Linux Mint!)
So what can done? Simple. Make a system that has pretty intuitive options.Everything is dumped mainly into two highly organized intuitive lists AND is easily searchable. If it exists you'll know it. If it doesn't you wont find it. Management of programs and files will also be very simple and easily manageable. This could enable both new users and hardened power users to happily use the GUI without feeling confused, restriced, overwhelmed, or slowed.

UPON first run it offers to list the shortcuts/tutorial as icons until disabled
The desktop includes toggle-able function icons to perform the listed tasks below, also the times and useful information, however the main search + settings key always remains, like the Windows orb.

Tutorial! The system will run this once and remain a re-runnable icon until the above is disabled

For actions that will perform naughty things, A program notifies the user if they are doing something typically naughty and prompts them with an informative description. For example entering the system folder will warn them of the dangers of modifying files.

To run a program:
1) The installed program list shows by clicking the windows orb then all programs  (modified from stock to be a popup list)
2) OR Windows key + start typing program name enter when recognized (based off launchy)

To close a program
1) click the exit button
2) alt + f4

To snap windows
I) upper right corner: windows key + arrow key combination
(upper left, left, lower left, lower right, right, upper right)
Eg upper left: windows key + up + left

To change a windows size
1) click and drag
2) windows key + shift + arrow key (corner nearest middle... upper right corner app can change by using the bottom and right arrow since it is snapped to that corner on the screen)
3) maximize: windows key + m will maximize the current program or place it back in its tile

Switch windows: windows are only visible in the snapped frames
1) For windows snapped, windows key + 1->4 - THIS modifies alt + tab
2) alt + tab + (click/arrow keys)
This has been modified to list the same program vertically for each instance
3) click window in both alt + tab menu or main screen

To open file explorer:
1) Windows key + e
2) see above
To navigate an explorer like file explorer or an internet browser
I) forward and back:
1)windows key + ctrl + arro
3) click the forward and back arrow
II) search: alt + d, this includes path autocomplete and smart file search
II)favorites or bookmarks or back:
1)ctrl + b
2)click

To open settings:
1) A list shortcut exists showing every windows tool under a category when hitting windows key, this can be arrowed too or clicked
2) Windows key + type settings then enter

Open a setting related to something EG audio without knowing the application name: Windows key + audio then arrow right or click on the small arrow that appears for a list of possible programs
THIS is done by tags.
All settings galore: Each has been simplified to visually easy 2d menus located under categories. Typing will forward to the nearest auto completed option or arrows and the mouse work.

Existing programs: There exist only one program per function. This SIGNIFICANTLY cuts down on confusion since they can be searched by tags or the actual name. They too all exist, categorized by function or the main tag in the menu.

Conclusion
This could rapidly enable a new user to learn the basic functions of the system! While different hardware interfaces may not apply to the sample, the idea stands. Simple systems can be much more powerful as the user has more of an idea of what they are doing, and users that know what they are doing can be enabled by conventional means or a GUI that doesn't feel inefficient. It is unlikely we will ever see this in these titanic systems. This change down could be suicide for Windows or Mac since users want more without knowing what they want. In the end, things are changed to make the appearance of something new whether or not it is even useful.

Checkout Google's stock lollipop unlocked
(Haven't checked IOS 8 yet)
Although companies weigh it down and bloat it, the stock unlocked (rooted) version exists to serve this purpose. Not only is the stock unlocked completely modifiable, it is minimalistic and limits the user to certain interfaces to perform certain tasks. On top of that it takes five minutes to learn. For example, quick settings exist in a pull down (flashlight, wifi, lock screen), a settings menu modifies system settings and is blocked into simple categories, there is one window manager and last app switch button to quickly traverse/close open apps, and the home screen houses apps and is responsible for its own settings. It is a great example and larger operating systems could learn a thing or two from the fully functional yet tiny system installed to so many android devices.

1 comment:

  1. Hey Zach,

    I understand you're complaints with the major operating systems. I do agree that I wish they were more powerful at times. However, I also believe that it is better to have no learning curve for most OS designs. This is simply because the majority of the population doesn't even know how find where their programs install to. Most people will never need any sort of major shortcut keys. It's my personal opinion that if you were to overload people with those they'd just get confused because they probably wouldn't even understand what they meant. While entirely optional to learn most people won't like if they accidentally hit a key stroke which closes all open programs or something of the like. Most people don't want to ever have to read a prompt and would much rather than anything they shouldn't be messing with they just don't have immediate access to. Thus why things like the System32 folder has to be manually traversed to. I think the reason modern operating systems work for the vast majority of people is the exact fact that they require no explanation and no thought. Everything is intuitive to the point that you just need to see the home screen to know what to do. I think something that you're describing would be exclusively beneficial to power users. This is also why I agree that I don't think we'll ever see a coherent implementation of your ideas in any major OS.

    ReplyDelete