Agree re: Amiga & BeOS
Hey, I actually have an original PowerPC dual processor BeBox - complete with Geek port... That was the hardware made be Be Inc. before they decided to go software only. Somebody gave it to me. I never was able to get it to boot up properly, but the hardware appears to function correctly.
Those were the days. Loved the Amiga of course - it was way ahead of it's time. The OS was easily ten years ahead of anything Microsoft did. If you compared platforms in the Amiga days you would wonder how it was that PCs survived at all (IBM's sales force, that's how).
BeOS was cool because (like OS X) they took the good bits from Unix and scrapped the crap (X windows). They had a very decent file system too as I recall. Specially compared with the crap of MS Windows which persists to this day - showing how far behind MS is... (short file names? drive letters? - still going for DOS compatibilty are they?)
Microsoft needs to stop dragging their feet and actually do that innovation that they pretend they are good at. Ditch drive letters. Provide a way to assign a drive letter to any folder as a work around for near-term backward compatibility. Ditch short file names - they were a tremendously stupid idea. Ditch COM - it was supposed to solve DLL hell, but it made it worse and then they went with all these "assemblies" and side-by-side hacks and application manifest torture. Dropping all that BS and going back to plain DLLs in the application's folder would make things so much better. They just have to not allow applications to downgrade system DLLs.
I agree that Apple got it right with Application Bundles - so simple and it works for 99.9% of applications out there. Anything else uses a standard package installer.
MS screwed up royally with their installer technology (MSI) - they had a cool concept that just has so many side effects and obscure rules that it just plain doesn't work well at all and produces the slowest install/uninstall experience I could ever imagine.
Hey, let's turn this thread around and make it a little more positive.. what would you need for an OS to NOT suck?
MY perfect OS would:
-have a decent command line, though it would never be required by any non-developer.
- run ZFS
as the filesystem. It may not be the fastest, but it is so much better than anything else I have ever seen in terms of properly dealing with backups, compression, resiliency, adding storage, mounting, formating, snapshoting, etc.
- have a decent windowing system (not X) that knew how to use a modern graphics card for more than cute effects. Windows 7 is close. Somewhere between OS X and Windows 7 is probably the sweet spot.
- Have decent APIs and frameworks and not drop them and start something completely different every 2 years like Microsoft. Again Apple
is clearly ahead here. All of the "Core" APIs come to mind.
- Support for Open Standards like: OpenGL, OpenCL, Java. Unlike MS which seems to purposely not follow open standards (e.g. DirectX, Direct3D) because they can use their monoply tolock people in that way - or they wait till everyone already has settled on something and them come up with something different and call it open (e.g. MAPI)
- On my ideal OS, networking wouldn't suck amd VPNs would be trivial to setup and get working.
- simple and decent security that doesn't try to solve every concievably problem within the realm of possible security issues. Sometimes special needs (military) will need some of their own implementations on top of what the OS provides - making everything rediculously complex for the general population for a few niche markets has screwed all sorts of security things. (Look at how rediculously complex it it is to get a secure web service with Metro/WSIT.)
-All software would need to be signed. The OS vendor could be a signing authority and give out keys for next to nothing - maybe jsut enough to cover the cost of verifying the identities of the devs that ask for keys, but not the ridiculous prices that current signing authorities are charging.
Therefore viruses and mal-ware would be more difficult to create without being caught, and keys could be blacklisted to stop malware/viruses in their tracks.
-A requirement of above would mean that the existing hardware mechanism would be used to prevent the execution of data - you can only RUN stuff from RAM that was loaded with data from a verified source of instruction codes; an application or a library. A mechanism for JIT compilation would be there, the JIT compiler would of course need to be signed, but hopeful something could be done to prevent buffer overruns leading to code execution and complete take overs of the machine - the #1 thing that MS security updates patch on a weekly basis.
-All applications would be scriptable and able to trade data easily via a mechanism like AREXX
of the Amiga days, or Apple Script (but less sucky)
-keyboard focus would never be stolen by a pop-up while I was typing (Windows sucks for this. Again Mac got it right.)
-I would be able to change ALL user-configurable settings via a GUI. (Linux = fail. An obscure text file in an obscure folder is not a UI.)
-I would be able to discover and run ALL applications from the main UI of the OS without resorting to a command line. (Linux you fail bigtime here)
-The OS would include support of basic technolgies out of the box (browser, email - it was stupid to go after MS because they bundled IE, they don't so many things wrong it was a shame that bundling a browser was a focus when that was obviously what EVERY OS vendor should do)
-Simple access restrictions would be built in. The kind that real people use - like OS X does for filtering iChat, email, web pages, ability to isntall programs, etc - for your kids accounts.
-A single Software Update mechanism would cover ALL installed software. No need for everyone to re-invent the wheel with update checks built in to every program or tons of updating check processes (e.g. Java, apple, MS, etc) launching on startup only to sit and do nothing.
-Rebooting would only be required to reset hardware.
-When a file was in use the OS would tell you what app was using it, not jsut that you can't rename or delete it. I think Snow Leopard has this. MS could do it, but doesn't. When MS tries to do it like they do when installing/uninstalling via MSI, they fail and tell you things that aren't true.
There are some problems that need to be solved outside of the OS that make the user experience with some OS's suck.. like not being able to find drivers. For devices like printers for example there should only be about three or four printer drivers IN THE WORLD - because lets face it, printers all work the same - use some damn firmware people and support a few common standards for the type of printing device you are making (plotter, vector vs. raster based) - of course the OS can suppy the vector to raster translation layer if the printer device is not vector based.