ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Main Area and Open Discussion > General Software Discussion

What would your ideal Operating System be like?

<< < (6/12) > >>

mouser:
OSX, or rather apple, is big on enforcing UI standards, which as you say is one of the things i am in favor of.  They also as you say have a drag+drop type installation.

I think there are some very nice things about OSX.

But on the other hand, there are some things about apple and there approach that i deeply dislike.  First of all, i really do not like all the focus on visuals.  So I guesst one thing you could say is that i do want a standardized UI but not the mac/osx one.

The other thing that apple does that i very much dislike is that in their attempt to make everything "easy" and "simple", they hide everything that's going on from the user.  I remember a friend who was telling me how great the apple networking was.. then there was a problem connecting, and her mac did not want to say anything about what was wrong or how to fix it.  All the advanced options, errors, and diagnostics were all hidden because that would make things seem to complex.  I am not a fan of all this "automagic" hidden stuff that usually works great but is deadly when it fails.

40hz:
I guess this is going to be short because I'd want the UI totally divorced from the underlying OS. I don't think anything in userland should be built in to the underlying OS. That's what desktop managers are for.

All I'd want in the ideal OS is are these five things:

1. A 128-bit address space (just to get it over with once and for all)

2. Bulletproof memory protection (with built-in garbage collection)

3. All hardware fully abstracted, with all access strictly controlled through a well-documented I/O layer. No direct kernal calls permitted.

4. All applications install in their own unique single directory. One application per directory. Each new version installs to a new directory. It would also be nice to establish a formal version numbering system. Something like nn.ss.pppp where nn is version; ss is service pack or minor version; and pppp is patch level. (Ex: Wumpus V01.02.0003 = version 1, revision 2, patch level 3)

5. Complete and accurate documentation of all system services, calls, etc. (I can work/live with anything as long as it's fully documented) Access to the source code would be a definite plus.

4wd:
4. All applications install in their own unique single directory. One application per directory. Each new version installs to a new directory. It would also be nice to establish a formal version numbering system. Something like nn.ss.pppp where nn is version; ss is service pack or minor version; and pppp is patch level. (Ex: Wumpus V01.02.0003 = version 1, revision 2, patch level 3)-40hz (August 17, 2008, 05:29 PM)
--- End quote ---

AFAIAC, version, revision and patch level are completely arbitrary conventions - when does a programmer decide it's no longer a patch but a revision, no longer a revision but a major version change, etc.
I've seen programs that jump version numbers because programmers decided the patch number was getting too high, (don't ask, long time ago).

My optimum version numbering system would be a lot simpler, (although it results in a longer number), and requires no input from the programmer, (the compiler does it automatically):

YYYYMMDDHHMMSS - Universal Time Format based on GMT, no allowance for time zone.  Easily read by anyone and the added benefit of knowing exactly when it was compiled - assuming the clock is set right.
But even if it isn't, subsequent versions are always a steadily increasing number, (unless they're written by a temporal agnostic), and it directly relates to other things on the computer, eg. from a programmers perspective, in what backup they're likely to find what version if they want to go back and look at something.

I'm sure that the programmers among you will tell me it's complete rubbish but from my perspective as a user, (and extremely far between and minor writer of extremely small and very specific, purpose orientated C programs for my own use), it makes more sense.

WARNING: Shades read no further at the risk of a Cloanto attack!

Either that or go back to the simpler but easily understandable Amiga version system:

$VER: Programname version.revision (dd.m.yy) author

Which was to appear in all programs, scripts, etc, and was readable either by using the CLI command 'version' or by simply looking at the program in an editor, (hex for binary, text for script, etc).

PS:
BTW Congrats on the 100th post!-Darwin
--- End quote ---

Ta Darwin.  I've posted more on DC than any other forum - spend way too much time reading the other ones :)

