A Modern Operating System

The place to bring up any design issues, or post your own creations

Moderator: Moderator Team

Aape
Posts: 95
Joined: Sat Sep 20, 2008 5:29 am

A Modern Operating System

Post by Aape » Wed Oct 01, 2008 9:14 am

First off, I understand how much any deviations from the w2k look are absolutely hated around here, and I also understand all of the disadvantages to updating the look (extra resource usage, alienating users that are familiar to the Windows UI). I also understand that all of the effort made by the developers should be into getting program compatibility and stuff like this shouldn't even start to be implemented until after that is near-perfect (which it, admittedly, is far from so now), but that isn't what I'm trying to say here. Above everything else, what I propose is a change in philosophy of the Design forum itself: To consider the future, not the present. After all, any serious proposals for updating the interface in the here and now will be rightfully shot down.

With that in mind, for the remainder of this topic, my posts will be in the context of a fully compatible version of ReactOS, which for the sake of this topic will be 1.0 (I actually have no idea if near-perfect compatibility is really what the developers are shooting for with 1.0, but we'll go with that for now).

First, we must ask ourselves, why do we even have a GUI? The answer to that is mainly 2 reasons: To enhance usability and attractiveness. Usability is greatly increased by a GUI because we as human beings learn better by recognition than by recall. Under a command line, you have to memorize cryptic commands. Sure there are man pages and hard-printed text manuals, but what if the program you're trying to use is very poorly documented? Not every app has the luxury of having a team of technical writers to keep up with it for writing documentation. With a GUI, however, even if you forget precisely where a command is within the menu system, it's not very difficult (or at least, it shouldn't be. Just having a GUI can't save a program from having incompetent UI management...) to simply re-learn where it is by doing a second of exploring. That said, a GUI makes it much easier for people to be able to use a computer, without having to be an expert on them. As well, a GUI makes it possible to do tasks that more or less require a graphic interface to function at all, such as image editing. I guess with some creativity you could make it work, but just barely. Try using Gimp solely with the keyboard. I dare you.

Secondly, a GUI increases attractiveness. Having pretty colors on the screen is much more pleasing to look at than the old green-and-black teletypes. We can have sexy looks on the other devices we use every day, such as our cars, our furniture, our toasters... Why not on our computers? Despite how many geeks would argue otherwise, appearances account for a lot. You have to think about these things from a non-geek perspective, because we geeks are the minority. A computer can have a billion GB of RAM and process at 100 Petaflops, but non-geeks don't really pay attention to these things. The average user will choose the system that looks the best on the surface. This is obviously not the optimal way of making decisions, but for the non-geeks it's the only feasible method they have. Non-geeks aren't going to pour hours, days, or even weeks into figuring out what all of these numbers really mean for them, nor should they be expected to. Think of a robust operating system without an attractive interface as a Station Wagon that gets 150 miles to the gallon, with the sole exception to the comparison being that people tend to be much more informed about cars than they are about computers. But this is mostly something that Microsoft's "Weld the hood shut" method of UI design has brung about, but I'm not going to discuss that any further. I do believe it's important to educate the public on the issue, but noone should be expected to be an expert on computers to be able to write a letter on one.



You may be wondering why I just went through that little rant, but bare with me. The next question I ask is "What is a Modern Operating System?" Well it's exactly what it sounds like. It's an Operating System in how it's a base level of applications and libraries used to power the system along with a set of calls for application developers can use. And it's modern in how it addresses the issues of the current day and age. Including its UI. As in, it needs to be attractive enough at face value to catch someone's eye enough to urge them to try it out (of course raving reviews about the OS's reliability and flexibility should help, but ultimately for non-techies the look is the biggest deciding factor) and it needs to be designed to fit the work and play habits of today's users, as well as keeping in mind addressing the biggest issues of computing today (Security is a big one).

The Win2K interface doesn't do any of these things!


The reason I created this topic was to discuss in which ways we can make the compatibility-complete (1.0) version of ReactOS A Modern Operating System, at the UI level (as this is the design forum after all). It may be too early as of right now to start implementation, but it is not too early to start planning.

I can anticipate a few things that will come up in this topic, which I'll try to answer to the best of my ability now instead of dealing with them a few posts from now:

1. Skinning features are planned for ReactOS. If people want a pretty desktop, they can set it up themselves. No need to make the default anything other than the win2k interface.

