Log in

No account? Create an account

t3knomanser's Fustian Deposits

Why Apple pounds Microsoft in quality

How Random Babbling Becomes Corporate Policy

run the fuck away

Mad science gone horribly, horribly wrong(or right).

Why Apple pounds Microsoft in quality

Previous Entry Share Next Entry
run the fuck away
OSX is worlds better than Windows. This is a statement that requires some qualification. OSX is better in terms of usability, features, security and performance. It's also far more attractive.

Windows wins on permeation, mostly caused by the open hardware platform (which also causes many of the bugs in Windows).

Still, there are a few things that Microsoft could learn from Apple that wouldn't require going to a closed box platform.

To start, you don't have to do all the work. Microsoft is heavily invested in a completely closed source solution- OSX is based off of the BSD kernel, and hence is open source. There are Intel friendly unix distros built off of Darwin. Apple benefits from the work of the open source community, giving them a leg up, and the open source community gets access to the modifications Apple does to the kernel. (Although, some in the open source community feel that Apple hasn't been quite as generous as they've been, that's another discussion). Now, from a public relations standpoint, Microsoft can't suddenly incorporate open source into their applications- but from a business standpoint, it'd probably work out great. Having somebody else's base saves you a bunch of the leg work- having a base that's been peer reviewed and can be trusted will bring geeks onto your side.

There's more to that though- Apple has released three major versions of OSX, Jaguar, Panther, and Tiger, while Windows users are still waiting on Vista. Part of the reason Apple's turnaround time is so good isn't that they're cutting corners- it's the open source kernel. The low level plumbing has been done, which leaves Apple room to focus on real upgrades.

The second big lesson Microsoft could learn from Apple is this one- backwards compatibility isn't needed forever. The programming interfaces for Windows, known collectively as the Windows API, are an absolute nightmare. This isn't because Microsoft's programmers are sloppy, per se. The problem is this- some function call was put into Windows NT. With the design standards of the time, that was a good thing- but as we learned more about software engineering, it became a bad choice. Thing is, Microsoft can't get rid of it- there are applications that use it. So Microsoft puts in a new version according to modern principles, but keeps the old version lying around too- leading to a confusing mess of partially deprecated code that allows even the most ancient of DOS applications to still run on modern operating systems.

Apple takes a different tack- they regularly rebuild the OS and break compatibility. This might infuriate developers, but in the end, it's good for them. Most recently, there was the switch to OSX- Apple moved to a variety of platform completely different than anything that went before. The only way to run "Classic" applications was using an emulator. This means OSX has no legacy code that's left in and could suddenly turn out to be the next WMF zero-day exploit. The switch to Intel processors carries some of those issues, but since the OS remains the same, it's only a matter of recompiling and making minor revisions.

Apple puts users first. One gripe I always hear about the Mac is that "one button mouse"- people hate it. Well, I like multibutton mice, but I agree with Apple's decision. Why? Simple- sitting down at a computer for the first time, would you think that a "context menu" makes any sense? How would you know what to right click on? By making a one button mouse (right clicks are accomplished with a key combination) Apple forces developers to not rely on context menus for navigation and control. The end result is a simpler user interface where navigation is clearly defined- if somewhat slower- but power users can still use a two-button mouse and get around just fine- and most do.

That attitude comes through everywhere in Apple's design. From having an application based task-switcher versus a window based one (on a Mac, CMD+Tab cycles through applications, CMD+` cycles through windows in a single application, in Windows, ALT+TAB cycles through all open windows in all applications), to having powerful system administration tools that don't require any experience but give a high degree of control (the Windows firewall is a one-click option- either on or off. In OSX, the firewall pane allows you to turn on and off certain services- and it's just as easy to work with).

Of course, that, in no way, is an original observation. Everyone knows that Macs have a better UI- always has been, always will be.

But here's another one that most people probably don't think about- OSX has a decent command line. The Windows DOS box is a retard in the command line world. Designed originally for simplicity (DOS was meant to be a poor man's UNIX), DOS is an emasculated CLI. In terms of features like command completion, history, and the variety of command line tools available, Windows has nothing on any *nix variant, including OSX. In 1985, that was fine- GUIs were still rough, and much work needed command line interaction. A simple, even if poor, command line was a good thing. In the modern world however, only advanced users ever really get down with the command line- which means we need a CLI that works for those advanced users. DOS ain't it. Standard in most *nix environments is BASH (the Bourne Again Shell), which is more flexible and more powerful than cmd.exe's wildest fantasies.

I don't mean this to sound like the total macophile article it sounds like. The thing is, Apple's OS is superior to Windows in some very quantitative ways. Windows wins out in others- there is an advantage to having an open hardware platform, for example. Because of market penetration, the ecology of software for Windows is far more diverse (although the quality... it's ironic that the OSX version of Internet Explorer, now deceased, out performed the Windows version). But there are some lessons here that Windows could benefit from.

Hell, even if they started using a BASH like shell, that'd be a start.
  • "Finally, here's a big one- every major release of a Windows operating system has required"

    I think you forgot to type up that last paragraph, there. Bit of a bummer, if it really is 'the big one'...
  • Let's just talk about Apples COMPLETE lack of detailed documentation or flexibility. Or perhaps thier propriatary approach to EVERYTHING. (Software AND hardware). How about thier dearth of anything resembling proper server software?

    They still have a long way to go. Windows and Linux are much more viable in terms of servers. For the home user, without much in the way of needs, it's fine. But the old issue still remains. More software is made for Windows than Mac.

    • The documentation I've worked with on the Mac was fantastic- but I think you're speaking from server experience. I've never worked with the Mac as a server, aside from as a simple web server. In terms of developer documentation, what's available for the Mac is worlds beyond what Windows' has got.

      In terms of proprietary hardware- that's what Apple sells. Hardware- they aren't a software company. Which is part of the reason I avoided discussing Apple hardware- there's no comparison, and in fact, it gives Apple an unfair advantage in terms of stability- something else I didn't discuss. In terms of proprietary software- Linux certainly has an advantage, but Windows does not.

      And that last issue isn't completely true. About 75% of the Linux based software I've tried runs on the Mac- though it might not be that great for the average mac user. With the switch to Intel, WINE becomes a viable option, or more likely, one of the more polished proprietary versions, like Cedega. WINE is kinda crap, overall.

      But I admitted that Windows has more software.

      The key points still stand:
      Windows would be better if Microsoft wasn't so vehemently open source.
      Windows would be better if it were more user centric.
      Windows would be better if they weren't afraid of breaking compatiblity.
      Windows would be better if it had a decent command line.

    • Do you use the MacOSX Server variant, or are you (like me) using your perfectly good BSD-based MacOSX standard variant as a server anyway, as BSD was intended to be used?

      I'm not surprised the standard desktop OS' built-in server functionality isn't well documented - Apple want us to buy the server variant, at greater cost.
      • We've done both. Most of the documentation and assistance we needed came from German sites. Apple was worthless.

        • To be fair, I'm not really sure Apple has much of a responsibility to document the BSD components of their operating system. They should provide pointers to that documentation ideally, and in situations where there's a signifigant change, like with launchd, they should document that. Which, in that case, they did.

          For developer docs, Apple is thorough, if cryptic. And not really cryptic per se, they cover everything in the APIs and define what they do, etc. but they're not a great tool to learn the API from.
  • Well, I think Microsoft is trying to gain some of OSX's open-source benefits with their Error Reporting system. Since XP, whenever a program crashes in Windows, a dialogue box asks you if you want to report the problem to Microsoft. The report is automated, so you only have to click yes or no and be done with it.
Powered by LiveJournal.com