40hz:
AFAIAC, version, revision and patch level are completely arbitrary conventions - when does a programmer decide it's no longer a patch but a revision, no longer a revision but a major version change, etc.
I've seen programs that jump version numbers because programmers decided the patch number was getting too high, (don't ask, long time ago).

My optimum version numbering system would be a lot simpler, (although it results in a longer number), and requires no input from the programmer, (the compiler does it automatically):
-4wd (August 17, 2008, 07:00 PM)
--- End quote ---

Good points.  :)

But my suggestion has a purely pragmatic goal.

I don't really care how the programmer decides what version or patch level he/she is on. Nor do I care how they want to number, jump, bump, or skip their releases. It's their app, so it's only fair to let them make their own determination.

All I'm looking for is a simple version topology that allows me (and an update utility) to quickly and accurately determine: (a) what version of an app I currently have; and, (b) what the current released version is.

This code doesn't even need to be displayed or used in marketing the product. Which is something to consider, since version numbers are all the rage in magazine and web reviews. It can be buried in a properties tag for all I care, so long as it's there. That way I can stop worrying about "Wumpus Elite Pro Edition Gold 2008."  If I know I have Wumpus 01.00.0000, and Wumpus 02.10.3241 is out, then I know I have a significantly older version and may want to investigate getting an upgrade. It's also a good way to stay on top of where you stand with security patches.

I'm not trying to save the world.or even have it make sense. I'm just trying to simplify the things that could be simplified. ;D

nontroppo:
On OS X:
1) no appearance customization /skinning. enforce a completely standardized user interface.  I think predictability of user interface and good guidelines for coders is important.

--- End quote ---

Check with knobs on ;)

2) no different distributions of the OS.  i recognize how cool it is that there are so many linux distributions but i just tend to prefer a more standardized controlled predictable approach to the core OS (im not saying anything about application "packs").
--- End quote ---

Check. No home, ultimate or any other versions.

3) no included applications in the OS distribution, other than the most bare minimum (basic text editor maybe, and control panel type utilities).
--- End quote ---

Fail. Though Leopard doesn't contain iLife (only new Macs do), it does come with mail, iChat IIRC.

4) minimal user interface fancy effects -- just a personal choice that i would rather keep the visuals to a minimum.
--- End quote ---
But on the other hand, there are some things about apple and there approach that i deeply dislike.  First of all, i really do not like all the focus on visuals.  So I guess one thing you could say is that i do want a standardized UI but not the mac/osx one.
--- End quote ---

You would say fail, but I say Check. Perhaps I'm used to OS X now, but the visual elements almost exclusively are utilitarian. They serve a purpose to solidify a metaphor, and no more. The UI is, though elegantly drawn, pretty drab (graphite), it remains out of my way and doesn't flash itself at me (as Vista does, OS X is predominantly grey). I appreciate that someone has thought about small details. I also just want to comment, as I was making my hackintosh, I went through two weeks without a graphics driver. No accelerated graphics at all, just software rendering. I expected Leopard to crawl without OpenGL, Quartz acceleration etc. I was amazed to find no noticeable difference. I couldn't measure any significant CPU hit (and I spent a while trying), everything flows. Whatever they've done, it is *really* optimised at the core. I certainly can't say the same about trying Linux without drivers (the fans whir just to show a menu!!!), and Windows GDI is horribly slow (or just badly designed) no matter what (Aqua performs faster without drivers than Windows does with them!). I really doubt anyone could run Aero or Compiz without drivers, so I conclude Aqua is amazingly optimised.

5) a focus on clean file system -- all of the current major OS make me crazy with how messy and chaotic their file systems are.
--- End quote ---

I say check, but I don't know *how* clean you want it. But as I wish below, my ideal file system loses hard folder hierarchies anyway...

6) a focus on providing a clean object oriented API for programs.  The entire focus of the operating system should be in providing a clean efficient interface to coders.
--- End quote ---

Check

