Saying Goodbye to Apple
benjaminthomas.org
benjaminthomas.org
Counterpoint in favor of Apple:
Contributions to an open web: Open source development of Webkit and now Webkit2, HTML5 Canvas, Adverserial stance towards Flash in favor of HTML5 [iPad, iPhone]
Contributions to open-source tools: LLVM and CLang, MacRuby support, launchd, Cocoa bindings from other languages [possibly phased out?]
Contributions to open-source operating systems: OpenDarwin http://www.opensource.apple.com/
Developer ease: Nice set of installed developer applications, Development environment based on standard opensource toolchain, Compiling command-line tools from Linux/BSDs is sane and easy, Compiling X11 dependent apps is possible
Multi-platform support: BootCamp, The only system capable of running the three major desktop operating systems easily and legally.
High quality, hackable GUI environment and applications: Cocoa applications are generally built to a far higher standard than Linux GUI applications IMO, Cocoa applications are imminently hackable (see SIMBL)
Hardware innovation and quality: Forward thinking innovation in hardware: Mac Air, for example, gets rid of even ethernet!, MacBook Pro line widely acknowledged as top-tier development machine
[Disclosure: I have no stake in Apple.]
I was originally thinking of not buying Apple products because of the iPad announcement and the broad moral qualms I have about open systems. But then I realized that the moral importance of abusing other human beings, animals and ecosystems outweighed the moral importance of open/closed technology platforms.
Documentation? Especially, consideration recent revelations about abuse of Chinese workers at an Apple subcontractor.
http://www.tgdaily.com/consumer-electronics-opinion/43340-ip...
Apple sometimes stopping the use of child on their own shows that they are better than the very worst they could be. It doesn't show they are better than their competitors. Since none of these companies is allowing any independent verification of good or bad behavior, a few press release don't matter either way.
See link to Apple child labor use: http://www.smh.com.au/digital-life/mobiles/apple-admits-usin...
Right, but that child labor was discovered as a result of an Apple audit: http://www.dailyfinance.com/story/company-news/apple-reports...
clarification: referring to Mobile Safari's lack of plugins
WebKit on OS X has a native Obj-C plugin system: http://developer.apple.com/mac/library/documentation/Interne...
If you want to add VP8 or Theora support in <video> to WebKit apps on OS X, just install a QuickTime decoder for them: http://xiph.org/quicktime/ — Want to add any codecs to Firefox? You're completely fucked, and have to fork the whole stack.
This is always true, but it also is always qualified by "of the audience they intend to reach". If you're trying to reach "everyone", then your lowest common denominator is still going to be some version if Internet Explorer for some time to come--even IE9 won't support some major parts of HTML5. Beyond that, you're implicitly excluding some set of potential users -- it's only a question of which. Targeting a plugin (or bleeding-edge standards) never gets you a bigger audience than standard web technologies, just a different audience.
(Flash is really the only historical example of a plugin becoming so ubiquitous that you could safely assume that you weren't excluding many by depending on it, but that is obviously changing back to the more typical state.)
What this should mean, I think, is that the bar for developing on plugin platforms is raised. The smaller the installed base, the more valuable the experience you have to deliver for it to be worth your while, and the user's. I think this is as it should be. The only developers who will choose to limit themselves so will be the ones that weren't really doing anything that necessitated the plugin in the first place.
Don't like that Apple has chosen H.264 over VP8 or Theora?
If you don't like that, you probably aren't using Mobile Safari in the first place.
I don't know quite what you are getting at here? Are you suggesting that you can't install plugins to manage different kind of embeds with Safari? As this is just not true: Java, Flash, RealPlayer, QuickTime, Flip4Mac.... these are all plugins built as standard OSX internet plugins. If you want to develop your own go ahead.
I think what you are trying to get at is that you want things that are being natively handled by the browser to be optionally controlled via a plugin. The fragmented state that is what browsers have natively implemented is quite shocking but having everything optionally overridden by plugins would cause even more fragmentation and even more headaches.
I don't think this one should count. Apple intentionally blocks other hardware from running their OS, while will allow officially support for other OSes on their own hardware.
It's almost hypocritical if you ask me.
Building a good product doesn't mean you have to be a hypocritical bunch of assholes, building a good product means creating a compelling product that people want to use.
Partisan = strong commitment to an ideology. In this case open vs. closed.
Politics = the rules, methods and policies that dictate how a company runs internally and externally.
So the point is Apple uses open and closed source/platforms/standards on a case-by-case basis. Most of their products a hybrid of both. It's hard to be hypocritical if you don't commit. That doesn't preclude them from making bad choices for other reasons.
I understand what "partisan politics" is. I don't, however, understand the above. What makes something compelling? Hurricanes might be compelling to me, but that doesn't make them good.
So their contribution to open systems is being kind enough to only legally allow you to use their OS on their hardware?
He's just installing Ubuntu on his Apple laptop, that's all! And pretty soon he'll miss something from OSX and then -- dual boot. Next thing you know Apple does something nice again and the Ubuntu partition is just erased.
I experienced something similar when Apple wouldn't release Java 6 for OSX. I had a second partition with Ubuntu on it which I used for my Java 6 work and I was mad at Apple, but as soon as Apple released Java 6 I couldn't erase that partition fast enough !
Actually -- I didn't even wait for Apple to release Java 6. A smart guy (Landon Fuller) released a Java 6 openjdk port which was using X11 and it was enough for me to erase Ubuntu and use OSX instead. This is how much worse it was on Linux!
My number one gripe were the Linux fonts but there were many other issues.
I remember Ubuntu launched some nice project called "100 paper cuts" to fix those small but annoying bugs in Ubuntu. This is how using Linux feels after OSX: like bumping not into large issues but all these small points of friction that ruin your flow.
The lack of a package manager. Sure, I installed Macports, but it wasn't integrated in to the system, and there weren't ports of popular cost-free commercial applications like Skype.
No way to change the focus/raise model. I want a click inside a window to focus it, but not raise it. I want a click on the title bar or boarder to raise it.
It didn't properly detect when something was plugged in to the headphone jack (that may have been hardware).
Customization of the visual appearance is very limited. I want light on dark for most things. I really don't understand why it seems that most people prefer to stare at the equivalent of a light bulb.
I'm sure I could think of more. I'd expect OS X to be a nicer experience for most users, but it isn't for me.
In general also mac applications don't need a package manager. Download, drag application to Applications directory, done. If you want to get rid of it, delete it from there, it's gone. Updating, http://sparkle.andymatuschak.org/ is used in the vast majority of non-Apple software these days.
Focus/raise model yeah, there's no way to change it that I know of, and personally my biggest annoyance with OS X is the inability to change window management in general.
The headphone jack thing is almost certainly a problem with hardware, it works just fine on every Mac I own/have used.
You can invert the display to use white-on-black with Ctrl-Alt-Command-8, or via System Preferences -> Universal Access, though that's probably not exactly what you're looking for.
I knew about the display inversion. It is most certainly not what I want.
10.6 added a hidden preference to make Terminal.app do focus-follows-mouse, and that's good enough for me. A lot of keyboard shortcuts don't work correctly though, because they're dispatched through the menu bar.
Still, when I needed a new laptop, I purchased a recently-refreshed MacBook Pro. Though boycotting the company completely might have been more effective, I still think that my decision to get the MacBook over the iPad (or over nothing at all) sends a message that customers still appreciate the openness of the Mac platform.
And it is open - the author of the article talks about installing Linux on his MacBook. If the Mac line were not open, this wouldn't even be possible - just look at how little progress has been made on getting Linux/Android on the iPhone hardware. And on Mac OS X there's also a complete lack of an app review process - I can install any app no matter if it's interpreted or compiled, written in Objective-C or not, and whether or not Apple personally approves of it.
It's important to let Apple know what they're doing right in addition to admonishing them for what they're doing wrong.
Effective at what? Making you less productive?
They don't give a shit about whatever "message" you're trying to send them. No company actually listens to the histrionics of their customers like that, least of all Apple.
http://74.125.45.132/search?q=cache:xQAXZriYJusJ:benjamintho...
I think people who are opposed to patents could benefit from thinking about them in a different way. Instead of seeing them as "ownership of ideas" think of them as a bounty on ideas. The generation of new ideas benefits us all, so when somebody thinks up a new idea the government pays the inventor a bounty in the form of an exclusive right to make commercial use of that idea for a certain number of years. The great thing about paying it in the form of an exclusive right is that the value of the bounty automatically winds up being proportional to the value of the idea.
Now if you're a strict libertarian you can quite sensibly oppose the payment of bounties by the government, but if you're a more modest libertarian like myself or a non-libertarian then I think it starts to look pretty sensible.
Also, the patent shouldn't be on the idea, but on the exploitation of an idea. If a given entity makes more money from a patent by licensing it compared to actually using it, it's a pretty good sign that the society didn't benefit from the patent but actually granted a temporary monopoly on something and that's actually slowing down progress.
For example, having a touchscreen that makes things zoom by pinching. How else would anyone do that? It's trivial, obvious, and there actually isn't any other useful way you could do it.
I'm all for bounties on things that are actually difficult, but having ideas, and making software, isn't hard.
The problem with implementing stuff is that it's a lot harder to build something the first time than the second. It's easy to sit around in a chair and imagine the UI from Minority Report. It is a ton of work to actually design and build that interface, because for every feature and tweak you include in the final product you must test and discard dozens of others. (Unless your business is willing to produce poorly-designed crap, of course.)
Unfortunately, a designed product is much easier to copy than to produce in the first place, so every piece of R&D you do is also R&D for your competitors. The patent system tries to rectify this.
You complain that patents let people have an idea and then sit around charging others money. And this is true, but - importantly! - it is only true for the life of the patent, which is something like 14 or 17 years. That's the whole point. Once someone has has a brilliant idea they must either build it, or license someone else to build it, or within less than two decades the idea will be worthless. (You can also pray that nobody else has the same idea. This is usually a bad bet: ideas arise when their time is right, and lots of things are invented simultaneously by half a dozen people at once.)
In a world without patents, nobody has any incentive to be the first to implement anything bold - your competitors will freeload on your R&D and outcompete you. So you're reduced to tiny incremental improvements with low risk and obvious value (so that they can be sold immediately in high volume, to take advantage of the tiny time window when the innovation is exclusive to your product.)
The problem with software patents is not that patents are useless or don't work in general. It's that they don't work well for software, which has many degrees of freedom and is hard to understand. It's that the standards of review are broken; far too many obvious patents are issued. The adjudication is broken: by rubber-stamping patent applications and leaving it to courts to adjudicate them, the Patent Office turns IP into a shakedown racket where the team with the largest legal budget wins. And the whole idea is just too new. If software patents had existed in 1968 Doug Engelbart would have patented everything we use today, those patents would have expired in the eighties and we wouldn't be worried about them anymore.
I never suggested a world without patents, not at all. I certainly see the usefulness of patents for areas where you genuinely have to put in years of R&D, where problems are hard, etc. But software/UI certainly isn't an area like that.
If someone else thinks it's worth doing that work, that suggests there is a payoff to implementing it. If you are in the position to implement it, you probably stand more to gain from doing so yourself than hoping somebody stumbles into it.
If you're not in the position to implement, or perhaps not on the right scale, it's in your interests to license it to somebody who does or for them to buy you out. It would be pointless to just leave it unimplemented and unlicensed.
That isn't to say patent trolling hasn't worked for some--only that it's a bug and not a feature. It has more to do with bad patent grants than a lack of incentive.
...where problems are hard, etc. But software/UI certainly isn't an area like that.
Then why do so many do it so poorly?
Because IMHO you have to have a talent/practice at it. It's trivial for anyone skilled in the art.
Apple doesn't actually have a patent on pinch-to-zoom. But I'll play along anyway...
It's trivial, obvious, and there actually isn't any other useful way you could do it.
Bullshit. You're playing dumb--probably without even realizing it--but I think if you actually had to apply yourself to the problem you could think up dozens of alternative approaches. These are the ones you're pre-filtering with "useful" because you assume that they are all inherently worse, but a huge amount of that is left up to the actual execution. Is this hard? Yes. But that's why it's competition. If it were easy to think of better ideas and create better implementations than the competition, the competition would have already done it!
So let's try to think of some other ways to zoom with a touch screen other than pinch-to-zoom. For starters, the easy one: virtual button presses. Tap the plus to zoom in, the minus to zoom out. Ok, that's pretty lame, how about a zoom track along one side of the screen, and you just move your finger up and down it, or perform some action to select and move a marker object along it.
Ok, maybe that's too much motion...lets make it a kind of rocker switch where you can just swipe your finger a small distance from a center point to activate the zoom one way, or the opposite to zoom another way. That might be great if meant for thumbs, kind of like a hat switch on a joystick, but let's say we want something better for a larger surface, like a table. How about tap and hold to get a menu with a zoom option. Hmm, menus are lame. Let's make it a dial instead.
Ah, but that requires two motions, which might not be good, depending on the rest of our interface. Instead, how about we can just select and drag from an object corner, like any windowing interface, binding the zoom level to the scale of the object in a very natural fashion. That could work for some things, though maybe not a map unless you've got a very large screen.
Or maybe rather than treating our interface as simply a flat surface we lend it some depth and treat the scale of the object as distance from the screen. Then we can use any gesture or button we like to suggest getting nearer or farther from the object we're looking it. Say, a two finger swipe downward, to suggest "come here" or "pulling towards" and upwards to suggest "go away" or "pushing away". When the object gets so near that it fills the screen we can keep using that gesture to get "nearer" to the object, effectively zooming in on it without the user consciously even thinking of it as zooming.
Or hey, maybe we're overthinking this. What's the simplest thing you can do with a touch screen? Tap it, right? Maybe we could...tap once to zoom in, tap twice to zoom out?
I didn't say there weren't other ways to control zoom on a touch screen, but IMHO all of the ideas you suggest are inferior, and less obvious - less useful.
The obvious, intuitive one, is clearly pinch to zoom.
I suppose you could have a bureaucratic body which tries to determine the value of that idea and then pays a bounty in cash, but that sounds like a terrible idea in all sorts of ways.
Almost everyone is a "modest libertarian". They all want the govt to intervene in some areas, but not in some others.
Doesn't the GPL have quite a few rules too? I think using software with a BSD license would probably make more sense.
I've found Linux Mint to be comparable to OS X in power and ease of use. I even used it to set up a computer for a 5-year-old, and he took right to it without any training. Perhaps the meme that Linux is for hackers only should be put to rest.