LWN.net Logo

Quotes of the week

Quotes of the week

Posted Apr 22, 2012 20:19 UTC (Sun) by khim (subscriber, #9252)
In reply to: Quotes of the week by Cyberax
Parent article: Quotes of the week

Uhm. Considering that Android quite successfully uses GC for explicitly interactive tasks - I don't think GCs have failed.

Android is good example of with sufficient thrust, pigs fly just fine principle (RFC 1925.

Sure, if you'll use dual-core 1.2GHz CPU and 1GHz of RAM (something like Galaxy Nexus) then you can almost reach the fluidity of iPhone 4 with it's single-core 800MHz CPU and 512MB of RAM (and if you'll use quad-code 1.4GHz one like in Samsung Galaxy S III then you can come closer still).

But if you'll try cheap Android with 256MHz RAM and 600MHz CPU (basically what iPhone 3GS had) then you'll see that GC indeed comes with huge price attached.

Granted, not all Android woes are GC-related, but nonetheless: the fact that Apple added ARC to iOS 5 and then dropped full-blown GC in MacOS 10.8 says volumes. You can say whatever you want about Apple, but these people know how to create fluid UI. “Full GC” was tried and apparently have been found wanting. And if anyone can afford buying good GC then it'll be the most valuable company in the world.


(Log in to post comments)

Quotes of the week

Posted Apr 22, 2012 20:59 UTC (Sun) by Cyberax (✭ supporter ✭, #52523) [Link]

>Android is good example of with sufficient thrust, pigs fly just fine principle

And we have that thrust. So why not use it?

I don't see anyone advocating rewriting of everything in assembly, for example.

>Granted, not all Android woes are GC-related
None of them, in fact.

>The fact that Apple added ARC to iOS 5 and then dropped full-blown GC in MacOS 10.8 says volumes

Yup. You can't make a precise GC for C/Objective C. And conservative GCs suck like a hole in a spacecraft

Quotes of the week

Posted Apr 22, 2012 22:58 UTC (Sun) by renox (subscriber, #23785) [Link]

>>Android is good example of with sufficient thrust, pigs fly just fine principle
>And we have that thrust. So why not use it?
Because it reduces autonomy? Isn't good enough to get low latency?

>I don't see anyone advocating rewriting of everything in assembly, for example.
As everything, it depends on the situation.. In some cases assembly is the correct answer, is the JVM the correct answer for phones?
Android's success tend to answer yes but Android's poor audio latency tend to answer no..

Quotes of the week

Posted Apr 22, 2012 23:10 UTC (Sun) by Cyberax (✭ supporter ✭, #52523) [Link]

>Because it reduces autonomy?
Autonomy from what?

>Isn't good enough to get low latency?
It's good enough for 99.9999% telephony apps (see: Erlang).

>but Android's poor audio latency tend to answer no..
Android's audio stack is native :) Java code is used only to set up the audio connections.

Quotes of the week

Posted Apr 23, 2012 6:36 UTC (Mon) by khim (subscriber, #9252) [Link]

>but Android's poor audio latency tend to answer no..
Android's audio stack is native :) Java code is used only to set up the audio connections.

Java is also used in all the manipulations of audio. All the audio-related tasks where Java is not involved (i.e.: simple playback or recordng) work fine on Android. No dropouts or anything. It's only when you need to show UI and react to it (music synthesis, etc) is where Android sucks (when compared to iOS) - i.e. precisely where Java with it's GC is involved.

>Isn't good enough to get low latency?
It's good enough for 99.9999% telephony apps (see: Erlang).

There are so much hype around Erlang, but I'm yet to see anything complex in it. Tiny bit-shufflers can be written in any language with or without GC (in fact if you'll read about Erlang's history you'll see that it was open-sourced when Ericsson decided to ban it from all new projects. It does not look like these projects become worse for the lack of Erlang and it's GC (Elang later returned but this is probably because they wanted to reuse existing Erlang investments rather then some intrinsic Erlang's advantages).

Quotes of the week

Posted Apr 23, 2012 7:56 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

>Java is also used in all the manipulations of audio. All the audio-related tasks where Java is not involved (i.e.: simple playback or recordng) work fine on Android.

No it isn't. In fact, during the voice call audio path is quite often established _completely_ in hardware. On my fairly old Samsung Galaxy S phone I have heard only the usual 'stuttering' caused by buffer underflow when music is playing and some other process hogs the CPU/flash (often during heavy writeback activity).

>It's only when you need to show UI and react to it (music synthesis, etc) is where Android sucks (when compared to iOS) - i.e. precisely where Java with it's GC is involved.

I've tried http://causticapp.blogspot.com/ on my old tablet. Works fine.

>There are so much hype around Erlang, but I'm yet to see anything complex in it.

ejabberd? RabbitMQ? Online game engines ( http://www.vendetta-online.com/h/news.html )? Phone switches? Parts of Wall-Street trading engines?

It's quite common in some industries.

Quotes of the week

Posted Apr 23, 2012 6:52 UTC (Mon) by khim (subscriber, #9252) [Link]

>Android is good example of with sufficient thrust, pigs fly just fine principle
And we have that thrust. So why not use it?

Because It is hard to be sure where they are going to land, and it could be dangerous sitting under them as they fly overhead.

I don't see anyone advocating rewriting of everything in assembly, for example.

Assembly? Well… in rare cases yes, but usually no. Intrinsics work just fine and can be combined nicely with the other parts of the program written in high-level language. GC can not be easily combined with non-GC pieces, it's all or nothing proposition. Big difference.

Quotes of the week

Posted Apr 23, 2012 8:11 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

>Because It is hard to be sure where they are going to land, and it could be dangerous sitting under them as they fly overhead.

Yet I'd prefer to be sitting under a flying pig even if it might occasionally be a bit dirty to being crushed by a falling airplane (most likely crashed by a pilot error).

>Assembly? Well… in rare cases yes, but usually no. Intrinsics work just fine and can be combined nicely with the other parts of the program written in high-level language. GC can not be easily combined with non-GC pieces, it's all or nothing proposition. Big difference.

The aforementioned MSVS is written in a mix of native code and managed code. Works just fine.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds