Hacker News new | ask | show | jobs
by bitwize 4518 days ago
Apple has been doing the right thing all along. Because the very thing that enabled Apple to rise from near bankruptcy to just about the most profitable company in the history of capitalism is providing and controlling an integrated, soup-to-nuts hardware and software ecosystem. A big part of the reason why Android still feels so janky is that it has to cater to multiple hardware vendors and other stakeholders (carriers), as well as Google's advertising business, with the end user a secondary concern. Apple's total control enables it to make the user the highest priority.
4 comments

The jankiest thing about Android (well, aside from crappy manufacturer skins and undeletable carrier spamware) is the pauses and delays in user response. Those all come from the disastrous choice to use Java as a programming language. User facing software always feels slow when it's subject to the performance losses of automatic memory management. Java is inherently garbage collected and low power mobile devices just multiply the performance failures inherent in that design.

Garbage collection is actually better for performance where instant response isn't important, such as in servers. In UI and realtime it always seems janky and slow.

But even the choice of Java is related to multiple hardware vendors. There was some idea initially that Android might run on non-ARM platforms. That hasn't turned out to be an important use of Android, but it probably helped push Android to Java initially.

You have no idea what you're talking about. The only part of Java used in Android is the syntax. The VM was written from scratch. In fact, Oracle took Google to court over allegations that Google had copied parts of the Java VM (and lost on the majority of counts, getting no payout).

And there is also the fact that I know it's not true because my phone (LG G2) has no problems with touch response.

It's important to note that it's the Java language, but not the Java bytecode or Java Virtual Machine that are used in Android. It could easily have been really any language that Google wished to provide a compiler for towards their custom bytecode/VM. It was somewhat arbitrarily the Java language but was a good business choice IMHO due to the prevalence of Java developers in the market.

Secondly, there's nothing stopping you from writing your apps in C/C++ to get whatever sort of response you need.

From what I've read on the net, using the NDK is not an ideal way to write Android apps. It's fine if you want to write an OpenGL game, but it doesn't interface well with the Android API.
I don't know enough about Java/garbage collection but I'm going to challenge your assertion that Java is behind poor UI response.
Okay, I'm listening.
> Because the very thing that enabled Apple to rise from near bankruptcy to just about the most profitable company in the history of capitalism

Adjusted for inflation I think that title still belongs to IBM through the 70s.

Or the East India Company if you want to go even further back.
Can you please elaborate? The East India Company never recovered from its episode of near-bankruptcy
Not the near-bankruptcy part, just the most-profitable part.
Thanks, beat me to it. Which leads me to ask, were IBM near bankrupt before roaring back?
The right thing that Apple did was build an manufacturer customized version of Unix (i.e. OSX) because Mac OS7, 8 and 9 had fallen behind the competition. Apple could very well succeed by forking/building on Android
I really don't get your logic here. They're already succeeding by building off their already customized version of Unix and putting it into a phone.
Stop using manufacturer-customised versions of Android then.
But that's exactly what the article is suggesting Apple creates.