Live data from Hacker News

Android Is a Dead End

osnews.com

31–40 of 71 posts

Re: Android Is a Dead End

#31
post #18
post #2

Seems to me the long standing "Java is slow" versus "that's an old wives tale, Java software can be as fast native" all converges right down to the evidence of Android - compared to iOS, it's slow. If Java was just as fast then this would never come up.

This post is just ignorant of iOS and Android and the dozens of differences between them that lead to user perf complaints. Everything from Apple's hardware advantage to the way Android handles background apps to the difference in built in library quality(core data vs 'use sqlite or something' for example) all make way more of a difference. These days, the Java code in an android app is compiled to native anyway.

> Everything from Apple's hardware advantage to the way Android handles background apps to the difference in built in library quality(core data vs 'use sqlite or something' for example) all make way more of a difference.

I'd like to go off a tangent here. On LineageOS, under privacy settings you can deny apps permissions such as run at boot and run in background. I wish deny was default mode in all of Android and that apps would have to ask for permission to run at boot. This is good for the end user and this is good for Google as Play Services should have this turned on by default meaning greater adoption for Google Cloud Messaging. This can't happen in one step because the proverbial cat is currently out of the bag and we have to sort of slowly put it back in. Something similar needs to happen with all permissions. File storage: afaik all apps have access to their own data store. Most apps should not need access to device storage at all. Almost no app should require access to phone permission.

For example, look at this page by Capital One: https://www.capitalone.com/applications/mobile/android/permi...

> Don’t worry, we aren’t going to call you to find out your plans for the weekend. This permission allows us to use unique phone information (SIM ID and phone number) to guard against unusual sign-in activity. It’s a little extra security to help protect your money.

What is this madness? If it were up to me, I'd ban the capital one app for this amount of ridiculousness.

That being said, I am not an iOS fan either. I have problems with iOS as well. Why isn't there a way to limit data usage to say n MB a month? Why in the world should it take an OS update to update iMessage or Safari? How is this still a thing now that the iPhone is almost ten(!) years old?

Re: Android Is a Dead End

#32
post #18

Earlier quoted context omitted.

This post is just ignorant of iOS and Android and the dozens of differences between them that lead to user perf complaints. Everything from Apple's hardware advantage to the way Android handles background apps to the difference in built in library quality(core data vs 'use sqlite or something' for example) all make way more of a difference. These days, the Java code in an android app is compiled to native anyway.

> Everything from Apple's hardware advantage to the way Android handles background apps to the difference in built in library quality(core data vs 'use sqlite or something' for example) all make way more of a difference. I'd like to go off a tangent here. On LineageOS, under privacy settings you can deny apps permissions such as run at boot and run in background. I wish deny was default mode in all of Android and tha…

>What is this madness? If it were up to me, I'd ban the capital one app for this amount of ridiculousness.

Fingerprinting devices to detect unusual logging activity? This is common. Heck, I've had Google lock me out until I confirmed with my recovery email after logging in from a new device. Much more common is simply getting an email after logging in from a new device. The most common method of doing this is for desktop sites is, I assume, IP address; which obviously does not work for phones.

Re: Android Is a Dead End

#33
post #18
post #2

Seems to me the long standing "Java is slow" versus "that's an old wives tale, Java software can be as fast native" all converges right down to the evidence of Android - compared to iOS, it's slow. If Java was just as fast then this would never come up.

This post is just ignorant of iOS and Android and the dozens of differences between them that lead to user perf complaints. Everything from Apple's hardware advantage to the way Android handles background apps to the difference in built in library quality(core data vs 'use sqlite or something' for example) all make way more of a difference. These days, the Java code in an android app is compiled to native anyway.

But it also uses GC even when "compiled to native", so you're not free of things that could make your app stutter. iOS does not use GC. WinPhone did use GC, but they spent a lot of time optimizing the hell out of the stuff that runs on the UI thread.

Re: Android Is a Dead End

#35
I would say apps are at a dead end. The way we are using our mobile devices with rows and rows of single purpose apps seems so... primitive now.

I mean, you need "Pizza Place" app to order pizza, "TicketMaster" app to order concert tickets, "HotelWhatever" app for hotel reservation, "Parking Meter" app, "Fitness" app, "News" app, etc...

Like I said; rows and rows of information silos taking place on your phone, unable to talk to each other, requiring new account for each of them, entering your credit card again and again. It's terrible.

Now let's say you want to order pizza. Instead of downloading yet another app, you could just type "order pizza" in the search box and an interface is created by the OS and you can chose the pizza place you want, toppings, etc, and the OS handles everything (adresse, payments).

AI is getting more and more capable and I think we reached the end of the "There's an app for that" era. Can Android evolve to this post-app paradigm? I don't think so. Same thing with iOS.

That's why, I think, Google is working on Fuchsia.

Re: Android Is a Dead End

#36
post #14

Extend, engulf, devour. Most of the comments here miss the point of the article. The article author is saying that Google will replace the Linux component of Android with something proprietary. Then Google will have total control, and will be able to prevent Android clones. Already, Android apps make such heavy use of Google proprietary code that open source Android systems such as Cyanogen and FDroid have mostly giv…

I don't think Google will do that anytime soon. Because they don't know how to make and sell a phone for profit. The only player that can do that is Samsung, and Google cannot cut them off. I bet Samsung would sell more tizen phones than Google would sell fuschia phones, if Google were to lock Android up.

Google lacks fundamental business and product management skills.

Creating an "open platform" encourages device makers to polish it only for their needs but not upstream features and fixes to competitors (OS fragmentation) and let multiple, insecure versions run forever that rarely get updated (legacy fragmentation). Plus, Linux security is usually an oxymoron which Fuchsia may address. If Google wants their platform to survive, they're going to have to require approval for apps and devices, and stipulate things like UX usability and mandatory OS patches.

PS: There are thousands of servers run by handset manufacturers and telcos that are required for some features of mobile devices to work at all. For example, Motorola Mobility smartphones' depended on their own servers for many social media features to work. These backend-heavy designs are supremely easy to brick, disconnect and invade privacy of users, en masse, for profit and for government spying.

Re: Android Is a Dead End

#37
post #18

Earlier quoted context omitted.

This post is just ignorant of iOS and Android and the dozens of differences between them that lead to user perf complaints. Everything from Apple's hardware advantage to the way Android handles background apps to the difference in built in library quality(core data vs 'use sqlite or something' for example) all make way more of a difference. These days, the Java code in an android app is compiled to native anyway.

> Everything from Apple's hardware advantage to the way Android handles background apps to the difference in built in library quality(core data vs 'use sqlite or something' for example) all make way more of a difference. I'd like to go off a tangent here. On LineageOS, under privacy settings you can deny apps permissions such as run at boot and run in background. I wish deny was default mode in all of Android and tha…

If its any consolation, in the latest version of Android, the permission model is mostly how you describe.

Re: Android Is a Dead End

#38
post #12
post #8

Earlier quoted context omitted.

> people just aren't that into VMs anymore Bytecode can be translated quite well to native code. So I'm wondering if this isn't about "VMs versus native" as much as it is about "garbage collected versus unmanaged memory".

What's an example of an ahead-of-time compiler that takes bytecode and spits out native code? Can you do inline assembly for the target architecture? I heard a million time how JIT and JVM "could be" just as fast (or some claim faster) than AOT but in practice it hasn't happened. High performance code is written in AOT/native languages.

>I heard a million time how JIT and JVM "could be" just as fast (or some claim faster) than AOT but in practice it hasn't happened.

Why do you say this? There's lots of examples out there and Android is one of them.

Re: Android Is a Dead End

#39
post #12

Earlier quoted context omitted.

What's an example of an ahead-of-time compiler that takes bytecode and spits out native code? Can you do inline assembly for the target architecture? I heard a million time how JIT and JVM "could be" just as fast (or some claim faster) than AOT but in practice it hasn't happened. High performance code is written in AOT/native languages.

>What's an example of an ahead-of-time compiler that takes bytecode and spits out native code? I believe that is how .NET works (the byte code gets distributed, and the user compiles it to native immidietly before execution). Also, Android's ART is the replacement for Dalvik that compiles Dalvik bytecode into native code at installation.

Actually, ART is now "JIT guided AOT." The JIT will (re)compile code as needed but the JIT code is stored to disk, thus creating an AOT binary on future runs.

Re: Android Is a Dead End

#40

This is a very confusing argument. The summary seems to be Android defined as "a Linux kernel with libraries" is a dead end. Well, okay, although given its deployment on 2B devices it's probably the best argument for Linux. A couple of years ago Android replaced Dalvik, the runtime for all apps. Did anyone say Android is a dead end then? Nobody defines Android in this way, by a single component, and in a way the auth…

> Well, okay, although given its deployment on 2B devices it's probably the best argument for Linux.

One could have said more or less the same about Symbian not that long ago.

> Nobody defines Android in this way, by a single component, and in a way the author even acknowledges this.

That's right, it's not defined by any particular software component. Any particular component can be replaced until the whole thing is replaced, a la Theseus's ship. So what is Android - what can't be replaced?

The answer is the development model. This can't be replaced because it's definitional to Android. You said it yourself: Android is "an open source operating system." More specifically, it's an open source OS that follows a particular development model:

1. Development of mainline Android happens behind Google's closed doors, and is thrown over the wall to OEMs. 2. Development of Android for particular devices happens behind OEMs closed doors, and is thrown over the wall to customers.

#2 is the rub. It annoys customers, who have to wait to get updates and fixes. It annoys developers due to the fragmentation problem. And it annoys Google because they don't control the update cycle, and instead have to shoehorn things into Google Play Services, etc. But critically it doesn't annoy OEMs, who love being able to apply their kernel "fixes," shovelware, and other familiar Android condiments.

Google would love love love to transition to a ChromeOS-like model, where they can exercise a lot more control. But they can't just do that outright - OEMs would revolt. They probably can't do it at all within the confines of Android and the development model they've established. That's their key problem.

> But why would anybody care, especially if its transparent to users and even to developers

It won't be. There is no universe where Google can provide a new OS that works on all their customers devices and supports all the apps. The best they can hope for is a new OS with a compatibility layer that works well enough - think Apple's transition from classic Mac OS to OS X.

But as soon as OEMs get wind of those, you can bet they'll be tripling-down on Tizen or forks or whatever. That's the dilemma that Google finds itself in.

Android is a sort of asymptotic dead-end, where Google can keep providing fixes like Dalvik->ART, but those can't address the essential problems. Eventually those problems will be severe enough to open a space for a new offering to thrive. Google hopes to own that offering, cannibalizing Android instead of letting someone else eat it.

(Oh, but then there's China...)

Post reply on HN