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.
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.
If you only use Apple hardware, sure. Otherwise, it has the same driver issues as any OS.
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.
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)
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.
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.
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.
#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.
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.
And if you actually think that Ubuntu's woeful file manager is anyway comparable to OSX Finder then I really can't help you.
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)..
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.
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).
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.
Because it sells worldwide to people who describe the OS as being ergonomic and beautiful?
I wouldn't know, I seldom use it and so find it clumsy and strange.
kind of. it has the path button, does the same thing, though with two clicks :(
Let's just not get that far.
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.
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.
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...
> And problems I've solved in the past on Linux are still problems to this day on OS X.
Can you give me an example? I'm genuinely curious...
> This ignores people starting out, or in different locations.
Yet the author certainly could get a MBA, as he specifically references having one.
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".
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.
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.
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.
And let's be honest here: more and more developers are web/app developers.
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.
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.
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 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.
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).
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.
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.
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.
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.
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.
Or, to put it another way: Darwin and Linux today are far, far closer than either of them are to most UNIXes in existence.
This works just fine in Mountain Lion.
For example, I treat my Mac nearly the same way with a few pertinent replacements - Vim for editing, Slate for window management, etc.
You could likely do the same in Cygwin on a Windows box.
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.
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.
hacker mindest and consumer mindset.
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.
consumers.
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)
I didn't realize the entire web developer community was comprised of only "hipsters", whatever that word even means now.
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".
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.
Then again, nobody cares.
It's a webkit based browser, scriptable (or written with?) lua, along with vim style navigation (eg, ":open www.google.com" to go to google).
afaik, it's also available in the arch core (or extra possibly) repositorys, which means no fiddling about with the aur! (good news)
Note: AUR isn't really that bad, as long as you install a package manager that handles it (like yaourt).
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.
That being said, to each their own.
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.
"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?)
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.
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. ;)
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 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.
* A fantastic keyboard.
* Etcetera etcetera etcetera.
-- antiX 13 "base" with the Debian "stable" source list: http://antix.mepis.org/index.php?title=Main_Page
-- I3-WM as the window manager. Needs to be installed separately. http://i3wm.org/
-- Conkeror as the keyboard-driven browser: http://conkeror.org/FrontPage
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.
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.
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!
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."
Battery life is where the real improvement has been over the past few years.