Again, to this I say that the majority of users will judge the system first at face value. First impressions mean a lot, and if you mess up the first impression badly enough it might be the last impression. And for an operating system, that first impression is the UI. I personally am for the ReactOS project and want to see it flourish and grow, and I'm sure many of you want to see the same thing. For it to do that, then we need to do this first impression right. Microsoft made the Aero interface for Vista because they needed to compete with the "Wow" factor that OS X's interface provides (which isn't really of my personal taste, but not going to go into that now either). For the public to see ReactOS as a serious system, it needs to compete with Aero and Aqua. Otherwise, it'll never be able to shake that impression of "It's just some thing a few geeks on the internet came up with." Of course, people should be able to change the theme to whatever they want, but the default theme is the identity of the look-and-feel of an OS. For ReactOS to have a positive identity in those terms, it needs to have a modern interface as its default.

2. Pretty themes look good, but they just eat up system resources.

On a computer that's 15 years old maybe, but on newer systems the difference (if done right and isn't filled with bloat) is so marginal as to be nonexistent except for the most obsessive nerds. Of course we should pay respect to those with older computers and for the geeks who want their computers to be as fast as possible, along with those who use resource-intensive applications that need all the resources it can get, but these people are the minority. Why should we run at the pace of the slowest? Not everyone is using CAD software, not everyone is running on a 20-year old computer, and not everyone has OCD about keeping their computers fast like I do. The new interface is default, but optional. The minority users who don't want the shiny default theme can turn it off easily.

3. Changing the interface would be against the goal of the ReactOS project.

Maybe I just haven't been around long enough to understand what the ReactOS's project's true "Goals" are, but from what I can see it's to create a Free and Open Source operating system that is compatible with, but superior to Windows. This means that the interface should be similar enough to Windows as to make someone who is familiar with Windows to be able to use the system with no major issues, but not to be a 100% clone of Windows. How can you hope to become superior to something if you choose to mimic its every action? Of course, major deviations such as placing the application menus onto the start menu are unwelcome, but what's the matter with adding a few usability improvements? By making it different from Windows in any way, we add on a tiny little bit of learning process, which we've already done by implementing a repository-like application installer along with workspace management. Humans aren't total dumbasses, we can figure out things on our own very well, and a GUI makes it very easy to do so.



You're all free to come up with your own suggestions, but here are my major points:

1. The interface should be completely modular and customizable. You should be able to put anything anywhere you see fit. The default should imitate the Windows setup as closely as possible providing for usability improvements, however.

2. The theme should be attractive, as well as being neutral as possible, along with the default wallpaper. The window decorations should be able to match any wallpaper the user sees fit to put on their desktop, as should the font and the icons. As for the wallpaper, I was thinking something like this, but we should have our own photographer or graphics team make our wallpaper, of course...

3. We should make our own of everything. Not only to avoid legal hassles, but to give ReactOS its own identity. The trickiest part of this will be maintaining familiarity, while at the same time not "Copying" other OSes, like some legacy OSes are accused of doing...


Discuss away....

*rests tired hands*

Z98
Release Engineer
Posts: 3379
Joined: Tue May 02, 2006 8:16 pm
Contact:

Re: A Modern Operating System

Post by Z98 » Wed Oct 01, 2008 5:02 pm

To those who wish to participate in this discussion, keep these things in mind.

Here's the thing with trying to do any design changes in a user interface: basically everyone sucks at it. This includes me as well, and I readily admit that. After all, this would be why companies like MS and Apple pour so much money into researching it. Saying we should add some things to make the interface more usable or friendly doesn't tell us how to make it more usable, and people's tastes vary widely in regards to what they think is easy to use. The presentation of suggestions by many people are also haphazard most of the time, so you probably want a process to identify weaknesses first and then try to rectify them.

That was the hand-wavy statement. There's also a practical side to trying implement any such design. We are basically limited to what we can pull off using the built in functionality of the public and internal APIs in Windows. This means that if we want to implement something, it needs to be done with the available functions and interfaces. This limits us to just what kind of widgets that can be done to those that already exist in Windows. Trying to hack in support for new stuff isn't something we want to do, since that risks breaking compatibility if someone actually makes use of that function in ROS and expect it to work in Windows.

With those two things in mind, have fun. *away*

Aape
Posts: 95
Joined: Sat Sep 20, 2008 5:29 am

Re: A Modern Operating System

Post by Aape » Thu Oct 02, 2008 10:57 am

Here's the thing with trying to do any design changes in a user interface: basically everyone sucks at it. This includes me as well, and I readily admit that. After all, this would be why companies like MS and Apple pour so much money into researching it. Saying we should add some things to make the interface more usable or friendly doesn't tell us how to make it more usable, and people's tastes vary widely in regards to what they think is easy to use. The presentation of suggestions by many people are also haphazard most of the time, so you probably want a process to identify weaknesses first and then try to rectify them.
Of course there should be user tests... A problem facing the ReactOS project in that department is the same that many Open Source projects face, in that we don't have money to be able to actually perform proper experiments. We can get volunteers, but these people will most likely be geeks. Geeks are fine, but what a geek finds an appropriate UI and what an average person finds an appropriate UI tend to be very different things. As an example, geeks enjoy having a bunch of tweaks, options, and other toys before them. But, the average user doesn't. Having a bunch of numbers and options before them that they don't understand tends to just turn them off from the software and scare them away.

