Honest question here: Why would anyone ever think OS X has "world-class interface design"?
It's missing basic interface features that have been bog standard in Ubuntu/Windows for years, like any sort of proper window management. Hell, the maximize button actually doesn't work- it has such inconsistent use that you have almost no hope of actually getting what you want out of it. To get even decent window management, you have to buy software off of the app store.
Then, you have the fact taht you still functionally have a folder-based OS, which feels a greater need to present me with buttons to alter the view of a given folder, how icons are arranged, etc- all useful things no doubt, but things you don't change on a per-folder basis that often- while literally not having an "up one level" button. At all. You either have to know the keyboard shortcut, or you have to go to the Go menu. The back button isn't always dependable for this interaction(especially if the finder was just opened), so of course this just screws the whole pooch.
Seriously, the most I can get anyone to offer as to what makes OS X such a great operating system, is that it's Unix with no driver problems. If that's the most we can claim, can we stop acting like the interface design is halfway decent? Windows Vista had better interface design than this. That's just sad.
It is Unix with no driver problems. It is unix with both all free software and all proprietary software (except games). It is unix with a consistent pretty unobtrusive desktop environment that is easy to use and has sane defaults. It is unix with an accelerated window compositor that's always responsive and has no bugs.
Anyway, that was what it was in 10.6. Nowadays Ubuntu does all those things too to a certain extent, and it works without painful maintenance on a desktop machine. (I ran OSX on my desktop for a few years, it was very painful to upgrade, and apparently not in accordance with the EULA)
Still a great laptop OS though. And it runs rather well on macbook pros, which are the superior hardware choice in the laptop market, in my opinion.
Saying it has "no driver issues" is a nonsense claim. What, did they include all possible drivers? Of course not. Instead, they've created a consumption pattern where their customers only buy their products.
I used to disagree with this assessment, but I have been using Linux and Windows these last few years (and trying to make them work and look as similar as possible), and nowadays I tend to agree. The worst thing I can say about Windows is that it lacks a Unix commandline and package manager, but on any decently powerful, modern machine, you can use (VirtualBox+Ubuntu|ElementaryOS)|Cygwin to remedy that for free.
The iPhone is still my favorite phone. But I wouldn't take a Mac OS X box over a Linux box for professional development. That said, my opinion on these things changes constantly, so who knows how I'll feel in a year.
Apple's thoughts on the matter (and on many other matters) is that the user shouldn't ever have to learn to do anything complicated, and rather than risk them not knowing how to do something, they'd rather remove the feature entirely. This is reflected in their window and file management: you get the bare minimum you need to do the job done.
The worst example of where this doesn't help is the Zoom button. Not the maximise button, as it's never been called that, and doesn't actually maximise - it resizes the window to the most useful size. For example, my BBEdit window gets resized to the width of the text, but the height of the screen. Of course, many apps just make it fill the screen (incorrectly), leading to the 'maximise' button instead.
(Also, you can command-click on a window title to get a menu that allows you to go up. Two clicks instead of one, but it's there. This works on folders, files, and URLs)
This is true, and after much frustration I did finally deduce the intended behavior. However, it still isn't quite consistent (or rather, wasn't the last time I worked on a mac, circa 2008) and still seems to be lacking in functionality that the user actually wants.
In all my years of working with text editors, I don't think I've ever found myself thinking "This viewport is too small. I wish I could quickly resize it to just the width of the text, and maybe the height of the screen, or maybe something else, depending on what I'm doing." When my window is too narrow or whatever, I usually just (a) maximize it (which you can't to on osx), (b) dock it to half the screen (windows+left or windows+right on Win7+/*buntu, but not on osx) or (c) just quickly drag it over. So Apple effectively forced us to use only option (c), which is probably the least useful of the three sane options. The only other option is to use a feature that doesn't really do what we (or I, anyhow) want.
> In all my years of working with text editors, I don't think I've ever found myself thinking "This viewport is too small. I wish I could quickly resize it to just the width of the text, and maybe the height of the screen, or maybe something else, depending on what I'm doing." When my window is too narrow or whatever, I usually just (a) maximize it (which you can't to on osx)
I use Sublime Text 2 on OS X. When I click on the zoom button, it maximises the editor window to the entire width and height of the screen.
Mind you, text-editing wasn't the designed-for use-case; document-editing was. Open up Pages.app, if you have it, and create a new blank document. The zoom button will set the window to an optimal size for working on the (fixed-ratio) document page. Same for a canvas in Photoshop.
Amusingly enough, the only things it doesn't really work well for are things that reflow their content arbitrarily to fill the window: text, HTML, and terminals. The three things developers spend all their time looking at!
Anyone frustrated with the same should check out Slate [https://github.com/jigish/slate] which lets you bind key commands to window positioning and sizing and even screen layouts.
"all useful things no doubt, but things you don't change on a per-folder basis that often- while literally not having an "up one level" button. At all."
Add the "path" menu to your Finder window toolbar. You now have access to all parent folders of the current directory in two clicks. It's one of the first tweaks I make setting up a new OSX install. Along with dumping "all my files" from the sidebar and as the new window default.
After using Ubuntu for most of the summer don't get me started on the UI inconsistencies I experienced there. I don't disagree with you that there are things in OSX which also don't make sense, by my overall impression is that the UI of OSX is much more refined than what's available for Linux out of the box. YMMV.
"You either have to know the keyboard shortcut, or you have to go to the Go menu."
As in, yes you can go up a level, but not in the way that many expect, and/or not without switching to the keyboard. Neither of which are marks of amazing interface design... which I think is his point.
As a long time Mac user, I never use the zoom button. It rarely does anything useful. And Finder really needs a Go Up button, as you say. So those are two valid points you raise.
I'll try to explain what I like about the Mac and what bothers me when I use Linux. Since you mentioned window management, I'll focus on that, comparing it to Ubuntu 12.
1. Window resizing in OS X is way nicer. It's actually possible to resize a window with a scrollbar from the lower right (on Ubuntu, the click target is literally one pixel wide). Resizing from the left edge doesn't result in weird tearing and graphics artifacts like it does in Ubuntu and Windows. The command key allows you to drag, resize, and do other interactions with windows without bringing them to the front. OS X also supports centered and fixed-aspect ratio resizing (shift and option keys); if this is possible on Ubuntu I couldn't find it.
2. The way hiding / minimization works in Ubuntu is very confusing to me. There doesn't seem to be a way to show all the minimized windows for an app, except for the weird and jarring Exposé knockoff that you get when you click on one of the icons in the Launcher.
3. Workspaces in OS X are much nicer. To move a window to another workspace in OS X, I just press it against the relevant side of the screen, or swipe up to enter Mission Control and drag it there. On Ubuntu, you can't drag windows to another workspace; you can instead use the context menu or press control-alt-arrow, which causes the window to disappear with no indication of where it went.
4. It's hard to distinguish the foreground window from other windows in Ubuntu. The only thing that seems to change is the titlebar. Even the text selection color is the same for foreground and background windows.
5. Focus stealing issues in Ubuntu are rampant. Click on a slow launching app like LibreWriter; when it finishes launching it will jump in front of the window you are currently using, and steal the keyboard focus. This happens occasionally on OS X and it bugs the hell out of me. I don't think I could stand an OS where that is the default behavior.
There's certainly some places where I find Ubuntu to be nicer, and some places that OS X falls down. My overall impression, though, is that OS X is more polished, and that Ubuntu has more clumsy knock-offs of OS X features.
One problem here is that you can't really compare OSX to Ubuntu because Ubuntu is not a desktop environment. It has a default desktop environment, but it isn't itself one, and you can swap in another effortlessly and there are typically a wealth of customization options. I'm using XFCE, and I can drag windows to other workspaces just like you, don't have the focus stealing issue, etc.
I've also tried Xubuntu (= Ubuntu + xfce) and I preferred it to Ubuntu, although Xubuntu's window resizing is even more busted.
Your post prompted me to give it another try. I found that you can drag windows between workspaces in the "mini workspace viewer" in the upper right, which is definitely an improvement over Ubuntu. However, you can't move them by simply pressing the windows against the side of the screen.
The focus stealing issues are the same as in Ubuntu. Start launching an app and switch to another window; the app will jump in front when it's done launching. Argh!
In XFCE, you can move windows by pressing them against the side of the screen. Go to Settings, WindowManager, Advanced. Click "Wrap workspaces when dragging..." and choose your desired edge resistance.
However, I prefer to re-map CapsLock to <Hyper>, and define <SHIFT>-<HYPER>-Up to move window to workspace up, and so on.
Hmm...I found the setting and it sure looks promising. I can switch between workspaces by moving the mouse cursor, as long as I am not dragging a window. If I am dragging a window then it refuses to switch.
>Start launching an app and switch to another window; the app will jump in front when it's done launching. Argh! //
In common it seems with most features of the UI KDE has a setting for that!
It's in the settings with the "focus policy" slider (click at one end, hover at the other) labelled as "focus stealing prevention". IIRC it was in KDE3 too.
XFCE and Unity both allow you to move/resize windows without using the title bar or the ridiculously small drag handles. Both of them support alt-click+drag for moving windows from any point inside, and also resizing from the edge/corner nearest to where you click using alt-middleclick+drag (Unity) or alt-rightclick+drag (XFCE). I've rebound Unity's to use the right button as well, for consistency.
I can't speak for other DE/WMs, but I didn't want to leave someone suffering the pain of trying to resize using the corner/edge drag handles - they really are unacceptably small.
Edit: I can also add that clicking on the workspace switcher or pressing Super/Windows+s in Unity brings up a screen that lets you drag windows between viewports. I'm sure it's not what you're used to, but I find it to be sufficient.
Regarding #1 on your list, no other OS I've used requires precise window resizing. For a vast majority of programs I use, I want them to be fullscreen or half the window. Ubuntu allows you to easily drag to a side to full/half-screen things.
#3. When I do ctrl-alt-left/right/up/down, it moves the workspace with me, so you retain focus on the window the whole time, plus it shows a brief display and arrow showing the window moving. It might still be weird to use hotkeys, but I definitely know where the window went at all times.
To go up one level press Command and click on the title bar. Pretty standard metaphor across the OS. Or alternatively if you are drilling back and forth through the folder hierarchy then switch to Column View.
And if you actually think that Ubuntu's woeful file manager is anyway comparable to OSX Finder then I really can't help you.
What exactly do you need your file manager to do? All I need is some handy buttons and icons to click in order to move around easily. Nautilus even has the ability to go directly to a specific directory by typing it out (with tab completion) and supports browsing remote file systems through a variety of protocols. I recognize my needs are different from the average user's (I actually mostly just use the terminal and xdg-open instead of a file manager). But what features in particular do you think Nautilus is missing?
> while literally not having an "up one level" button
Huh. I have honestly never taken notice that the OS X Finder lacks an 'up one level' button, and I've been on board since 10.0. I guess it's because I have used column view exclusively since day 1, so I just scroll left to see the entire hierarchy, and can one click to almost anywhere off the $PWD.
Icon and list views are awful - I was glad to leave them behind with Mac OS 9 (which also did not have an 'up one level' button, now that I think about it)..
It's the hardware and the fact that it's Unix. Seriously, the Macbook Pro is a beautifully designed machine. The only things that could compete with it would be similarly priced Thinkpads etc, but you have to install and customize your OS on them.
I agree that the OS X interface is overhyped but most of the problems you mention can be fixed in a couple of minutes. I use a free window manager to do basic manipulation and enabling the folder hierarchy view in Finder offers a better solution than the up-button. These are insignificant tweaks compared to what one would need to get a Linux desktop set up just so (although that has gotten easy enough to the point that it isn't a big deal for slightly technically literate users, but I still wouldn't install Ubuntu on my parents' notebook).
But underneath the interface is good old BSD-flavored Unix. Macports is an okay solution for package management. That combined with iterm and vim is all I care about - all running on rock solid hardware.
> Macports is an okay solution for package management.
People give macports a hard time, but I've never been sure why. It does binary or source distribution. It finds and fixes broken library linkage after upgrades. You can prune your install tree easily with the leaves target. All the functions are under one command, and it comes with a clear and concise manpage. I've used ports, pkgsrc, apt and rpm, and am generally very happy with macports in comparison, especially since default binary installs..
Anyway, I'm not trying to start an argument or anything - your opinion is your opinion. Besides, even if OS X users don't like macports for package management they can always use homebrew (or fink, I guess).
> it has such inconsistent use that you have almost no hope of actually getting what you want out of it
I disagree wholeheartedly. It does everything I want and I get out of OS X exactly what I want - namely, it gets out of the way. It's uncluttered and I don't have anything distracting me. All I see on my desktop is my currently running application and the dock (with icons set to tiny). I don't want system profiling tools flashing and dancing away. I know if my system isn't performing at its peak - it runs slowly.
You say it's inconsistent - I couldn't disagree more with this. It's absolutely consistent. I have never been caught out with unexpected behaviour because it just doesn't happen. There is so little to the UI that it couldn't possibly be inconsistent.
Great points. OS X default window management is definitely lacking in some respects. However, as mentioned by others, you can fill the gaps with a few free and cheap apps (e.g. TotalFinder, TotalSpaces, Moom, Witch, Alfred). Those combined add most of the lacking features plus the additional power of flexible spaces and quick keyboard fuzzy-searching.
Though I agree with the idea of your post, in case you weren't aware, pressing Shift while clicking the maximize button causes a Windows-style maximize that fills the screen.
For me, the algorithm is too opaque and the results too inconsistent across apps to reason about. You could say, "This is consistent behavior, it sends off a request to mechanical turk for the optimal dimensions then resizes the window when the job is done." And you'd be right that the behavior would be universal, but it's not universal in the sense of consistency where the user will be able to guess what is going to happen if they press a button, and additionally want the result that they get.
Because i comes with almost everithin we need to develop out of the box . Also rock solid systrm. And if you got sone problem and inst at a google search of beign solved . Then just go to the apple store and get help. I never needed te second one
I guess it because, quite many people can rely on Mac or Windows for their daily work. All required things have pretty polished interface where as Linux distros have getting better, but there are still lot of unpolished, or missing interfaces.
With Windows there is too much and ugly chrome around everything, slow and buggy views.
Apple's view on the maximize button is that it should maximize the window to the width of the available content, and not to the screen. Today lot of the widescreen resolutions and screensizes are much bigger, so doesn't necessarily make sense to maximize every app. It's designed that way, even you might disagree.
So what's the excuse for no decent window management, then? That even despite making 27" displays, and not letting us maximize a program, they want us to only use one program at a time?
This article leaves out a key factor of why I've never committed to Linux full time, and why I wouldn't buy an $80 laptop to run linux.
I have 1 laptop, and I don't just use it for development. I've tried over and over to use Linux as my primary OS, but every time the sheer jaggedness of the GUI experience, when I'm doing non-development (I guess normal consumer) things, bugs me non-stop until I switch back. It's like switching from Ruby to C++. C++ is amazingly powerful and has great uses, but ultimately Ruby is a lot more enjoyable to use.
I think it's just a personality difference. If you're comfortable in the nitty gritty of linux, more power to you! But you're not going to convince me linux is better because you're can change the window system or [insert some other component I wouldn't care to change]. And you're not even going to convince me you're much more efficient. The arguments of efficiency and customization are always about low level details that I don't need to care about, and that play no part in good software engineering. [This is about the scope of web development, I love linux in different fields such as embedded systems. Again though, it comes up frustratingly, excruciatingly short as a general use OS]
It's popular to hate on Ubuntu, but I personally love it and its UI. I've used Ubuntu since 11.04 and run 13.04 on my personal laptop (for development and day-to-day stuff). I'm a sucker for pretty things like translucent title bars and snapping windows to full-screen, but I also love how easy it is to develop with Linux (as opposed to Windows). Everything is usually a single command away on the command line (sudo apt-get install blank) so it's easy to install new libraries or programs for development.
It may not be for everyone, but it definitely is possible to use Linux without having to install and fiddle with new window managers or file explorers or all the nuts and bolts. I've never even really had driver issues on my laptop now that Ubuntu has become this mature.
The core of Ubuntu is fine, I just don't really like Unity. While you can technically use regular Ubuntu and install Gnome, I've always had some weird stuff happen because Unity's still around.
My typical suggestion for other people is Ubuntu Gnome, because it provides them with the "just working" Linux, and most people I've talked to enjoy Gnome more than Unity.
As for regular Ubuntu, I'm not really a fan of their recent bouts of Not Invented Here Syndrome. Everything has to be made by them, for absolutely no reason. And they tried to belittle Wayland, and make up blatant falsehoods to do it.
If they were willing to focus on making ONE really, really good product, and push that towards consumers, instead of spreading their focus everywhere, I feel like they'd have a much better core product, Ubuntu Desktop (with Server out there, too, because it's not difficult to decouple the GUI stuff).
Yeah, I'm kind of the same way. I love Unity and want them to succeed heavily, but I wish they'd jive better with the rest of the Linux world.
I haven't used Gnome 3 enough to make a fair comparison, but I loved Gnome 2 and was loathing the transition to Unity with 12.04. After a few days of using it though, I loved most of what it offered me. Realistically, my biggest concerns were screen real estate (13" laptop, minimal vertical pixels) and quick access to my programs (cmd opens the launcher), so i was really happy with Ubuntu for that.
I'm quite fond of Gnome 3. It's gotten a whole lot better since it started (it was kind of a mess when they started).
Every two-ish releases I try out Ubuntu again to see if Unity's better, and each time it seems like they never address my main concern, speed. Unity seems really slow. I've never done benchmarks or tests, but on an i7 machine with 16GB of RAM, I would expect it to be snappy. It's even worse on my netbook.
I like the dock on the side, but the super menu and alt+f2 prompts are really bad in my mind. If I could get the dock, and maybe the global menus (I'm ambivalent on them), with Gnome Shell's activities menu, I'd be happy. Also dynamic workspaces, I really like those.
I use Ubuntu as my sole OS too, but it gets on my nerves with some things. I have cmd+E mapped to a new nautilus window, for example, and it doesn't work half the time (I always have to press it twice). Sometimes the focus gets lost and alt+tab won't work until I click on a window. It's also not very responsive.
Windows, on the other hand, are extremely snappy everywhere. Pressing cmd+E immediately launches Explorer and Explorer itself is very snappy.
I wish Ubuntu would just get its shit together and address UI latency at some point.
Maybe I should try it again, but last time I used it, I couldn't get programs to just work. I don't want to hate on ubuntu, I liked a lot about it, but so often you can't just install and use something, you have to do a bunch of fiddling.
Last time I used it, I couldn't get Dropbox to install correctly. Sublime text would always open in the default spot and with the default window size rather than where I closed it. There are all of these very minuscule problems that add up to a very agitating experience. That's why I said it comes up excruciatingly short, I feel like Linux is almost the best OS on every level, yet on every level (above the command line) there's some little thing that's irritating.
If you've been programming for a while, modifying software isn't as scary and intimidating as you'd think.
For exmple, I had wpa_supplicant always crap out at a few coffee shops here in LA. It tried to associate but didn't wait long enough.
I ran it with the "-v" option and saw a line that said something like:
"Waiting 5 seconds".
I downloaded the source code and searched for that message:
grep -r Waiting * | grep second
I got 5 results or so. I opened up the code and I saw a line like this, right above the debug message.
timeout = 5000;
I added a 0 (making it 50 seconds) and saved the file. I ran ./configure && make and killed /usr/bin/wpa_supplicant, then used my copy and like magic, it started working. Go me!
I think any average non-wizard programmer could have probably done the same. I didn't have to know all any big-picture detail of wpa_supplicant's design nor did I have to know the 802.11[anything] protocol. No need to do packet dissection or anything like that.
I looked at the screen, I grepped for where the problem was and I added a 0. Fixed.
It took all of 20 minutes or so. A lot less time then the productivity I had already lost by putting up with the issue in the first place. [1]
Those kinds of experiences are the kind that make me stick with linux.
I have an identical problem with the same networks on my s3. I'm guessing it's because of the same thing. But my stock install of the developer-unfriendly OS has made the barrier to doing the same process much much higher.
I had a different, but also easily solvable problem on a MBP once in 2012. I tried the same process. But the man pages were half a page long and dated 10 years ago. The developer documentation was non-existent, the source code was inaccessible, and everyone that was experiencing the problem were unsophisticated users who recommended things like "going to the mac store".
Basically, I was stuck with the problem. I would have had to have been in my top form hacking zone to even find out what and where to mod; and then I'd have to write assembly to fix it; using tricks to maintain byte alignment, function pointers, all that noise.
After a few experiences like that I realized the machine in my hands was a sophisticated consumer appliance.
That's nice. But what I really wanted was a "feasibly reprogrammable" computer.
---
[1] Here's another example: I had an idea for a way to switch application windows where you type in string matches of the window names, all these weird UI ideas... The problem was I couldn't program in X - I had no idea how to do that.
Good thing is that I didn't need to. Because of the openness of the system, I was able to execute my idea with a perl script; calling programs to move around and manipulate windows.
The existing tools gave me enough control, power, and information, in order to execute this sophisticated idea; and all without having to learn xlib (which I intend to do one day). It's become part of my must-have list for my long-term environments. Here's the link https://github.com/kristopolous/alttab . I still don't know exactly how to create an x window.
I'm convinced that although initially daunting, the "here's the blueprints" philosophy of linux actually makes sophisticated ideas simpler to execute, however counter-intuitive that sounds.
I agree that it was a shitty default configuration/decision, but uninstalling Amazon was as trivial as you could possibly get, so I'm not really concerned about that.
I wouldn't say they all hate Ubuntu. They just don't prefer it.
Speaking for myself, I think it has a fine core, and recommend the Gnome Remix to most people looking to get into Linux. I just don't really like Unity (mostly because it feels really slow every time I use it), and they're not really being excellent to the rest of the Linux community.
I feel (and I said this recently in this same post) that if they focused on one thing, and stopped trying to do ridiculous and unnecessary things (like Ubuntu for Phones, and Ubuntu for TVs, and even Mir), Ubuntu could return to the nice, quality product it was.
My second favorite desktop setup was with 10.04 and 10.10, the switch to Unity is what ultimately pushed me away from Ubuntu.
Having a very affordable Linux laptop that only works well for development could be seen as an advantage: you use one machine for work, and the other one for play and personal stuff.
I had a big personal battle over this idea, but decided it would be silly to physically switch between two laptops based on what I was doing. Sometimes the activities are mixed together too: I'll finish a class and decide to check email or some other program for a couple minutes, then get back to development.
I ran Linux on the desktop for almost 20 years, till recently taking a Rails job where EVERYONE used Macs, and finally bought a MBP. This refrain, "OSX is Unix," seems to be very common, but I'm not feeling it. As I just tweeted today: "How much 'Unix' is in OS X when I can't use CTRL-s to freeze the terminal? Pfft." For something that's supposedly got all the power of Unix, it sure doesn't seem to expose much of it to me.
Most things are pretty locked down. That's not Unix-y. Yes, most defaults are pretty descent, but if you want more flexibility in your environment, there MIGHT be a 3rd-party tool for it, and it may even work, but if it does, it'll cost $20. It's like the world of Windows about a dozen years ago. Maybe in a few more years, this situation will improve.
I miss Linux. And, yeah, I know I can supposedly run it on a MBP, but I know that there will be nothing like the (nearly) flawless power management and screen switching capabilities of just running OS X, so I make do.
As someone who runs OS X day to day, but still loves a traditional unix desktop to get work done, I can see where you're coming from. In my experience you have a couple of options for getting the best of both:
1. You can run XQuartz full screen, and can even run a nice wm like xmonad. This isn't perfect, but isn't entirely bad.
2. If you have VMWare, you can just run your workhorse of choice in a convenient vm. Full screen VMs under 10.8 are actually pretty great when you're just on the laptop - you can just three finger swipe from OS X into bsd/linux/whatever and then back again.
I personally like the VMWare option, since it means that OS X gets to do all the power management and all of that, and there's no fiddling to do in the virtual machine to make things work with the hardware. And you totally own the vm environment, so you can do whatever you like to it.
>>> but if you want more flexibility in your environment, there MIGHT be a 3rd-party tool for it, and it may even work, but if it does, it'll cost $20. It's like the world of Windows about a dozen years ago. Maybe in a few more years, this situation will improve.
If this means that almost every free program i download from the internet wants to install some crap along with it, i'll gladly pass and pay up.
A) You can use CTRL-s just fine, and B) that's far more to do with legacy terminal cruft than anything related to UNIX. Mac OS X has all the UNIX that Linux has, albeit with much more non-UNIXy stuff on top of it.
Or, to put it another way: Darwin and Linux today are far, far closer than either of them are to most UNIXes in existence.
The reason for using antiX/Debian rather than Arch is that I have no need to live on the bleeding edge. Once I've set things up I don't want them to break. I3 is at least as good -- probably better -- than ratpoison that I used to use earlier. The ability to quickly switch between "stacked", tabbed and full screen windows works great.
Whether Conkeror is superior to Firefox with Pentadactyl I'm not yet sure of -- subjectively everything seems to
load faster, but you do need to do some extra customization if you are going with Conkeror. Of course, that is
also one of its selling points.
Really? Are we still talking about how OS X doesn't give you "full control over the system?"
Given the popularity of Macs in the developer community, it's pretty clear that you have as much control as you desire—Unix has incredible power.
And if you still somehow feel that OS X is actually constricting you (rather than just hiding advanced settings in the command line), you'd never be able to run Linux on a Mac. No, never... https://wiki.archlinux.org/index.php/MacBook
As for the price component, if you're making your living off a computer I surely how you can afford a decent one.
> Really? Are we still talking about how OS X doesn't give you "full control over the system?"
Well, it doesn't. Hence the reason for your need to put quotes around "full control over the system." Because, in fact, you don't. And problems I've solved in the past on Linux are still problems to this day on OS X.
> As for the price component, if you're making your living off a computer I surely how you can afford a decent one.
That's fallacious at best. This ignores people starting out, or in different locations. Not everyone is being handed a MBA and 27" monitor at their plush new SV job. It's useful to be reminded sometimes that while it's nice to have a high quality laptop, you don't need the latest and greatest Apple device to get stuff done.
> Or maybe I put quotes around it because I don't agree with that assertion and it's a quote from the article...
Well, that's unfortunate, because you are wrong. You don't have full control over the system. It's not a matter of debate. You don't. You simply don't. There are elements that you cannot control in OS X. That are closed source.
I mean, maybe you are a developer for Apple. I don't know. And maybe you do have access to the source code. But the average? No.
> Can you give me an example? I'm genuinely curious...
Proper full screen support on multiple monitors. It should finally be fixed in Mavericks. That being said, the window management is still fairly weak compared to what I implemented years ago.
(I forget the WM I was using at the time, but it wasn't properly handling full screen support in a multi-head environment. I patched it, as well as added some handling for allowing easy movement of FS windows to other screens via key-board shortcuts.)
> Yet the author certainly could get a MBA,
The author is not the only web developer out there. So I don't see how that matters.
Edit: And if being able to script is your proof that everyone has full control over OS X, you also need to share your definition of "full" as it definitely doesn't mean what you think it means.
What window management features, exactly, are impossible to implement because OSX is proprietary?
You obviously have a visceral and emotional opposition to closed-source software, and I respect that, but what exactly is the functionality that you need that OSX can't be made to provide?
>Can you give me an example? I'm genuinely curious...
Try getting connectors to MSSQL working properly (in various languages) on either OS. It's annoying as hell on Linux, damn near impossible on OSX (without cheating using ODBC instead of native drivers).
ODBC connectors don't offer the same suite of functions that native MSSQL might for a given language. This was annoyingly true for me at my last place of employment. MSSQL/T-SQL horsecrap for "BI" since everyone "knows" MSSQL is better.
As usual, these things are the decisions of the architects, not the analysts. As such...
Last time I checked, OS X did not let you replace the main window system or the OS status bar. The theme of the interface is also not as easily changeable as a KDE or GTK+ theme.
If there's a way to completely remove the graphical interface, it's definitely harder than in Linux, and not as usable afterwards.
You might argue that these options are not needed for a typical OS X user, and perhaps you're right. But you cannot say it really gives you "full control of the system".
Neither is paying $1000 (from the article) a prerequisite for it.
If you like the experience of OS X then buying MacBook is completely justified choice. Buying one just to install another OS on it is pure stupidity - you could have the same hardware for much cheaper from other vendors.
I really liked the overall point of the article—that one can get a lot done with a relatively old / under-spec'ed machine—but this: "system that was designed for the casual computer user, with little thought given to power users" is outright idiotic, and I very rarely use terms like "outright idiotic."
And while Ostrega is right that a new MacBook costs more than $1000, it's probably not uncommon to use one for years. How big a deal is it for many people to pay $1 a day for a computer versus ten cents a day? For anyone who is employed or doing technical consulting, the difference is probably negligible, especially compared to the value of time.
About time: having more screen real estate is apparently helpful: https://news.ycombinator.com/item?id=2403565; there was also recently an article about a guy who was teaching his girlfriend how to code and found using a 27" iMac useful simply because so much information could be displayed at once. The HN discussion pointed out (correctly) that one can learn to code with much smaller monitors, but the counterpoint tended to be (also correctly) that something that can be done doesn't mean that we shouldn't try to make it easier. If having modern equipment and large screens helps someone learn or do even 5% faster, and that person is worth at least $10 / hour, the rate at which things like large screens pay themselves back is very rapid.
How is the statement idiotic? I'm a Mac user, and ever since Snow Leopard, Apple has been continually removing features for power users such as true two-dimensional workspaces support and excellent window management in favor of a Frankensteinian nightmare called Mission Control. Changing the OS' appearance requires hacking and reverse-engineering, and Apple has continued to put in consumer-friendly features that are useless for a power user. Launchpad is ridiculous. The iOS apps ported over are unnecessary bloat. The removal of Save As in favor of automatic versioning for those who don't know how to use Command-S drives many mad. The removal of scrollbars as default should be heresy.
Most of these things can be solved with preferences and a bunch of "defaults write"s, but it just solidifies the reasoning behind that statement.
Let's not even start with the hardware. Apple's decision to remove antiglare and high-res, 1:1 pixel panels (non-Retina) is egregious. The removal of upgradeability for the sake of 2mm in thickness has to be one of the most short-sighted and absurd decisions I've ever seen a company make.
So, he's right. With Mavericks, the trend seems to be changing, and I hope it does, but for now, I'll reserve my judgment until it releases officially.
What's also more depressing is that in an attempt to chase consumers, pro manufacturers are making the same awful hardware decisions Apple made, while alienating their true markets.
Don't believe me? Search Lenovo T440s. I won't bother calling it a ThinkPad, because it isn't one.
It's free and open source, and really makes it so much easier to manipulate windows, especially when you have several terminal windows open and want to organize them without using a multiplexer like tmux or screen.
>Given the popularity of Macs in the developer community
I haven't noticed this. I've noticed that popularity in the web developer community, but almost every non-web developer I've seen with a Mac has torn out OS X and put Linux or BSD on it.
I think that you may be vastly overestimating the number of web and mobile app developers. They're still a relatively small proportion of all software developers.
While web developers may be more vocal and have more content on the web (this isn't unexpected, since they are web developers, after all), you shouldn't forget about the numerous other developers out there. They're working on systems software, embedded software, industrial control software, accounting and billing software, various other kinds of business software, scientific software, and so forth.
These days, these kinds of developers generally use Windows or Linux systems, running on non-Mac PC hardware of some sort. And there are a whole lot of these developers.
It's a shame too because it's a complete mess in these other fields. And the open source community has been trying to fill in the gaps(quite well I might add). But again official documentation is still lagging. Which is understandable, these people have lives and they are doing it in their free time.
If you look at ARM and Microcontroller development, it's really a sad state of affairs. There isn't a single option officially ARM gives you to do Linux based application. Ironically the only software that is probably going to run on those embedded devices...Linux.
Honestly I wish they would scrap their horrible pathetic excuse for a development environment, and listen to the community who actually you know buy their devices.
Case in point. Try to compare the horridness of the Official STM32 libraries with libopencm3, which is amazing and incredibly simple.
> I think that you may be vastly overestimating the number of web and mobile app developers. They're still a relatively small proportion of all software developers.
Do you think? I'd be interested to see statistics on this (I'm not doubting you in saying that!). Being as web development (in my experience as a web developer and occasional software developer) is the entry level for software development, I'd have thought web developers easily make up the majority of overall software developers. Everyone is a PHP developer these days, it seems.
Perhaps you're right though (having just read your second paragraph).
I meant it to be a counter to your point; web developers don't really need access to their own systems, so the fact that they have a monoculture of Macs doesn't speak to the access that OS X allows you to have.
edit: and to be really frank, what web developers do for a living is write software that they eventually intend to deploy on Linux.
I'm currently running Archlinux on a Macbook air. The instructions in that wiki article were rather confusing. I had to fiddle around quite a bit to get the EFI boot manager to work. The wireless driver is shit cause the MBA uses a Broadcom card. The version in the latest stable kernel actually segfaults and crashes the OS when you try to use a WPA2 network. Also, I still can't get the audio capture to work in ALSA.
In general, there is very little to reason to buy a Macbook if you want a capable Linux laptop. I only have an MBA because my company gave it to me. Better to buy a similarly-priced Thinkpad and use that.
Yeah, I've had plenty of problems with that in the past. I'm currently using an older version of the kernel. Apparently, the problem has been fixed in 3.11 (currently in rc). I'll just wait until that becomes stable before upgrading.
Does OS X even let you turn off an external monitor yet? (Via a control panel setting or other software driven interface?) In Linux and Windows I can use the OS to turn it off. The Mac forces me to unplug the monitor or power it off manually.
Didn't OS X users just get the ability to resize windows by any edge or corner? They only had to wait 10 years for that wonderful feature.
How about being able to properly replace the Dock? You can't, because Apple does not allow non-Apple programs to affect NSScreen visibleFrame.
Maybe you can tell us how much Finder can be controlled versus the file browsers in Windows or say Gnome/KDE? Wait, nope - turns out it's sorely lacking in extendability hooks.
Furthermore - OS X has shitty package management and limits what you can do with your terminal as well because you cannot replace certain packages without breaking your entire system - http://cloudhead.io/2011/04/18/why-osx-doesnt-cut-it/
So, no...OS X is not as maleable as other operating systems.
Come on, we can do better than that. This is not to besmirch Apple or any silliness like that, my comment here is about this view point.
The "de facto standard?" This view is probably common among programming hipsters but its hard to take seriously. There is a world out there besides Apple and RoR that is not just enterprise slog ...
As far as the $80 machine ... I mean ok ... If you are on a serious budget but ... If you are a technologist, I don't see the point. But it is cool to note that for those of us that need it, there are good machines at economical prices.
But if we all want to be serious programmers, can we move on from this hipster phase? The funny thing is the Apple is 100% not in line with supposed precepts taken as "de facto" in the hipster community (open source, over preoccupation with github, standards, open, portable, etc)
Certainly not, but people that hold onto these kind of views are ... It's hard to deny the existence of this "culture" that has popped up that seems to dominate the conversations.
Saying that if you use a Mac, you're obviously a hipster is just fucking stupid.
MacBooks are good laptops. I like them. Using and liking a MacBook doesn't make you a hipster, nor does it make you any less of a "serious programmer".
The trackpoint is like Vim. At first you find it inconvenient and you try to avoid it.
Once you learn it and start being proficient in using the trackpoint you start noticing how efficient it becomes, no need to move you hands of the keyboard in order to quickly navigate the cursor, after which you quickly return to typing.
Now you have gotten used to the trackpoint and using another machine without a trackpoint gives you that 'I want to navigate the red cap' feeling, which is the same as being in a non Vim text editor and stopping yourself from using the hjkl keys from navigating.
Yes switching workspaces is such a pain on OSX... come on, you just swipe with your fingers. Sure you can do pretty much the same on any linux distro, but that doesn't mean it is not 'seamless' in OSX.
We can all agree that windows is just not suited for Rails development, but whatever floats your boat is fine of course. I like crunchbang linux a lot, it is very fast and makes you feel smart. But when it comes to something I have to make my living on, I'd rather go with something that is 1. stable 2. has a solid support in terms of applications (photoshop, sketch, etc) actually begin built for it. And, for now, that means I'd rather work in OSX and on a Mac.
Am I getting whooshed here? You can definitely have multiple workspaces (with multiple windows in each - not just fullscreen apps) and switch between them by swiping...
Why oh why would "The de facto standard platform for web development is the Macbook"?
Web is browser interpreted, last time I checked safari was not the most used browser (even it it has port for windows)
http://www.w3schools.com/browsers/browsers_stats.asp
"especially among Ruby on Rails developers"
why? is there any feature tied to the macosx that makes it worth to pay the mac tax??? or even to the hardware (that it's a wintel platform (and can be have for way less money) since apple decided to abandon IBM cpus?)
On the other hand I'm happy to discover I'm not the only one loving thinkpad hardware, even if I can't find a difference between the IBM and lenovo interpretations...
To me the most important factor for developing on a laptop mentioned in the article is the use of a tiling window manager.
For me an incredibly common task in web development is to have a web browser and 1 or more terminal windows tiled horizontally, side by side, in an [ A | B ] or [ A | [ B | C ]] configuration, where A is a web browser, and B and C are terminals.
In order for this to work for me on a screen resolution <= 1920x1080, the ratio ( width of A ) / ( width of screen ) should be dynamically adjustable using a single key combo, without causing window overlapping. If this ratio is fixed, and cannot be dynamically adjusted by the window manager, I experience one or more of the following problems at any given moment:
1. the web browser window is too narrow, causing wide documents to be clipped and a horizontal scroll bar to appear.
2. A terminal window is wider than 80 characters, causing unnecessary screen area to be consumed which could be better allocated toward the web browser.
3. A terminal window is less than 80 characters in width, preventing the entire line of code from being displayed.
To me Linux is the ideal laptop OS because it's the easiest OS to install a tiling window manager on, and a tiling window manager is what maximizes the platform's primary constraint: small screen area.
Tiling window managers don't maximize the use of small screen area; they ensure you'll almost always be using a fraction of the screen instead of the full screen.
Overlapping windows are the thing that maximized the use of a small screen, because they let you dedicate as much or as little of the screen to any given application when its window is on top.
What you are after, rather, is an efficient way of having the entirety of the windows of multiple apps on screen simultaneously. That's a slightly different problem. I personally get by with a combination of cascaded windows[1] and maximized windows with quick keyboard window switching.
[1] When you cascade windows such that the bottom left corner of each window forms a diagonal line across the bottom left edge of the screen, you can quickly select whatever window you want with a mouse, usually more efficiently than with a task bar, since the application identity is far more obvious when you can see a rectangle of its contents. And with choice of where each window is in the cascade order, you can get usable data out of multiple windows simultaneously.
I have found cascading to be an unhappy medium in the past. In awesome-wm, I'll tap [Win+Space] to toggle between 100% overlapped (fullscreen with unoccluded task bar) and 0% overlapped (multi-column horizontal). [Win+J] and [Win+K] cycle windows. [Win+H] and [Win+L] resize the width of the primary column in a multicolumn layout.
So let's say I have a terminal window with VIM, and a web browser with a tutorial or documentation open up to the left of it. I quickly need to scroll the web page down to continue the example, BUT the VIM window is currently focused. Assuming the web browser can be scrolled using [J] and [K], I'll simply tap [Win-K, J, Win-J] to accomplish this task while avoiding modifying the layout or leaving the home row to use a pointing device. If I don't actually need to display multiple columns at the same time, I just press the change layout key to stop using a multicolumn layout.
So as a VIM user I've been very happy with this setup in awesome-wm for the past 2+ years, but if you wish to recommend an alternative I will definitely give it an install.
edit: I was able to write a new layout function for awesome-wm which implements diagonal cascading in the manner you described and retains my keybindings. I definitely agree that cascading makes it bluntly obvious which window is the currently focused one. I'll have to play around with it more.
In a multi column layout, I might wish to alter the width of the web browser in the primary column somewhere between 30% to 68%, in 2% increments, by simply tapping [Win+L] to increase its width, or [Win+H] to decrease its width, without worrying about whether it is the focused window, and without worrying about having to focus or adjust any other window after the keystroke was made to prevent overlapping.
If you want a layout where a web browser takes up 60% of the width, and two terminals take up 20% of the width, it becomes not only possible but relatively easy.
I had the same thought, and use my Mac similarly. Full screen Chrome w/Vimium, iTerm2 and Vim is basically all I need running most of the time. Even ditched Evernote for a simple setup using Dropbox so my hands almost never leave the keyboard.
> The T42’s touchpad is hardly usable for productivity. Disappointingly, so is the iconic red nub.
I agree the touchpad leaves much to be desired, but I've found the nub to be fantastic. With one index finger on the nub, and two thumbs on the mouse buttons, my hands never leave the keyboard.
The T42 was a really solid pre-Lenovo ThinkPad that had significant mindshare among tech nerds when I arrived at MIT. It was my machine in college and the keyboard was amazing. I'd probably still be using it if one of the fans hadn't died around year 4. Pretty as Macs are, and awesome as the glass touchpad is, I still miss that ThinkPad keyboard.
Its pretty silly how it doesn't boot if the fan fails, I turn the fan off because its making weird noises, but the laptop still runs fine, although I try to keep the temperature below 90 degrees C, I think it automatically declocks at higher temperatures anyway. Also you can buy replacement fans on ebay if you have time to tinker.
Lenovo made the T42 too, they were just the silent manufacturer at the time with IBM putting on the branding. I'm not sure of the distribution between IBM and Lenovo for the design and QA aspects, but IBM definitely controlled much of that too.
idk about the T42, but sometime between the T22 and the T60, things definitely went downhill. So between that and anything newer only having a shortscreen, I recently opted to upgrade to a T61 that I should be able to keep going for quite some time.
Sometimes it's fun to see what you can do with older hardware. I got an old HP Laptop for free (DV6409US) and decided to turn it into my 2nd Laptop for Startup Weekend / Hackathon events. I put in 4GB of Ram for $60 and installed Windows, Linux, and OSX just for the hell of it. The Windows Install is Windows 8 (ala Bizspark) and currently runs a BitNami DjangoStack with Aptana Studio 3 and Notepad++ (Web Dev), as well as the free Visual Studio 2013 Dev Suite (just messing with that for now). The Linux install is Ubuntu Desktop 12.0.4 LTS and I use it for Design with Gimp and Inkscape. The OSX install is an older osx86 release of 10.5.2 (Leopard) and that was just more for fun, not really used for Dev or any work because it's such an old version and will not run any recent versions of Xcode. The only real problems I had were with WIFI and USB Support on the Linux / OSX front (but I got those fixed). I use a ThumbDrive as my Code / Graphics Repository and just boot between OS's depending on what part of the project I'm on. With this $60 Frankenstien I can actually build some pretty good stuff.
You shouldn't be looking for bargains for your developer hardware. You should pay for what you want, not just for what you need. You spend a lot of time using this for your daily tasks, and it's worth it.
buying an old ibm thinkpad (to install linux) is hacker mindset.
buying a windows laptop is consumer mindset.
buying a macbook (in the case of an end-user) is consumer mindset.
buying a macbook (in the case of a developer -- for the reason that is *nix based) is the consumeristic hacker mindset.
i can see how someone buying a macbook sees themself as getting the best of both worlds.
ofcourse macbooks are more popular than vintage thinkpads in our "developer" culture.
a parallel: there is more pop than anti-pop in the music industry.
Why does everyone always have to get what they want and not just what they need? I might want a $50,000 car, but I don't need it - this is just sad that people feel they should just always get what they want every time. I applaud the guy for realizing he didn't need to spend $1000.
Unless you make money driving, then that's a false comparison. While I don't think "want" is completely necessary, there's merit to the point that if you are making money off the machine and use it daily, it's worth spending some extra money to get something you want. That may be an $80 Thinkpad, but it may also be a $1500 MacBook.
If you were a taxi driver, and cars lasted roughly the same amount of time regardless of how many miles they were driven, then you would splurge on a very nice car if you could afford it.
I would jump ship immediately to Linux full-time if someone developed a really good alternative to Photoshop. Something that's cross platform compatible. You have a PSD file? You can open it with GIMP (as an example). Oh you have a GIMP file? You can open that with Photoshop.
Right now, I have way too many people who deal with Adobe and for some stupid reason, Adobe continues to think Linux users are freeloaders who won't pay for the software, so they don't develop a Linux version.
I little development work I have done on Linux has been a breeze. I still hold out hope some company will start to compete with Adobe and give us an opportunity to get away from them and MS once and for all.
I don't think their reason for not developing a Linux version of Photoshop is "they're all freeloaders who won't buy the software". It's more likely "the number of people exclusively using Linux and want a version of Photoshop for their chosen OS is not high enough to justify the development costs."
A Thinkpad T42 is not in the same realm as a Macbook Air. That being said, a working dev setup for $80 is pretty cool. Even still, I've gone from doing full gentoo installs from scratch to Ubuntu, Windows, Mac, and lots inbetween and for my time and my effort, I'd rather just use a Mac.
I'll pay for a well designed, reliable computer, so that I can do my job and get paid very well for it. Not having to muck around with Linux settings, drivers, config, etc. means I spend more time writing code and billing time (if it's client work).
If your time is worth anything, you probably aren't saving anything by going super cheap with your tools.
I haven't ever had to mess with drivers with Mint and my x230. I did spend time to set up i3 and configure it to suit my workflow. I view these as "sharpening the axe" types of activites, and don't really understand why I see so many people saying they don't want to spend any time at all customizing the device they regularly use for 10+ hours a day.
The only thing to miss about osx over linux is the font rendering, but I'll trade that for a tiling window manager and a proper package manager any day.
+1 for mint. I had been using Ubuntu since ~2006. Got annoyed with the direction they are taking. Installed Linux Mint. Didn't even have to install or configure anything for my wireless mouse/keyboard. Literally zero configuration, except for setting my preferences. I don't really understand the prevalence of Macbooks in web development. It's awesome hardware, but it's expensive. As far as software, there is nothing I am missing.
I had a low-end travel laptop that turned into my main laptop for three years when my previous laptop died.
This $80 setup sounds cheap until you realize you're paying the real cost with your time.
You'll pay the toll every time you:
- Have more than a few browser tabs open, god forbid you plan on running Youtube in one of them.
- Want to quickly open Firebug.
- `rails server` or `rake test`.
- Run out of 512mb after opening two apps.
- Decide which tabs/apps to close to free up some resources.
But those aren't even the best examples since the reality is that it's nickel and diming your time in a way you won't realize until you finally get a machine that liberates you from all the waiting.
I think this is very true for the consumer-web (and therefore also web development), but not if you're purely using ancient unix tools that were fast on ancient hardware. They are incredibly fast on modern "low-end" hardware. Git is of this school.
But to undermine my own point... can you really escape the consumer-web? Sites like github are JS heavy and very slow on old hardware. And, in practice, you'll want to use a PC for consumer tasks, like buying stuff, researching it, reading news, watching videos etc.
Maybe it's worthwhile buying a special-purpose consumer-web device - a tablet? It's optimised for the web; and the web is optimising for it.
But at the end of the day your minimal ancient-unix hackerbook loses its luster when your computer chokes trying to open a Youtube link your friend sends you over your CLI jabber client stitched together with Awk no matter how much you hate the "consumer web". Sucks when you can't even take a moment to appreciate some Bruce Springsteen together with your IRC channel.
Also, as a Rails and Clojure developer, I'm just trying to keep up with the boot time of my dev tools. ;)
Replace the red "trackpoint" with the concave variety on eBay. It becomes incredibly ergonomic (the concave version let's you use a fraction of the pressure with greater accuracy).
I love it! Same approach I take, but even cheaper!
I use a Lenovo T410, which you can readily acquire on Craigslist used/refurbished for ~$250. Comes with an i5 processor, 4 GB of RAM, and the HD can easily be upgraded. (I threw a cheap SSD in there for local DB issues.)
I'd love to use an even older Thinkpad, but since I do some local testing of machine learning / CPU-bound processes, an i5-series processor is probably the floor given the complexity of the models I run.
Regardless, I still love a huge PC battlestation at home (incredibly cheap for the power) and a cheap laptop that is no-frills but gets plenty of processing power for 99.9% of applications. Never really caught on to the Mac craze, even when I got free Macbook Pro Retinas from my last employer when they were first out - a sticker price of ~$4,000! Jeez!
I wrote Rails for a startup this summer, and had access to my own T60 and a MBP they gave me (I also did iOS, so it was necessary). I worked on both, but definitely preferred the Thinkpad.
I run Crunchbang, so everything ran perfectly fast (even Chrome), and there are a ton of things I preferred:
* Using a 2D grid of workspaces (as described in the OP)
* The 1400x1050 screen--my Vim fits much better in a 4:3 screen than a 16:10 one.
* Sane package management (apt-get > brew)
* The trackpoint, which for me works great.
* Sane and configurable window management.
* Various Linux niceties, such as middle-click paste.
Tiling window managers (i3) and the trackpoint are two things I don't think I can ever give up. I think I'm basically going to be on thinkpads for life, or at least until other companies start adding trackpoints to their laptops.
I feel like I did my best work when I got up from the keyboard and walked around the office, maybe got some cookies, and thought of the big simplifying idea. And sure, I have no problem banging good ideas into a commodity PC running Linux. That is my preference, actually. They are simple and easily replaceable.
Addendum - adding it up, I think I spent about 15 or 20 thousand USD on various Macs from 1984 to 2000. Part of my experience might be "premium fatigue."
I had a T40 and used it for web development work. As soon as I could afford it, I bought an MBP. I love Linux, but OSX gives me everything great about Unix and none of the bad stuff. At first I hated that I couldn't use Scribes, but then I discovered Sublime Text. The MBP is a much better machine all around. If you're doing web work, you should be able to afford one. If not, you should probably re-examine your business practices.
The Thinkpad 701 series needs to be brought back somehow. It was ahead of it's time, including the butterfly keyboard. The T42 was my next step and probably most productive during it's time. The only thing we need to do is apply today's battery technology to those older laptops and call it a day ...
But then you might code up a cruise missle, or even worse a industry killing app. we cant have that. its best if you let all major corporations vet your content from now on. you can Trust them.
I agree with the price concern around Macs. That's why I let my employer buy one for me and take it home for night/weekend hacking. A $3000 investment by my employer pays for itself in terms of my productivity increase in what, two months? Win-win. One feature I'll never go without again? SSD.
This is very true - I just returned a new macbook air because its overall speed and display quality paled to my x31 running Arch. Not to say the same is true for the Macbook Pros, although again, you're looking at a pretty major price difference.
Battery life is where the real improvement has been over the past few years.
I've been using a T60 since 2006. Still runs like a champ, but I recently bought another one NOS for $99 on eBay. Love the look on people's face when I bust it out at SF coffee shops
I started with a ububtu box (ubuntu 10) in a crappy laptop. And was very usable and fun. Loved vim and gnome 2. But some times the system went a little buggy and with a bit of effort i bought a MB unibody(the first model) since then i use osx. More than once i had to jump to linux and its fine. But every time i had to use eindows i cand stand it. A couple of years ago i was diagnosef with LHON and started to lost my sight .( not completely and now im recivering it) and ctrl+scroll with inertia zoom integrated into te system had keepeeng me still in the game of development. A similar tool also is integrated in the iphone.
It's missing basic interface features that have been bog standard in Ubuntu/Windows for years, like any sort of proper window management. Hell, the maximize button actually doesn't work- it has such inconsistent use that you have almost no hope of actually getting what you want out of it. To get even decent window management, you have to buy software off of the app store.
Then, you have the fact taht you still functionally have a folder-based OS, which feels a greater need to present me with buttons to alter the view of a given folder, how icons are arranged, etc- all useful things no doubt, but things you don't change on a per-folder basis that often- while literally not having an "up one level" button. At all. You either have to know the keyboard shortcut, or you have to go to the Go menu. The back button isn't always dependable for this interaction(especially if the finder was just opened), so of course this just screws the whole pooch.
Seriously, the most I can get anyone to offer as to what makes OS X such a great operating system, is that it's Unix with no driver problems. If that's the most we can claim, can we stop acting like the interface design is halfway decent? Windows Vista had better interface design than this. That's just sad.