Safari Vs Chrome iOS JavaScript Benchmark
pastebin.com
pastebin.com
I'm pretty sure Apple is leaving this as it is on purpose so Javascript apps don't start to compete on performance with ObjectiveC apps, and the security excuse they give is just the lazy one to get them off the hook, just like Microsoft is saying "WebGL poses security issues, so we won't even try to add it".
Well guess what. A lot of stuff poses security issues. But you have to balance that out with the features and usability you want to give to the user, and if there are some good and "logical" features you could add like setting other browsers as default, or letting UIWebView apps be as fast as web apps in Safari, then you just have to add them and make sure the security is as tight as possible. Add a sandbox if necessary and so on. Don't take the easy way out.
Just imagine if Microsoft had done the same starting with Windows 3.1. How much innovation would it have killed?
I recently tried using Adobe AIR to make something, but unlike C# the AIR API is severely sandboxed and limited that even simple things like GetDC or CreateShortcut are just near impossible to implement. End result is I never really completed my app.. something which would have taken me an hour at most to do in C#.
This new trend of technology where everything is being sandboxed and scrutinized for approval in the name of security is really very sad for hacker culture.
So I think you have the volume turned to 11 on the idea of it killing innovation.
For example: The most important app for me is iBlacklist for iPhone. It prevents nearly 20 spam text messages for me daily, which directly translates into less annoyance and added productivity daily. Yet, Apple will never approve this app for general public.
Same for Microsoft's on{x}, which is a genius innovation imo but because of the recent inane app store policies trend, even Microsoft had to release it for Android only.
I'm not sure I buy the premise here. UIWebView is a class to help developers show web content in an app. That's all it was ever about.
> I'm pretty sure Apple is leaving this as it is on purpose so Javascript apps don't start to compete on performance with ObjectiveC apps
Why? Apple doesn't need to worry about this. Their platform-specific features mean that native apps will always win on user experience, regardless of performance. They don't need to hobble performance. Conspiracies sound cute to write about, and are fun to cook up, but it's much likelier that Apple just has better stuff to worry about.
They have a successful, widely-adopted solution for developers to create great apps for their platform.
They have a solution for users to have a great, fast browsing experience.
That's about all they need at the moment, in a world with finite time and resources. It's not Apple's goal to make every single nerdy desire or business model possible. It's their goal to sell a shitload of hardware by making users happy.
My mom isn't asking for super fast performance on a third party browser. She just wants her internet to work. Apple's already giving her that. QED.
I'm pretty sure it's still the case that when you add a HTML5 app to your home screen (so your users see the icon instead of a bookmark in Safari) all of a sudden it doesn't get run on the Nitro JS engine anymore.
It is not the case.
http://arstechnica.com/apple/2011/06/ios-5-brings-nitro-spee...
Also, Chrome is so well designed for mobile as on my Galaxy Nexus that it is difficult to switch to any other browser. The way they handle tabs is the best I've seen. Incognito mode also offers an easy way to simulate a second browser session without switching to another browser app, something I as a web developer cannot live without.
Not that shared libraries are a problem, just that JIT'ing introduces a new attack vector that is hard to secure.
It's a weak argument at best.
So it seems that if I can trick someone to click that button then it is possible for me to not only jailbreak their phone but also run any sort of malicious code afterwards (because instead of Cydia it can install just about anything).
I don't recall of ever hearing a story where someone accidentally jailbroke their phone, although I could be ill informed.
It's not a "weak argument", it's the reason why iOS is one of the most secure platforms out there, and way more secure than Android, Windows, (most) desktop Linux, and OS X. Other preventative technologies (e.g. ASLR, DEP/w^x, etc) are on those platforms, but none of them have the same kind of pervasive code signing that you see on iOS (and often video game consoles).
It has yet to be shown that code signing helps significantly to improve security. It relies too much on the competency of those that write said signed software. Measures like sandboxing are much more effective.
Hah! I needed a good laugh today.
No, Apple has not blacklisted a developer's certificate that we know of to the extent that pre-existing apps on an arbitrary user's phone will stop working due to validation failure, but they have revoked certificates from developers that effectively prevent them from ever submitting another app to the store[1]. You're right that sandboxing is a stronger security measure in a general sense, but security isn't a black or white thing you can throw a single buzzword at and have all your problems taken care of. Code signing is an additional layer of protection for the average user so he/she doesn't download a fake AV program that grinds their device to a halt while offering to get rid of itself for the low price of $39.99. Yes, code signing also ensures that the manufacturer of the device can also get a cut of the profits of other people's hard work, but that is not it's only reason for existence and it doesn't always have to be employed as a revenue stream.
[1] http://www.forbes.com/sites/andygreenberg/2011/11/07/apple-e...
I'm still unclear why it's safe for Safari to execute unsigned javascript, but not UIWebView. Thanks.
There's raw performance, and there's usability. Both determine how fast you get your content. Where Safari wins out in performance due to restrictions on iOS, Chrome wins out in usability. The Omnibox, for example, recognizes my favorite sites after I type just a few characters. Plus, syncing.
http://trac.webkit.org/changeset/108309
http://wingolog.org/archives/2012/06/27/inside-javascriptcor...
Chrome on iOS is using the native iOS render, IIRC. So wouldn't this test be testing the same thing?
Chrome is using the web view without JIT compiling for JavaScript that Safari can take advantage of. That being said, it's not something that's surprising. It's a known issue.
EDIT: Gah, beaten by a few seconds by jasonlotito.