Switching to Windows at work (geekery, job stuff, rant)
So, because there's no more Linux support, we have to move to Windows for our primary dev environment, and since Windows and OSX don't really get along that well in terms of managing file permissions and so on, I decided it'd be easier to just reinstall Windows on the laptop and use that as my only environment.
I was never that big a fan of Windows, but starting today I absolutely loathe it. Anyone who thinks that Windows and Macintosh are "more or less the same" can bite me.
One of the common complaints about MacOS vs. Windows is that Windows lets you resize the window from every side, while MacOS only lets you use the single lower-right drag handle. Well, I'm sorry, but that one single drag handle is actually EASY TO USE, while the Windows borders are so skinny that you have to be really fiddly with your mouse in order to actually grab it. For someone with a severe RSI, that is quite literally painful.
People complain about how the Mac is very mouse-oriented while Windows lets you do more stuff from the keyboard. I actually hardly have to touch the mouse in MacOS, and the keyboard actions are very efficient; cmd-Tab to switch entire applications - not individual windows, cmd-space to bring up Spotlight which lets you find pretty much any document you want by just typing a few letters of the filename or any of the content inside it, and application menu-item accelerator keys are usually straightforward and easy to remember. In Windows they're not even consistent. Some apps let you do ^C/^V for copy/paste, some seem to require you to use the older ctrl/shift-insert keys (which aren't very convenient on many modern keyboards), and some apps don't even seem to support reasonable clipboard stuff at all.
MacOS might not be completely perfect in automatically configuring things, but at least it's pretty good. Your mouse is recognized and turns on right away (you don't have to wait for login to finish and then wait another minute for it to decide to maybe let you know that, oh yeah, the mouse was found), Wi-Fi networks are VERY easy to connect to (unlike on Windows where you often have three different competing 'Wi-Fi connection wizards' which all step on each others' toes, and even when they don't, figuring out how to get it to even accept your goddamn WPA key is a bit of a challenge), cellphones sync over bluetooth without much fuss at all (pair the phone, start up iSync, the entire sync takes just a few seconds, compared to Windows where you pair the phone, bring up your vendor-specific sync app, tell it you have a phone, the app insists on redoing the pairing, eventually it finds the phone after about 10 tries, then it MIGHT sync or it MIGHT NOT, and when it does sync it opens about 20 different sessions because That's The Way Outlook Does Things).
And even then, it's just the first sync after powering on your system that works. The next sync fails because the phone is still connected and the vendor-provided sync tool doesn't know how to deal with that. (And unlike on OSX, where sync is indicated by a little tiny spinning arrow in the menu extra area, the damn Windows sync tool decides it's necessary to put up - of course - a big ugly window in the middle of the screen to let me know exactly what's going on!) Also unlike on OSX, there doesn't seem to be any way to explicitly disconnect from the device. Also, bringing up the "bluetooth settings" window also brings up the "add new connection" wizard. (Even though there's a separate menu item for bringing up "add new connection." STUPID.)
Of course, don't even get me started on how much of a piece of shit Outlook is compared to Mail.app/iCal/Addressbook. Not to mention that Outlook is so stupidly locked-down now that other apps can't even make use of the stuff for fear of viruses or other malware (good luck making Pidgin use your address book for contact information, if Outlook's address book even supports IM addresses anyway).
Every app wants to bring up its own stupid window in the center of the screen on top of everything else. It wants to do this when I'm in the middle of something else. On the other hand, when there's a notification window that I WANT to see, of course it doesn't show up at all - it starts up buried under all the other windows on the screen! Under OSX, there's no issue with windows needing to mess with your user experience because all they have to do is bounce the dock icon and that notifies you gently without interrupting what you're doing while also without getting lost.
The few apps which do properly use taskbar notifications on Windows are still freaking annoying. Passive notifications (like a new IM) show up on OSX like a little red dot on your dock, visible and easy to see but not distracting. On Windows, the taskbar button - which is big - flashes, repeatedly, and annoyingly. Outlook's notifications are less annoying (showing a transitory notification window and then changing the systray icon) but they're also easy to overlook, and since the systray constantly shuffles around and rearranges everything you don't even have a glanceable interface since you have to actually actively look to see if there's an envelope instead of the little stopwatch or whatever the hell it is that Outlook's icon is supposed to be.
On the topic of the systray, god DAMN is it loaded up with a bunch of useless icons, while simultaneously managing to not have a single one of the icons I actually care about. Oh, neither of the ethernet ports are active? YOU DON'T SAY. And I have two icons for my wireless connection, one telling me I'm connected (in a not very clear way) and one telling me... that it's not managing my wireless connection. Great! Oh and then another one tells me that I have a phone configured for use with it! And of course each of these little tiny icons with their little tiny fiddly click targets (many of which are activated in inconsistent ways) are the only way of accessing a bunch of stuff. Okay, conceptually it's no different from the Menu Extras area on OSX, but the implementation is very different (menu extras don't just jump around, the icons are clear and concise and meaningful without taking a lot of space, they're activated consistently, they tell you useful information, and there's generally more than one way to access certain things, not to mention that the Menu Extras are mostly pretty consistent about how you use them).
Per-window vs. screen-level menu bars are mostly a matter of taste, except that screen-level menu bars are also much more consistent and clear and well-organized (because they refer to the app, not the window). It also seems that every single freaking app on Windows has its own stupid theming engine, and so all of their menu bars behave in fundamentally different ways (with regard not only to look and feel, but where to find them, how items activate, how to deal with navigating deeply-nested menus, etc.)
While Exposé is fairly overrated, one mode I do use a lot is "Reveal desktop." There is an equivalent function in Windows (Win-D), but Exposé is actually easy to use and allows you to do complex drag operations between the windows as they move around and so on, whereas revealing the desktop just makes everything disappear, and if you happen to do something while it's revealed that brings up a window or two, well, the next Win-D press will just hide those windows instead of restoring your previous state.
There are two benefits to switching to Windows: the work-related toolchain installation for Windows is much slicker than the equivalent stuff for Linux, and I can finally play Team Fortress 2 for the PC. Neither of those have anything to do with the OS.
I hate this operating system.
Comments
Just because you're used to something doesn't mean it's better.
Honestly I don't really notice when apps steal focus because by now I'm so used to just alt-tabbing between whatever I'm using, the effort it takes to alt-tab back is negligible.
When I switch from Mac to Windows I have to completely unlearn all the things that make me effective and fast at using the system, and there's no equivalents on Windows to fill in the gap. It's not just a matter of learning a different way of doing the same things, it's a matter of the things I was using being GONE.
You *can* interact with a Mac in the exact same retarded way that you interact with Windows, and yes, some things are merely different (like the keyboard commands for rapidly moving through text), but the other way around isn't true. The Mac UI experience is a superset of the Windows experience, and where things are equivalent, the Mac way isn't just "different" but it's better. Again, I mention the issue of window resize handles; on Windows it's just plain uncomfortable to do if you have RSI, because you have to be so fiddly and precise with the mouse. (Simply running everything maximized is not a reasonable substitute for having the ability to easily manipulate window sizes and positions.)
If an app doesn't have one, then the person who developed it is to blame, not Windows. The vast majority of them seem to have one, though.
If that's not good enough, you can change the window border size by going into the display properties, clicking the "appearance" tab, clicking the window border and changing the size value. You can also change the color so it stands out more.
Using default settings for Explorer, there. Who do I blame for that application?
I can't believe that's default. I guess I'm just so used to fixing that immediately on a fresh install of Windows that I forgot about it.
So because Windows give application developers the option to change the appearance of the application's windows, it's Microsoft's fault when developers do so in a stupid way?
To use a strained metaphor, it's not the auto manufacturers' fault that other people can't drive very well, but that doesn't make driving any more pleasant.
If you blame Microsoft for that, the blame would be for letting third-party vendors get away with too much crap, and that's something (if you read Raymond Chen) they are incrementally getting better about.
The rest...yeah, well, Windows sucks.
My favorite bit about the notification icons is the way on my box it shows me four network connection icons, plus various other crap that I don't want there, yet likes to refuse to show the battery or volume control icons, the two I actually need.
Also, check your power management settings. Mine was set to alert me to "low battery" at 10% and to automatically hibernate at 10%, so I'd get the warning literally two seconds before hibernating.
Vladinator: When our Windows needs were less significant I was running Windows under VMWare on my MacBook for the rare Windows needs, but that's not a solution to any of these problems. You still need to put up with the crappy Windows UI and you still don't have a clean means of running a Mac-based text editor on a Windows-managed file repository that keeps its file permissions intact (and having MacOS manage the file repository which it exposes via the virtual network share is annoyingly slow and doesn't work very well with a lot of the toolchain due to path mapping issues).
Plus, there's issues with Windows needing to be directly on the network, and I was never able to get VMWare's bridged (as opposed to NAT) mode working very well.
ucblockhead: Did you ever get Thunderbird syncing with your phone? Then again, I guess phone sync is a lot less necessary for me now than it used to be (it's not like we really do a lot of fiddly calendaring) so maybe that's not so necessary anymore anyway.
I manually manage my calender with Google Calendar.
Anyway, what I've decided to do is to just try using VMWare on my MacBook (with all the actual files managed on the Mac side), and putting the Vaio into storage. I think that overall that setup will be the least irritating.
VMWare != Parallels. Have you ever looked at Parallels? I have a Mac developer (one of the smartest guys I know in fact) who uses it on his mac, and yes, we're a perforce shop also... He's written some amazing stuff for perforce in fact.
He's also a musician, which I just realized is kinda strange. Hmmm. Must Ask Bruce about that in the morning. Having met both of you, I know you're not the same person, but still.
Virtualbox is a really good alternative to VMWare, and it's free (as in open source). Not sure if it's available for OS X, but since that's just BSD under the hood, it may work.
Anyway, I spent all day doing my thing under VMWare and it definitely works out really nicely, now that I've dealt with all the fiddly toolchain problems (which would have been a problem no matter how I dealt with Windows, although one of them was very specific to using a virtualization setup).
re: resizing windows... Here's how I see it. Let's say you have a 2D square object in front of you. This object is dynamic and can be resized with your hands. How would you resize it? When you pick the object up, your inclination is to try to stretch it out with two hands from any two points on the edge of the object. That's intuitive.
The fact that Windows lets you resize everything from all sides of any window is intuitive, just like resizing this object I just described. OS X limits you to one corner, which although might become an easy and simple behavior, it often costs me time when I have a window that's already in the lower right hand corner and I have to move the window just to resize it. How is that better (except for RSI, which is a good point)?
re: cmd-tab vs. alt-tab... I am a web designer, I work with mutliple windows in multiple browsers and apps. If I'm having to switch between them in OS X, I can't really depend on cmd-tab because often I have several windows open in each app group and often I have to go to a different window in the app group when I cmd-tab back to it. In Windows, all I have to do is remember the amount of alt-tab strokes and I get wherever I want quickly.
Expose is, indeed, overrated but easier to switch windows in OS X. However, why when I use F9 (or now F3) and I look at all my windows open in OS X, why do these windows not have labels describing each window? As I said before, I often have several windows open for editing (CSS Edit, for instance) and I can't figure out which CSS file is which when Expose windows are so small! I lose time and efficiency in the process!
re: Spotlight... Windows desktop or X1 seem to be the closest equivalent. Windows desktop is as fast as Spotlight imo.
re: window focus... To switch from window to window in OS X, I have to actually focus on the window to interact with it most of the time. Why? In Windows, I can work on background windows before I even focus on them. The focus behavior in OS X almost always requires an extra click in order to do anything. Is there a good reason for this? This is my number one complaint about the OS X UI.
I completely agree about software troubles in Windows, how stupid networking is and mobile syncing being pretty atrocious. I don't think the Windows networking software works well at all, but if Windows networking DID work better, I don't see that the software design or GUI to be bad at all. It's just the functionality of the software is flawed and it doesn't work as well as OS X.
Maximizing windows in OS X is inconsistent, Home/End keys often function differently from program to program, it takes two keystrokes to get rid of icons off my desktop? and why are there two sets of keystrokes just to delete an icon?.... I mean, I could go on and on about UI annoyances I've had since switching from Windows.
I think you've made brilliant points about Windows software not working as well as OS X software, but I must disagree that OS X UI is THAT much better. Each has its strength and weakness.
Uh, ever used cmd-`?
Also, OSX has some pretty good web development IDEs available for it, such as CSSEdit and Coda. (CSSEdit is mostly a CSS editor, while Coda is a fully-featured IDE which is pretty darn slick.)
Yeah, it's a bit annoying how you have to mouse over a window on the all-windows screen to get the label. On the plus side, at least windows generally go to the same place every time so you can develop a motor memory.
I haven't used Windows Desktop but I really appreciate how deep into the data and metadata Spotlight goes. I also really like how it knows about specific documents even in opaque databases, such as address book, iCal, etc., and apps can be Spotlight-aware to the point that if you do a fulltext search for a particular symbol then opening the document from the Spotlight results will also jump you to where that symbol is (for example). I've found it absolutely invaluable while coding (as Aquamacs is Spotlight-aware) and I can't imagine living without it anymore.
And one of my big complaints about the Windows UI is having to worry if clicking on the background window will do something aggravating, if all that's visible on the window is something potentially-destructive.
In OSX you generally don't maximize windows to begin with (and technically OSX doesn't even provide a maximize control, it's a "zoom window" control) and generally each app has a pretty good idea of what zooming its window should do. The home/end behavior is a bit annoying (it's one of those places where the fundamental differences between Classic MacOS and NeXTStep constantly butt heads) but as more apps move to Cocoa the disparity goes away. I'm not sure which two keystrokes (or two different sets of keystrokes) you are referring to in order to get rid of an icon, but keep in mind that OSX actually makes the desktop into a useful workspace rather than a dumping ground for badly-behaved installers so generally the stuff on the desktop isn't something you want to just delete immediately.
Sure, and a lot of it does come down to what you're used to. I'm used to OSX, because I feel that it doesn't get in my way. I switched to OSX from Linux where the UI was completely customizable to a ludicrous degree and while at first I was annoyed that I couldn't set it up the way I wanted, as soon as I got used to it I realized I was far more productive in OSX's monolithic setup than I ever was in what I thought was a fluffy-optimized workspace.
Right, cmd-` DOES switch between windows in app groups, but once again, that's extra keystrokes that I have to worry about! This is why I stopped using cmd-tab and installed Witch. It's the closest alternative for alt-tab behavior for OS X.
It's funny you mention Coda because although I wanted to like CSS Edit, I did switch to Coda and generally like it. Now if they could combine the Snippet feature of Textmate with the Code Hints of Coda, I'd be SET!
Windows Desktop, from my little experience so far, does a pretty thorough job of searching through Windows, MUCH better than Windows built in search. I don't know how deeply integrated it is with Windows. I've used X1 for so long but it's definitely not as efficient as Windows Desktop. I also don't like Google Desktop, fwiw.
I guess I see that as a big fundamental difference between apps on each system. If you're using browsers, email programs, audio programs, you generally don't have these apps maximized. But with programs like Photoshop, Word, Excel, any text editor, etc, you want as much real estate for the app as possible (at least, I DO!). In the latter programs, there's at least a canvas protecting the app from the potentially-destructive clicking. In OS X, it has happened over and over where I am trying to resize a window or just refocus to another window in the app group and OOPS, I accidentally focus on a background window. ANNOYING! I can't stand that I'm doing something in an app on OS X, then I need to quickly do something in a browser but I have to actually refocus before performing the task! I think it's much more likely to lose time multitasking in OS X than in Windows.
I almost never maximize apps, but when I want to, I ALWAYS have to resize apps to full size in OS X.
I really hope so. Although I am used to the Windows behavior of Home and End, I think it's just more intuitive for it to work as it does in Window. Let's say I'm in Textmate/Coda/any browser/photoshop and I'm working with text. Home should always go the beginning of the line and End should go to the end. Bad OS X!
Okay, this might be more of a Tiger problem than Leopard, but how do you delete icons from the desktop? Cmd-delete. This keystroke doesn't work for extracted .dmg files which mount. You have to know Cmd-e.
Now, this isn't a HUGE deal but isn't it strange that in a related move, you have to drag both files AND mounted drives to the trash? I think this method for mounted drives is a little better than Windows' way of ejecting drives (how about selecting the icon and pushing the eject key?? why not!), but deleting files should simply be the delete key!
Yeah, it does often come down to what you're used to but I think forcing the user to get used to one way or another is not always superior (one button mice?! HA!). Although I get that OS X is supposed to make it easier by forcing you to do things one way over and over (making it habit), I find its just as intrusive and often annoying. I have forced myself to become a multi platform user because I want to know and understand both ways. I just wish I wasn't so limited on one platform and I wish the other just WORKED. There are features about both platforms which, if combined, could make the most amazing and completely unintrusive desktop experience.
So, let's say I'm trying to build an app with a complex build environment. My source tree is on drive Z:. The SDK is on drive C:. The build environment runs in Cygwin, which maps paths in one way, but where any absolute path always means the same thing. The tools run in NTLDR (or whatever the proper name for it is), which thinks that an absolute path is relative to the CWD's drive.
On sane OSes like MacOS and Linux this wouldn't be a problem since you could easily use symlinks to thunk around issues, BUT on Windows, symlinks aren't actually transparent to the applications, and are very inconsistently supported. While I can use symlinks to trick the build environment to do the right thing, I can't make the compiler do the right thing, because it insists on thinking that if I'm on drive Z: and need a file on drive C: that the path will be prefixed with C:. Unfortunately, if I put anything other than a / at the beginning of my include path, the build scripts, because it's built on scons which is a bit goofy.
Basically it's very annoying.
The deal is with Unix based systems is that drives are represented by what appear to be directories. E.g., on Linux, a CD drive could be accessed at /dev/cdrom (not sure if that's 100% standard).
But how is /dev/cdrom any different than d:\? Either way the file path has to be prefixed with something that tells where to find the file.
Now, with Linux, you can create something called a symbolic link, which means a directory or file can map to any other directory or file on your machine. So you could have a symbolic link in /etc/apache/ named compactdisk that points to /dev/cdrom. When you go to the /etc/apache/compactdisk directory, you are actually reading files off /dev/cdrom, but for all practical intents and purposes you or your application have no idea you're not really in a /etc/apache/compactdisk directory.
BUT... you still have to set up logic to implement these symbolic links That's where the ease of use breaks down. Are the advantages of symbolic links any better than, say, environment variables or registry settings with Windows? Frankly, I would suggest that not using symbolic links is generally superior because you aren't dependent on physical changes to your filesystem and can better abstract your application from the filesystem state.
Am I missing anything or incorrect?
It's likely that I don't completely get it. But in my example, if compactdisk was a symlink pointing to /dev/cdrom, and you later changed the drive to /dev/dvdrom, then the symlink is broken.
Although it's one of several ways to help programs find files and directories, doesn't it kinda reduce application portability?
Would something like this solve the problem?
http://www.microsoft.com/technet/sysinternals/FileAndDisk/Junction.mspx
And, the point is that the symlink might be broken if you go ahead and break it, BUT you can also fix it. And you're not dependent on path-relative behavior to begin with.
Also, I have a feeling that junctions won't work for my particular use case since in my case, Z: is a network drive.
-bill
I don't know what the hell is up with drag handles but so far the only commonly-used apps I see which provide them are Windows Explorer (which, again, needs to have it explicitly enabled!) and Notepad (which I hardly ever use). Firefox, Pidgin, putty, rxvt, cmd, etc. don't. On Mac OS the drag handle is a standard part of the window decoration, so apps are pretty much forced to provide it on a resizeable window. If only that were the case on Windows. [edit: okay, Firefox was just in some weird state where it thought it was maximized even though it wasn't. What the hell kind of UI allows an app to get into a state like this, though? Yet another reason I think it's a GOOD THING that MacOS *doesn't* have a true maximize!]
I really miss being able to select a chunk of text and then drag-and-drop it between applications. It's much more useful than you'd think (since it doesn't clobber your clipboard, and in fact you can use it to basically get a flexible multiple-clipping clipboard for ANY APP), and much faster than a copy-paste as well.
I miss being able to drag the document icon for a window and use it as a handle to the file itself. Again, that's another thing that just plain does not exist as a concept in Windows.
Spotlight does WAY more than Windows Desktop Search and I really don't see how people can think they're at all similar. WDS is just a file search engine, which is all well and good, but Spotlight searches EVERYTHING in the system (apps, control panels, address book entries, etc.) and the result doesn't just link to the file that it relates to, it links to the result within the file. So I can easily search on a particular phrase in some control panel and when I select the appropriate result, the respective text field is already given focus. Or if I search on a function name, when I open the file the cursor is already at the function so I don't have to do another search within the file to see where it is.
The windows-grouped-by-app thing also leads to a lot more than just window switching. If I have a terminal window open in MacOS, I can press cmd-N and get another new terminal window. In Windows, every terminal I open is basically in its own little universe and I have to launch it separately. (In some cases I could just open up a terminal by launching it from whatever command prompt is current, but then that leads to process control issues - if the parent terminal dies then all its children die too!)
This isn't just a matter of being used to some casual differences between the OSes, it's a matter of STUFF BEING COMPLETELY MISSING from Windows. Everything in Windows is in MacOS (albeit sometimes changed subtly), but everything in MacOS is not in Windows. Changes I can get used to. Complete omissions, not so much.
In a similar way, it annoys the hell out of me when I need to resize a a window in OS X and I'm usually forced to the move the window closer to the top right and forced to use the drag handle. That's a frequent annoyance of mine and it wastes time!
You're totally right about this inconsistency in UI in Windows. That's pretty stupid. Both OSes have inconsistencies like this and you wish they'd have just figured out by now to fix it.
I really miss the Windows taskbar functionality. When I look at the Dock in OS X, I see that certain application groups are open but I don't immediately see what windows are there for me to click on that exact window. Expose can help me but, as I pointed out, it could improve for ease of use.
The UI of both OSes could be better, both could improve and become more consistent but it always comes down to what you're used to! The UI problems that OS X have annoy me enough to never make the total switch over but I'm glad I have the knowledge and ability to be able to use both, each which has its strengths and weaknesses.
Right, Spotlight works in more depth than WDS for sure. It does more in a way that WDS won't. But, Spotlight as a way of starting apps has always been 2nd choice for me to Quicksilver. I use a combo of Spotlight and Quicksilver for my search and opening app needs because I think Spotlight isn't as snappy as Quicksilver and Quicksilver is built FOR that. Similarly, on Windows, I use a combo of WDS and Launchy for the same thing. It's not totally apples and apples but it fills my needs.
This seems to be an application specific problem. If it's Windows and the command prompt, there are tabbed versions of the software out there that you can download. Same with programs like Putty.
And this is where the differences should be discussed. You're really talking about two OSes in two different generations. Microsoft was so stupid, totally dumb for ignoring XP for so long. While OS X was brilliant in updating its OS several times this decade, XP has been pretty stagnant and still lives in the year 2001 in functionality. It's sad. Vista is an improvement to XP in certain ways, but many of its features are still living in the past compared to Tiger and Leopard because its development took 5 years! Comparing the two OSes will always be unbalanced because they're also built for different users for different reasons. it's apples and windows
I did finally find an XP theme that I like, in the meantime: http://b0se.deviantart.com/art/Codename-Opus-3-0-9240396
Unlike most custom themes this one actually has pretty good usability and supports a side-mounted taskbar, while looking better than the Windows Classic theme. Of course it doesn't fix most of the deep-seated problems with the Windows UI but at least it makes what's there a bit more tolerable, and it even preemptively addresses another Windows UI problem that I didn't mention (on OSX it's very easy to tell what app you're in by just looking at the menu bar, while on Windows it's not always so clear, especially if you're using themed apps. This theme makes it very obvious in the task bar, something even Windows Classic doesn't do very well.)
There are a bunch of other themes that I almost like but they suffer from some fatal flaw, like having all the window decoration buttons look the same, or not having any easily-discernible window borders. (This is of course a problem on all platforms, because most of the people making custom window styles are amateurs who want to make things that look distinctive but don't have a style of their own, and don't know which aspects to borrow from other places.)
I'm a little confused about how you said you don't know which app you're in on Windows. The taskbar, even in Windows Classic, is a quick and simple identifier (when you don't have a million apps open on a one level taskbar) to identify which app window you're using. The beveled rectangles on the taskbar visually let you identify which one is being used as well as what other individual windows you have available.
It's humorous to me that with OS X, I desire several plugins just to get the UI where I want it whereas with Windows, all I really need is TweakUI, WDS, and Launchy. But, since it's Windows, I can't have an installation without all the stupid spyware/adware/virus software. Ugh.
Taskbar-based "where am I?" requires scanning the whole taskbar with your eyes, and there's a lot of subtle stuff that bothers me with things moving around and so on (while on the dock things stay stable, at least for apps that you have pinned, which is most of the ones I use regularly).
That said, there is one app which really gets my goat on OSX: Twitterriffic. It sort of runs in its own little world and doesn't acquire any focus of its own, and as a result, if its window has focus, you can't tell that readily. It also doesn't allow you to switch to or from it by the keyboard. So it's pretty irritating.
I used to really love focus-follows-mouse, but that was also based on the window-is-an-app model of X11 and Windows. The OSX window-is-a-document screen-is-an-app model seems to contradict focus-follows-mouse quite a lot, and as soon as I got used to window-is-a-document I stopped wishing for sloppyfocus (and anyway, Expose does give you sloppyfocus while you're in Expose mode). Although I could totally see some middle-ground approach working, like focus-follows-mouse-while-holding-down-Alt or something.
The big problem with focus-follows-mouse on the Mac, of course, is that if there's a window for another app between your current window and the menu bar, then it gets tricky to make it so that you can get to the menu without the focus switching. Any good focus-follows-mouse scheme would either check to see that the window belongs to the same app (which negates a big point to FFM) or would have to put in an idle delay before doing the focus switch (which, again, negates a big point to FFM). Also, in MacOS, the root window IS an application (Finder), in a different way than how the desktop is owned by Explorer on Windows, or the window manager in X11.