Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Cross-platform apps isn't really the point though. It's about openness. Native Android, for example, is Java. Java tools are plentiful and open source. Android dev tools work on Macs, Windows, Linux. Google also invests heavily in Chrome allowing for robust apps that don't require an app install at all.

Compare that to Apple who rule the App Store with an iron fist. The don't allow native Chrome at all requiring instead that Google deploy a reskinned Safari. You can't deploy an app to a phone that you own unless you also own a Mac workstation running OS X and pay Apple $100/year for the privilege of using the very expensive hardware you bought from them. They built Swift, they built Xcode. It's total vertical integration and it's all managed at the pleasure of their bottom line.



> and it’s all managed at the pleasure of their bottom line.

As if Android’s come-one come-all is done out of benevolence. Google doesn’t have a heart, it had a bottom line too, and supporting those tools makes dollars come its way.

Google HAD an opportunity to ensure that one browser engine ruled the web—-but they chose to fork WebKit into Blink, in part _because_ they didn’t want to share the work they were doing. It propped up competitors. Google would rather have a competitive—-read, monetary—-advantage than ensure web technology is widely available for all to use.

For example, when Google refused to share the multi-process mode that differentiated Chrome from other browsers, it was a compelling enough security feature that Apple/WebKit reimplemented it independently so that everyone using WebKit could have it.

Google proceeded to cry crocodile tears, and then promptly forked the WebKit codebase into Blink. They claimed it was necessary to avoid having to carry around two multi-process models, but it was a A PROBLEM OF THEIR OWN MAKING.

So don’t imply Apple is profiteering, as if other companies are trying to give you hugs. Everybody’s finding cash in the ways that play to their strengths.

If Google was really interested in pushing the web forward, they’d swallow their pride, take the bottom line hit, and merge Blink back into WebKit.


> Google HAD an opportunity to ensure that one browser engine ruled the web—-but they chose to fork WebKit into Blink, in part _because_ they didn’t want to share the work they were doing.

Apple had the same choice when it forked KHTML to produce Webkit.


KHTML wasn’t anywhere near the same position as WebKit when Apple forked it. At the time, KHTML was niche beyond its use in KDE.

When Google forked WebKit, Safari and Chrome combined were something like 40% of the market.


so?

Chrome was clearly the leader. Apple should have moved to their fork then if anything.


> but they chose to fork WebKit into Blink, in part _because_ they didn’t want to share the work they were doing

I believe that statement is false. As I understand it, from @tomalsky, Google simply had a different (superior) design for making WebKit multi-process, and Apple did NOT want to take those changes upstream into WebKit. So if Google wanted to use the better design, they had to fork.


According to this link:

https://www.osnews.com/story/23133/apple-drops-webkit-2-code...

Large parts of Chrome’s multi-process model were specific to Chrome, and not part into WebKit. Apple built “WebKit 2”, which integrated into WebKit at a higher level and allowed anyone using WebKit to get multi-process as a native part of the code base.

Three years later, Google forked Blink. According to this link:

https://techcrunch.com/2013/04/03/google-forks-webkit-and-la...

“Specifically, [Google Engineering VP Alex] Komoroske noted, Chromium’s multi-process architecture is very different from the rest of WebKit (Chromium is the open-source project behind Chrome and Chrome OS). Having to integrate Google’s way of doing things with WebKit and what the rest of the WebKit partners were doing was “slowing everybody down,” Komoroske said.”

So, basically, Google built a version which was partially proprietary; Apple came in and built a completely open source version; and rather than standardize on a single code base, Google bailed, claiming it was too difficult to continue supporting two different multi-process models.

In the end, rather than collaborate, Google chose to keep their product proprietary and create a forked code base instead of doing the right, but admittedly difficult, thing and adopting the true open source option.


Google shipped their multi-process implementation years before Apple’s huge re-architecture of WebKit (which many forget now but lead to incredibly buggy behavior for years too).

They were able to ship earlier, and arguably at all, precisely because they just made separate processes that each had WebKit in them instead of doing a major change inside of WebKit. Had they tried to do the latter, the fork would have just happened sooner since everyone would have screamed that they were trying to completely change WebKit as complete newcomers: don’t forget, this was the major feature they shipped Chrome with. I’m personally happy that they set the standard that everyone then followed back in 2008 as opposed to having their initial foray into the browser space be some big RFC to change WebKit.

Having worked with it at the time, I was initially skeptical too. However, after working in the code, it definitely felt more natural to have the processes around WebKit instead of inside WebKit (as would be the case with most libraries). Ultimately, Apple’s approach took longer and lead to a big API-incompatible change (A “fork” level change arguably, but when it’s your own repo it’s not a fork, it’s just “2 point 0”). Not saying that’s bad, but Google's goal was to ship Chrome in 2008 and not have some huge incompatible diff with WebKit. Both made decisions appropriate to them, and in the end, gasp, we got two cool multi-process implementations, what a failure story for open source!


This whole storm about macOS. Which is an extremely open platform. You can develop apps with amazing tools by Apple or you can do C, C++, Ruby, Java, Electron you name it. You don’t even have to pay anyone money to build an app and share it.

There are a lot of misconceptions in this thread and claiming that macOS is not open is really the biggest IMO.


The OP is literally about Apple locking down a Mac API.


But only for App Store apps.

The platform is still wide open for non-App-Store development.


I don't get it. You can deploy apps when you pay both Google and Apple or you can work without a paid subscription if you are just a developer dabbling at home.

The vertical integration is true but that also has been the case with Microsoft products. Google basically doesn't have it's own desktop platform until pretty recently, of course their tools ran on other desktop platforms otherwise they wouldn't have any.

It's nice to install other browsers on Android though. Using Firefox wherever I can.


> You can't deploy an app to a phone that you own unless you also own a Mac workstation running OS X and pay Apple $100/year for the privilege of using the very expensive hardware you bought from them.

This hasn’t been true for a while now.


This strategy improves their bottom line because it enables products that users are more willing to spend money on.


If people want openness they can always buy Android. In fact most people do.

The whole point of different platforms is that they have different characteristics.

Openness is a characteristic of Android but not of Apple’s stores.

This means there will be limitations on what cross-platform software can do.


Is that correct? Is there a Mac App Store rule that says “thou shall use WebKit” ?

Do note that the point on macOS is kind of moot because it IS an open platform. Unlike iOS you do not have to use the App Store.


Yes. And it was crippled for a long while outside of Safari.

https://arstechnica.com/gadgets/2016/01/new-chrome-for-ios-i...


That's with regard to iOS, not the Mac App Store.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: