The Case Against Marzipan

19 December 2018

When something sounds too good to be true, it most likely is.

Six months ago, Apple announced a new API, internally codenamed Marzipan. Its purpose: to make cross-platform development easier by allowing macOS apps to run on the same code base and general interface as their iOS counterparts. Only having to write one app for two operating systems would be a huge effort-saver for developers.

It sounded too good to be true, and it was.

macOS Mojave shipped with four native apps that Apple had ported over from iOS. These apps were clearly examples intended to incentivize third-party creators into using the new API. Sadly, they were terrible.

Specifically, here’s why they were and still are terrible, and why Marzipan as a whole is, likewise, terrible.

First, Marzipan is about quantity over quality. If the Mac App Store had been a thriving ecosystem in June, Apple would not have launched Marzipan. Unfortunately, it was anything but. The Mac App Store was ugly, dated, sparsely populated, and not the one-stop software shop it was supposed to be.

Marzipan is an attempt to revitalize Mac app development. For this purpose, Apple used a classic cost-benefit sales pitch: it reduced the cost and increased the benefit of making Mac apps. It did the latter by refreshing the Mac App Store to turn it into an attractive marketplace for developers. The way it did the former — reducing the cost — is where Apple screwed up.

The new app ecosystem ushered in by Marzipan inherently causes more developers to make more apps. The easier something is, the more people will do it. There’s nothing wrong with making coding easier; the problem is that Marzipan makes it easy to the point that the easily-made apps are simply bad. You can’t get around good design, but Marzipan tries to. When it launches publicly, Marzipan will bring a load of new apps, but with them it will bring a load of bad apps.

This is the story behind Marzipan. To get more apps on the Mac, Apple has lowered the standard of what a Mac app should be.

Okay, so what should a Mac app be? And what’s wrong with a world where easy app porting from iOS is the norm?

That brings us to the second point against Marzipan: Cursors and touch are not compatible. Windows 10 proves this on a systemwide level; Apple’s own apps prove it on an application level. First, let’s look at the more theoretical and philosophical side of this discussion.

Obviously, iOS is designed for touch and macOS is designed for cursors. Touch interfaces — good touch interfaces, anyway — have a major characteristic that sets them apart from mouse interfaces: tap targets are much larger than click targets. This website is an example. It’s designed to make text bigger when it’s viewed on mobile displays; if the scaling were the same for iPhones as for Macs, it would look ugly and you would hate it. (You’re welcome.) This is how all well-made websites work. It’s also how all well-made apps work.

Mice are more precise than fingers. That’s why macOS can have those cute and tiny stoplight buttons in the top-left corner of every window. If you tried to tap one with a finger, you might hit the wrong one. With a mouse, you can click them much more easily. The same goes for dropdown selections from the menu bar. And for a million other things. To sum it up, touch interfaces have to be more spread-out than cursor interfaces, and cursor interfaces can be much more dense than touch interfaces.

Touch and cursors are diametrically opposed interface design paradigms. To prioritize one is to compromise the other. Clearly it would be a mistake to put macOS on the iPhone, or to put iOS on the Mac. You would end up with an interface that was either too dense or too spread-out for the hardware it ran on. If it’s bad for operating systems to cross the boundaries of platforms, why does anyone think it will be good for apps to? They play by the same rules as anything else.

Broadly speaking, the issue with app porting is that touch interfaces will look, feel, and work wrong when they run on a Mac. Some developers are going to do more Mac-specific optimization than Apple has, but the majority of them won’t if they don’t have to. And Apple is saying they don’t have to.

iOS app porting inherently creates bad Mac apps. But that’s not all. Apple has set the bar low for developers. The message it’s sending is not that Marzipan is the first stage of the process, that some cleanup will be required post-porting. Based on what Apple itself has done, it thinks Marzipan is all that’s needed for a good Mac app.