7) a focus on eliminating all hidden system settings.. do not use a registry system.  software should be install-less, and installing a piece of software should be a simple matter of copying files to a fixed location.  uninstallation would be just a matter of deleting the files.
--- End quote ---

Check

The other thing that apple does that i very much dislike is that in their attempt to make everything "easy" and "simple", they hide everything that's going on from the user.  I remember a friend who was telling me how great the apple networking was.. then there was a problem connecting, and her mac did not want to say anything about what was wrong or how to fix it.
--- End quote ---

Hm, the advanced network preferences are right there in the "control panel":
What would your ideal Operating System be like?
I don't find the core OS dumbed down, it is as quick to drill down to advanced settings, and is certainly more well designed than the windows networking prefs. What *is* dumbed down are several of the Apple applications like iPhoto which annoy the hell out of me.

Now don't get me wrong, as I've used OS X this past year and a half, I gone through dislike, slow warming, fascination, amazement, distrust. Some things annoy the hell out of me. I don't trust Apple any more than any other big fat Corporation. But technically, OS X is closer to my ideal OS than anything else I use. Having my hackintosh quad booted with Vista, Ubuntu, XP and Leopard; I'm clear on what rock my boat most.

---------------------------------------------------
My Ideals:

1 ) Pervasive metadata — the OS should provide not only solid metadata handling per file, but support *extensible* metadata mechanisms for any file. Tagging, file usage and history and discoverable information has to be a core OS feature, not something tacked on by 3rd-parties. The OS should provide a core search facility built robustly on this metadata, again not some proprietary 3rd-party. And this data should be accessible to the cloud through design.

2 ) As a consequence, folder hierarchies should lose predominance and smart folders should pervade. No OS is where I want it to be (r.e. metadata and smart folders) on this.

3 ) Delta versioned file system. Again, this should be core OS territory (even as much as I love Filehamster!), configurable per file. The interface should allow simple searching for a file through time, and apps should allow version comparisons easily (i.e. the OS API should enforce this). Time Machine is the closest so far (great UI), but I want underlying filesystem support which HFS+ doesn't have.

4 ) Integration! The OS should enforce a consistent "automation"  interface for both apps and users to integrate. Apps should offer services to other apps (locally or remotely through the same system) through an enforced universal API. This allows data to flow and be transformed across applications seamlessly (I *hate* data islands!). OS X is again closest, Applescript+Automator+Services, though I've been impressed by KDE 4. But I want much more.

5) Core support for the coming GPU revolution. I do a bunch of DV editing, and harnessing the GPU as a general purpose device would rock. I don't want a proprietary 3rd-party to do this, I want it pervasive and universally offered by the OS. Better support from multiple CPUs goes without saying, but it is depressing to see high-core machines having cores sitting idle.

6 ) Opensource kernel. I want the core of my OS open, primarily to stop stupid DRM madness that crept into Vista.

7 ) Scales to the hardware, from low-end to high-end well.

8 ) Hardware agnostic. Yes, I'm looking at you OS X! Though I don't want Apple to get mired in the driver hell of Windows and Linux, I want to be able to run it where I want. Apple should keep making drivers only for its hardware, and let the hackers do the rest as has sustained Linux for many years.

9 ) Mouse gestures pervasive and universal. They are essential for me. I currently use XGestures which is excellent, but this is fundamental enough that I want the OS to do it. Everyone is jumping on multi-touch, but I want it configurable and extensible, not hard-wired (as OS X does now).

10) Better voice control. Again, I don't want a 3rd-party. Voice is a valid interface, has some clear advantages to either mouse or keyboard. Currently clunky, but this is technically achievable. Current OS implementations are still too quirky. Eye tracking is another fruitful future avenue, as is possibly EEG brainwave control.

I'm sure there are many more. Some may be aghast at the notion of building in voice control etc, and I know the balance of what is core and optional is personal. But I do think the OS should handle the core interfaces for human interaction.  8)                       

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version