Windows 7 is Microsoft’s successor to Windows Vista, but since so few people adopted Vista, most people who get Windows 7 will be moving straight there from Windows XP. This includes the vast majority of corporate Windows desktops, as most enterprise desktop teams were not convinced to upgrade to Vista in the nearly three years since its release.
Personally, I am not coming from Windows XP. I abandoned my company’s standard Windows XP desktop image three years ago; I couldn’t stand all the issues of managing a Windows XP computer coupled with idiosyncratic internal corporate packaging of external packages. (If my company’s desktop team is reading: I don’t mean any offense; you know I’m just really picky.) More important though, at the time, was my strong preference for Ubuntu Linux as a desktop platform.
My dream Linux desktop at work proved to have a finite life, though. With Windows infrastructure all around me, it became increasingly tedious to fire up my Windows virtual machine inside my Ubuntu desktop for so many day-to-day tasks, particularly using my team’s preferred IDE, Adobe FlexBuilder, which still lacks a Linux release, and won’t run under Wine. So, I decided to go back to Windows, but I didn’t want to take a step back to Windows XP.
Fortunately, for the last few months, Windows 7 RC (Release Candidate) has been available as a free download. You can register and then install it for free as long as you don’t mind acquiring a real license and rebuilding your computer when it expires in March 2010. When I found out about that, I was sold. I have very little experience with Vista, but compared to Windows XP, here are some benefits I see for hackers using Windows 7:
- They managed to squeeze in some decent privilege separation/escalation. Desktop software in the Windows ecosystem has traditionally assumed the current user has the run of the system and can do whatever he wishes. This has the unfortunate side effect that if you try to setup an environment where you normally log in as an unprivileged user, you will find yourself living a nightmare with random unexplained application crashes and having to log out and log back in as Administrator when you want to install a new application. To make Windows work more like OS X and Linux desktops, the Windows team came up with a compromise, where poorly-designed applications think they are running with unlimited access, but Windows prompts you before it allows an application to make a system-wide change.
- The Start Menu and Control Panel are finally searchable, just like OS X has been for years, and KDE last year added in 4.0. (Yes, this was in Vista, but I never tried it.)
- Windows 7’s new Open dialog box. The file manager, Windows Explorer, does a pretty good job of hiding those annoying kludgy drive letters from you, even in the system Open/Save/Choose Folder dialog boxes. As in OS X’s Finder, and various Linux-based file managers, you can highlight your favorite folders in the main navigation pane, so that most of the time you don’t have to go to the My Computer folder and deal with drive letters.
- Internet Explorer 8. Wow. This is what IE 6 could have become if anyone at Microsoft had been allowed to do serious development work on it. Tabs, streamlined window layout, and a developer tools screen that I find easier to use than Firefox’s Firebug.
- A killer new object-oriented command shell environment where input and output streams are hierarchical objects and collections instead of plain text streams. Not specifically a Windows 7 feature, but I’m putting it in here because I’m excited to try it out when I get a chance.
- When you connect to the “Console” running the main desktop, remotely, Windows first saves all your window positions, then rearranges them to fit in your terminal’s geometry. When you disconnect, saved positions are restored for any processes that are still running. Yay! — actually it seems like there are little wins like this all over Windows 7
While Windows 7 will undoubtedly be a crowd-pleasing success, I still have a lot of issues with being a hacker and developer living on a Windows box, for instance:
- You can’t mount SFTP servers locally and have other ad hoc pluggable filesystems à la FUSE. Actually you can. As I was writing this blog entry, I figured out how to get Dokan and Dokan SSHFS working in Windows 7. Yay! I need to write up a howto (but in the mean time, see this bug.)
- The window manager still kinda sucks. You can’t alt-click-and-drag to move Windows like in GNOME and KDE; that’s a third-party add-on. I can’t find a way to get window edges to snap to other window edges.
- No built-in clipboard history.
- No built-in SSH server or client for remote login and file sharing. SMB (Windows file sharing) is irritating, and other operating systems don’t play well with it.
And there are some issues aren’t particular to Windows 7; they are really problems with the Windows ecosystem and not something a new Windows release could resolve on its own:
- Standard package repositories — Yes, Windows has had a respectable package manager for a long time, but what about a centralized repository? I want to open up my package manager, type in the name of an application or a keyword, and then install the application with one click. I want automatic updates to come from the same place, instead of numerous annoying third-party Systray apps that phone home every week looking for updates in their own special way. I don’t think Microsoft is interested in dealing with the political issues of managing and editing a catalog like this, and third party attempts suffer from a chicken-and-egg problem: why should one developer buy into your package management system when no one else has yet?
- Where do you find Windows software? Seriously. After spending most of my time in various Unices for the last several years, I can’t for the life of me figure out how to find Windows applications to solve any problem I might have. If it’s a good open source app available for multiple platforms, it’s probably listed in Freshmeat, but if it’s not free or not multi-platform, I don’t know where to find it. How do you sort through Google spam and find respectable applications you don’t already know about? How can you trust what you find?
So here’s how I customized my Windows 7 desktop to work my way (all of these products are free-as-in-beer or better):
- Desktop environment add-ons: ClipX for clipboard history; Taekwindow for alt-click-and-drag to move windows; WinSplit Revolutioon for better window management (still no snap-to-edge); entire Windows port of KDE applications, which includes my favorite PDF viewer, Okular.
- Desktop accessories: CD Burner XP Pro and Microsoft Virtual CloneDrive for compiling, burning, and mounting CD/DVD images; 1by1, a minimalist, database-free music player; IrfanView, a simple no-frills image editor/converter.
- Cygwin for common Unix utilities like Midnight Commander, GPG, and bash.
- Remote access: Portable RDP client from TSplus because the Microsoft client was thrashing my CPU (go figure!); PuTTY for remote text login; FileZilla for file transfer; NoMachine NX Client for remote desktop login to my file server at home.
- Zim notepad/outliner (Windows version is available here).
- Virtualization: VMWare Server 2, after much hemming and hawing (I should write this up as a separate blog post), running Ubuntu 9.04. Seamless remote desktop login to the virtual machine by using Xming and XFCE Desktop. See my howto.
- TrueCrypt for transparent encrypted filesystems.
It was a lot of work, but I’m pretty happy with the results, and I’m definitely not a Microsoft-hater anymore.
In future posts, I will highlight some of the things above (for example VMWare 2 or Okular) that I find particular interesting. I also plan to review books and web sites. I also hope to be writing a lot about information portability and security, from the perspective of your personal data.