As for deferring opinions, we should be designing the interface based on hard facts that we can find during these tests, not opinions. How quickly was the user able to perform an action under one interface compared to another? After not using that same interface for several weeks, how easily could that same user remember everything? And even then there are differences in personality that account for differences in how we'll see and use things, along with differences in experience. One user would see it to make more sense for changing the line spacing under the "View" menu, while another may find it more logical to place it under the "Options" menu. As for that, it's not exactly amazingly difficult to simply find a middle ground of what tendencies between people are most common, and work from there the best we can.

There's a lot of controversy over what the word "usability" really means anyway, as it's quite general and cryptic. To some, it means the removal of immediate options given to the user as to not confuse them, to others, it means to increase the speed and efficiency of the tasks performed, and to others still it's a dirty word that means the dumbing down of the program to make it appeal to "n00bz." But overall usability is a combination of a lot of different factors, and for this reason I think it's easier to think of usability in terms of its separate factors. I've never taken any formal training on the subject, but from where I stand, I see them as these:

1. Learnability - How easy is it to figure everything out? Is the GUI command for pasting words the 3rd or 4th command under the "Edit" menu, or is it on the toolbar only as a picture of a roll of flypaper? Make sure that everything is as logical as possible, and that words are almost always clearer than icons... If you want to have a toolbar with quick-access icons on it, make sure the same function is in the menus somewhere easy to find as well, and that there is some easy way to figure out what it does. Despite being more artistic, a picture of a skyscraper is much more difficult to figure out than an upward-pointing arrow...

2. Memorability - After not using the program for a while, how easy is it to remember everything? Remember again that humans remember best by recognition. Your users should be able to say "Hey, I've seen that before somewhere!" and help them relearn how to use program features.

3. Efficiency - How fast are you able to get things done? If you have to click through 20 messages of "Are you sure?" to save your files, something is very, very wrong here... The easiest way to efficiency is to have the user use the mouse as little as possible, without sacrificing the benefits of the other parts of usability that the mouse provides. All the most-used options should be at the top of the menus, for example. Keep the most important things on the top left, with the least important things on the bottom right. Give users the ability to do most things with only the keyboard.

4. Safety - What's the risk of your users messing something up? Is there a single button on the toolbar that they can click that will corrupt their hard disk and make fire and brimstone rain from the heavens?



Remember that most usability improvements improve one part of usability, but hamper other parts. Keyboard shortcuts greatly increase efficiency (Much quicker to open up a new tab in firefox with Ctrl+T than with going to the file menu), but decrease memorability (Whose going to remember Ctrl + Y to bring up the download history unless they use it every day? I certainly don't remember that.) as well as safety (Sometimes I hit R instead of T when I'm trying to open up a new tab to take a break from typing up a long forum post... *cry*). "Are you sure?" messages increase safety, but hamper efficiency, etc.
That was the hand-wavy statement. There's also a practical side to trying implement any such design. We are basically limited to what we can pull off using the built in functionality of the public and internal APIs in Windows. This means that if we want to implement something, it needs to be done with the available functions and interfaces. This limits us to just what kind of widgets that can be done to those that already exist in Windows. Trying to hack in support for new stuff isn't something we want to do, since that risks breaking compatibility if someone actually makes use of that function in ROS and expect it to work in Windows.
I'm perfectly aware of that, and I do believe it's going to be a roadblock, but I have full confidence in ReactOS and I'm certain it's a problem that we can work through, just like every other problem we've worked through.

Haos
Test Team
Posts: 2954
Joined: Thu Mar 22, 2007 5:42 am
Contact:

Re: A Modern Operating System

Post by Haos » Sat Oct 04, 2008 10:27 pm

If you take serious care of our GUI and give it so much needed luv, i doubt anyone would be against it. Mind it that its a mamooth task, and as Z98 already said, almost everyone in ROS Team sux at it. Considering me not being an exception here.

Lone_Rifle
Test Team
Posts: 802
Joined: Thu Apr 03, 2008 2:17 pm
Contact:

Re: A Modern Operating System

Post by Lone_Rifle » Sat Oct 04, 2008 11:57 pm

You may wish to take a look at Avalon, from Microsoft. Google is your friend. this allows the design of an application interface using XML. No doubt somebody out there, ROS-affiliated or otherwise, would try to write an Avalon parser/renderer.

Z98
Release Engineer
Posts: 3379
Joined: Tue May 02, 2006 8:16 pm
Contact:

Re: A Modern Operating System

Post by Z98 » Sun Oct 05, 2008 12:40 am

Uh, Avalon is just the Windows Presentation Foundation, which is part of the .NET framework.

Lone_Rifle
Test Team
Posts: 802
Joined: Thu Apr 03, 2008 2:17 pm
Contact:

