1. 25
  1.  

  2. 20

    I spend quite a bit of time on various Android dev forums and occasionally evangelise for users on slow or metered networks. My thoughts are almost universally shot down as being archaic / luddite / NIH syndrome. Devs want to use the hot new frameworks and tools; management want fancy animations and qhd graphic assets. This is why region-specific (hello, Asia) apps are becoming so prolific. The first world doesn’t care about the realities others face. Hell, most devs don’t even use available configure-and-forget optimization tools or go after low hanging fruit. The last three apps I got brought in to consult on about performance problems, I shrank the APKs to less than 1/3 their size within a month.

    Ranting aside, this is a great reason to use, support, and contribute to FOSS. Apps in the F-Droid store are almost universally smaller than their fungible Google Play Store counterparts.

    1. 9

      Even closer to home, many people in the tech community have an abject lack of understanding of what life is like for even first-world rural populations. It’s probably most obvious when someone posts an article about electric vehicles on the orange website; you get dozens of comments like “Why does it need to be so big?”, “Who cares about a range over 200 miles?”, etc. Basically overwhelming surprise at the idea that anyone considers a practical car to be something besides a small CVT hybrid, or even indignation that such gas-guzzlers are still legal.

      The median (and probably up to at least a couple standard deviations) tech worker experience is very urban. You don’t have to live in rural China to sympathize with their infrastructure requirements; even understanding the rural US will get you partway there.

      1. 3

        Supporting your point, I’m either in a city or rural area due to where friends and family live. Quite a few don’t have broadband since the service area stops 100 yards from their house or something ridiculous. Some have spotty mobile where I can barely read Lobsters or HN… only in certain parts of the house… with me having to pre-download YouTube vids or anything else high bandwidth. Also, the jobs they do make them go in and out of coverage areas. These areas represent a lot of America and its population. If one wants money or views, hard to justify making that many people have trouble using the app or site.

        So, my first gripe would be against always-on services or apps that don’t work well when things go offline temporarily. There’s quite a few that seem to assume the Internet always works and fast. The next, worst offenders are bloated pages or the ones that do the sneaky JS (esp adware) before the content. Experience is unbearable with things jumping all around as stuff slowly loads. Click on something to have another thing appear under the finger and go to an unrelated site. (shakes head) I’m about to go see someone now where I’m going to spend 5-10 min downloading the stuff I need first.

        1. 3

          Coverage has actually gotten worse recently. I used to have very respectable DSL in a rural area that is now completely unserved by broadband. I was shocked because a friend who still lives there said he was unable to get any type of internet other than his cell phone service; and I did research and found that the DSL (which I had for several years) is no longer available.

    2. 9

      Recently on the GCC mailing list, there was a similar complaint: https://gcc.gnu.org/ml/gcc/2017-07/msg00224.html

      1. 5

        It’s really quite amazing how far one can get with a few optimizations. Little constant folding, little strength reduction (don’t go crazy), register allocation (probably most important), couple peephole passes to fix up the obvious stupidities. Almost all of which work to make the code smaller as well. But then we add n dimensional polyhedral convex hulls to the mix, and the code starts getting larger…

        1. 3

          Now that I’m immersed in the embedded world (and not the Linux one, where 512MG of RAM counts as embedded) as a compiler/tools dev, the notion of simplicity in optimizations is much more appealing. The number of -fno- options you have to pass to GCC to make it produce something you can work with can be mind-numbing. There’s a reason asm is supported, and it’s not just for speed.

          1. 2

            You and GeoffWozniak might find QBE interesting given it pursues that concept to make a simpler alternative to LLVM:

            http://c9x.me/compile/

            1. 2

              I bench marked qbe, it is and order of magnitude faster than llvm, amazing.

              1. 1

                To clarify, compiling something with QBE, gcc generates better code (though not that much better).

        2. 22

          Well, how many bytes does it take to make a web page saying “app sizes are out of control”? Oh, but it’s disqus and that’s third party and doesn’t count? There’s probably some third party library code in the LinkedIn app that doesn’t count either. How much javascript does it really take to add a text input form to a page? No, no, it’s those other developers who are lazy; I’m simply pragmatic! The bloat problem will not be resolved so long as everybody thinks their problems are just a little bit harder and specialer than anybody else’s.

          1. [Comment removed by author]

            1. 3

              For security and compatibility reasons, not using shared libraries seems to make sense.

              What would you recommend to Google & Apple to fix this issue?

              1. 2

                In Apple’s case, they’ve made it worse by not fixing a stable ABI for Swift, so even official platform libraries have to be statically linked into every single Swift app. They claimed this was going to be addressed by Swift 3, then it was pushed back to Swift 4, and now it’s pushed back again.