But Marzipan apps are not Mac apps: they are, quite literally, iOS apps that have been scaled up. That’s it.

Here are a few specific problems with the first-party Marzipan apps (with News and Stocks being the focus, as Uluroo has used them the most extensively):

• There is so much dead space. If you’re using a large external monitor, open up Stocks and take it to full-screen. The sides of your display will be untouched save for the sidebar. The use of screen real estate is completely uninventive.

• Drag and drop is very wrong; instead of picking up a little bubble, as with a Safari link, it moves the entire News story tile.

• News requires that you use the “pull to refresh” gesture. With a mouse, this is utterly ridiculous.

• Barely anything changes in News when the system’s dark mode is enabled.

• There is no easy way to go back.

• Right-clicking, which should provide access to things such as saving stories, has two contextual options: Copy Link (a News link, not a Safari link) and Share.

Those are just some issues Uluroo noticed when he explored the apps between still-frequent crashes. Many people are dismissing the apps’ weaknesses by saying that they’re still essentially in beta, but they’re not: they shipped with macOS Mojave three months ago and have not been significantly improved since. And these aren’t just bugs, they’re choices — Apple has made a design decision not to differentiate macOS apps from their previously iOS versions.

If Apple considered these apps fit for public release, why should we expect them to undergo a drastic change of mind? Apple won’t turn around and fix these apps because they don’t think the apps need fixing. To Apple, Marzipan is the future of software; this is what the Mac is now. Apple is content to treat the Mac as a scaled-up iOS device. That is exactly what the Mac is not.

Apple should be setting the example for third-party developers. When it’s not making good software, developers shouldn’t be expected to. Apple is the root of the problem here; its apps, the shining beacon that attracts developers to this new API, are so bad it’s not even funny.

A common objection to complaints about Marzipan is that it’s better than the alternatives. It’s true that real, finely-crafted Mac apps are a dying breed. It’s also true that most people are probably going to be fine with Marzipan apps when third-party developers start shipping them. And, of course, something is better than nothing, right? Any native app at all is better than a website in most cases.

A concise response: so what?

Apple should not settle for acceptable. Since when is “good enough” good enough for Apple? Mac software should be great, not bearable. Sure, Marzipan is better than the worst of the worst, but that’s a low bar to clear. Real Mac apps are even better. They, nothing less, are what the Mac needs. First-class software has always been one of the Mac’s greatest strengths. Compromising that so heavily, just to lend the Mac more traction as a development platform, is not worth the tradeoff.

Designing cross-platform software is like trying to build a house on two foundations. In the case of iOS and macOS, these foundations are on such different levels that it’s laughable to think a building could stand on both at once. Touch interfaces, the foundation of iOS, are fundamentally opposed to mouse interfaces, the foundation of macOS. This isn’t to say that one is better than the other — but they both work better when they stand alone.

Apple is still a long way off from merging iOS and macOS, but the same arguments behind Marzipan also support a unified operating system. It’s obvious that a single Apple OS is a terrible, terrible idea — why is it any less obvious that a single version of an app is just as bad? If you don’t think Apple should merge its platforms, you shouldn’t think developers should merge their apps, for the exact same reasons.

macOS needs different design paradigms than iOS does. With Marzipan, Apple is proclaiming to the software development world that these paradigms have merged, that it’s fine to slap a touch-first interface on a mouse-first device. But that is not fine. Even if it’s acceptable to many users, that doesn’t mean it’s good.

The Mac needs Mac apps, not iOS apps. Marzipan apps are not Mac apps, they’re iOS apps. This is not a bug; this will not be fixed. This is a decision by Apple to ignore what makes Mac software great and to treat its most robust platform as a scaled-up edition of the iPhone.

Marzipan is the antithesis of the Mac. It is a slow venom that, if it spreads far enough, will kill everything that makes the Mac worth having. At this point, it seems unlikely that Apple will administer the antidote and give Marzipan the axe. But that’s what needs to happen.