Re: A Modern Operating System

Post by Lone_Rifle » Sun Oct 05, 2008 11:47 am

Ah yes. mea culpa. this is what happens when you're trying to recover from a long work week.

Still, the idea of a fully customisable interface is exciting to the point that I completely forgot that this is by and large restricted to .NET.

vicmarcal
Test Team
Posts: 2732
Joined: Mon Jul 07, 2008 12:35 pm

Re: A Modern Operating System

Post by vicmarcal » Sun Oct 05, 2008 2:13 pm

I´m really interested about an Efficence GUI.I have a concept design called "2-Click" (All options just in 2 click)
is there any program to develope GUIs over XP or ROS?(if a GUI works over XP """"should""" work over ROS..hehehe..)
Avalon needs .Net so right now isnt useful ;)
Any other program to develope?
Will .NET be fully compatible with ROS?
I know .Net has copyright so we can package with Ros, but we will develope a .Net replacement?(or does exist any .Net replacement?)
Image

Aape
Posts: 95
Joined: Sat Sep 20, 2008 5:29 am

Re: A Modern Operating System

Post by Aape » Mon Oct 06, 2008 6:23 am

"2-Click" sounds nice, in theory... The problem is practicality issues. You can argue that you already have that sort of functionality in Windows, and GUI standards are something we can only apply to ReactOS core components, so it wouldn't really be a "2-Click" system. There's also the problem of apps with more advanced and complex options. With these components, to make it truly a "2-Click" system, we would have to place a lot of the options right on the surface, which for reasons I've already stated above is not a smart idea. Though you may have had something different in mind from what I'm imagining, I'd love to hear more, as I'm a lover of simplicity.

Black_Fox
Posts: 1584
Joined: Fri Feb 15, 2008 9:44 pm
Location: Czechia

Re: A Modern Operating System

Post by Black_Fox » Mon Oct 06, 2008 4:59 pm

vicmarcal wrote:I know .Net has copyright so we cant package with Ros, but we will develope a .Net replacement?(or does exist any .Net replacement?)
There are some opensource efforts: http://www.mono-project.com/Main_Page

GoBusto
Posts: 579
Joined: Fri Jan 25, 2008 11:13 am
Location: UK
Contact:

Re: A Modern Operating System

Post by GoBusto » Mon Oct 06, 2008 7:31 pm

Black_Fox wrote:
vicmarcal wrote:I know .Net has copyright so we cant package with Ros, but we will develope a .Net replacement?(or does exist any .Net replacement?)
There are some opensource efforts: http://www.mono-project.com/Main_Page
And this: http://www.gnu.org/software/dotgnu/

vicmarcal
Test Team
Posts: 2732
Joined: Mon Jul 07, 2008 12:35 pm

Re: A Modern Operating System

Post by vicmarcal » Tue Oct 07, 2008 12:51 pm

Uhmm seems nice ;)...i will try to install in reactos...lets see ;)
Image

Aape
Posts: 95
Joined: Sat Sep 20, 2008 5:29 am

Re: A Modern Operating System

Post by Aape » Thu Oct 09, 2008 12:42 am

I can't believe I forgot all about it!

http://ccc543.deviantart.com/art/ReactO ... p-98893686

I made this mockup a while ago, put it on DeviantArt and forgot to ever mention it here. The window borders leave much to be desired, but it's otherwise what I had in mind within my own little fantasy realm.

nomad_3747
Posts: 1
Joined: Sat Sep 06, 2008 7:43 am

Re: A Modern Operating System

Post by nomad_3747 » Sun Oct 12, 2008 3:50 pm

Wow, that's a very nice mock-up. I wouldn't mind having that UI for ReactOS.

kevinski
Posts: 84
Joined: Wed Jun 04, 2008 7:23 pm

Re: A Modern Operating System

Post by kevinski » Fri Oct 24, 2008 5:04 am

The two-click system sounds nice, although I doubt that you'd need to have EVERY SINGLE OPTION available as a two-click deal. Obviously, there are a lot of options that the average user doesn't even touch in most applications.

To me, a modern operating system (or the operating system of the future) could vary depending on who is using it. Really, I feel that any operating system should be tailored to the people using it, so it'd make sense that you could put anything wherever you wanted to. For me, an ideal "modern" operating system would incorporate all sorts of built-in social networking functionality right out of the box. Example? Well, how about a simple video editor that allows anyone to click a button to have their final product uploaded to YouTube? (I realize that there are apps out there that do this already, but I was merely giving an example.)

Also, I'd prefer that a record of installed applications and their respective settings be stored remotely, allowing for them to be easily re-installed to my liking. Really, a modern operating system, to me, needs far more Web integration.
[ Web | kevinski.com ] [ Wii | 7030 8283 2535 8378 ]

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 1 guest