Slashdot Mirror


Developers Explain Why iOS Apps Are Getting Bulkier (ndtv.com)

Reader joshtops shares a report: Apps are getting bigger in size, in part because developers add new features, something many users obviously appreciate, developers say. "Apps are getting bigger because iOS devices are more powerful, and developers are building more and more complex things for them without considering the impact the size will have around the world," developer Stephen Troughton-Smith tells Gadgets 360. But in part, it is also happening because developers are being careless, and adding more than one instance of files, Troughton-Smith added. "So Facebook, Twitter, and other large companies have perhaps tens or hundreds of people building their iOS apps. A lot of the components for these apps are developed independently as components, or frameworks. For each additional component you glue together into an app, there is some overhead," he explained. "Some of the teams will duplicate functionality some other team wrote. Images and other resources end up being duplicated." The high-resolution image assets that developers are required to add also contributes to the size of an app, two India-based developers, and Peter Steinberger, founder and CEO of PSPDFKit, a dev kit that is used by several popular PDF apps, told Gadgets 360. Apple can itself take some blame, too. Developers using Apple's Swift language, which the company introduced in 2014, are required to add several components to their apps that make them heavier. "Apple's new Swift language, for example, requires a bunch of components to be embedded each time it's used, because it's not yet 'ABI stable,'" Troughton-Smith explained. This means developers need to embed the versions of libraries they've developed against, and not count on the one available on the system. Another developer who didn't want to be identified said a typical app built with Swift language requires as many as 30 Swift runtime libraries to be stuffed within the app. On top of this, he added, "you will be surprised at just how many apps use common code found at places like GitHub. Developers often don't care about removing the bits that wasn't relevant to their app," he added.
In a blog post published in June, marketing and research firm Sensor Tower wrote, "The total space required by the top 10 most installed US iPhone apps has grown from 164 MB in May 2013 to about 1.9 GB last month, a 12x or approximately 1,100 percent increase in just four years." The phones' storage capacity has not changed at anything close to the same rate, with the base iPhone version only recently going up from 16GB to 32GB of storage." [...] San Francisco-based developer Ben Sandofsky, who was part of the team that made Twitter's iOS app and has served as a consultant on HBO's Silicon Valley show, resonated our concerns and said often "employees at these [Western] companies live in an 'early adopter bubble.' They have LTE connections, fast Wi-Fi at home, and phones with 64 gigs of storage. This creates a huge blind spot around your average user." Sandofsky, who recently developed popular third-party Halidi camera app for iPhone, added, "another issue is advances that have made the lives of engineers and managers easier, without understanding the burden on users. It's gotten easier than ever to reuse code between iPhone apps. With a few keystrokes, an engineer can add thousands of lines of code to an app. In theory that's good, because engineers shouldn't reinvent the wheel. Unfortunately things have gotten crazy in the last few years, with engineers pulling gigantic libraries that add megabytes to their app's size, when they could build something much smaller to solve the task at hand in under an hour."

140 comments

  1. Swift Compiler by Luthair · · Score: 2

    Doesn't it prune unreachable code?

    1. Re:Swift Compiler by Wootery · · Score: 1

      My thought too. If a function is never used, it should be elided from the final linked binary.

    2. Re:Swift Compiler by infolation · · Score: 4, Interesting

      I think the issue is redundant code through duplication, not code that isn't used.

      The Swift optimizer can perform high-level optimizations, but to use the high-level abstraction of built-in Swift data structures in Swift Intermediate Language, the developers need to understand how the Compiler performs those optimizations.

      My guess is that the developers lack that understanding of the Compiler's SIL optimization.

    3. Re:Swift Compiler by angel'o'sphere · · Score: 1

      In OO languages it is a bit difficult to see which code is truly unreachable, unless for obvious cases, of course.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:Swift Compiler by Anonymous Coward · · Score: 0

      But it's not code. It's framework databases and image files in multiple places in the same app. The previous article asked and answered the question, and this guy is just making excuses to explain piss poor development practices.

    5. Re:Swift Compiler by jellomizer · · Score: 1

      From the article. I got the device can handle it, so we can be sloppy.
      I really don't need a high resolution image of a solid blue box, with a logo taking 1/4 of it. Just show the logo, and put it behind a vector image of a blue box.
      Most of my more complex apps on my phone actually take much less size, then a glorified web browser app. Just because it was coded to do something, and not just so they can say it is a Mobile App. And force you to use that then a normal webpage, because you used your phone to connect to the website.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    6. Re:Swift Compiler by Dog-Cow · · Score: 1

      Actually, for pure Swift code, it's rather easy, as compiler optimizations go. The problem is the dynamism of Objective C.

    7. Re:Swift Compiler by BradleyUffner · · Score: 1

      Doesn't it prune unreachable code?

      If you have hundreds of megabytes of unreachable code, then you have bigger problems than your compiler.

    8. Re:Swift Compiler by Luthair · · Score: 1

      I dunno, while they do reter to duplication they also mentioned copying a crap from Github

    9. Re:Swift Compiler by Luthair · · Score: 1

      OO languages are just as easy as anything else, you just need to know the entry point.

    10. Re:Swift Compiler by angel'o'sphere · · Score: 1

      No, they are not.
      E.g. with overridden virtual methods, you usually have to link all of them as you can not statically decide which will be called in the end.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    11. Re:Swift Compiler by dgatwood · · Score: 1

      OO languages are just as easy as anything else, you just need to know the entry point.

      Not even close. Not when programmers can do things like:

      id object = [[NSClassFromString(@"SomeOtherClass") alloc] init];
      id result = [object performSelector:NSSelectorFromString(@"someMethod")];

      It's theoretically possible to catch all of those tricks, but easy, it ain't.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    12. Re:Swift Compiler by Plumpaquatsch · · Score: 1
      Yes it does. It isn't Swift anyways. https://blog.halide.cam/one-weird-trick-to-lose-size-c0a4013de331

      Since we launched Halide, the most unexpected compliment we’ve heard is about its size. At 11 megs, we’ll push less data in one year than a social network pushes in a single update.

      “So you aren’t using Swift,” asked a friend. After all, Swift bundles its standard libraries into your app, bloating its size. Halide is almost entirely Swift.

      --
      Of course news about a fake are Fake News.
    13. Re:Swift Compiler by david_thornley · · Score: 1

      TFS also claims that Swift programs can't count on stable libraries, so they have to include their own runtime libraries. That's perfectly reachable code that shouldn't have to be there.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  2. Redirect by Anonymous Coward · · Score: 2, Insightful

    No mention of the very real problem of analytics/trackers. Once you get Crashlytics and all the other trackers stuffed into there you're pushing 200MB without any real functionality.

    Contrast this with Signal; the most recent update was around 30MB, and it incorporates complex crypto and video calls. Not so many trackers.

    1. Re:Redirect by Anonymous Coward · · Score: 1

      If you actually click on the link, the report has mentioned that part as well.

    2. Re:Redirect by Neuronwelder · · Score: 1

      What you are saying is so very true!!

  3. In Other Words... by Anonymous Coward · · Score: 1

    Developers are sloppy, lazy, NIH-prone sods who'll slap together as much crap as they can get away with because the prevailing wisdom is that developer time is more valuable than resources and time wasted by their millions of users. We knew this, we just hadn't realised the math is that flawed. Because, hey, who needs more than one app on their phone, right?

    1. Re: In Other Words... by MachineShedFred · · Score: 1

      They are lazy, but they haven't been NIH people for quite some time - in fact, NIH is anathema to the truly lazy developer.

      The pinnacle of laziness for software development is finding some library or framework already on the Internet that does what you need to do in the particular situation you are in, and you import the whole bloody thing without so much as looking at all the other shit it brings along with it. Do this 30 or 40 times and glue it together with the flavor of the week language and ship it with only the most rudimentary of testing.

      Now that's lazy, and it's a pattern we're seeing far more frequently.

      --
      Slashdot still doesnâ(TM)t support Unicode after it was added to the HTML standard in 1997.
    2. Re: In Other Words... by Anonymous Coward · · Score: 0

      Or do it deliberately, like that thing where they "upgraded" from using libsigc++ to using the signalling part in boost... by requiring and importing all of boost. Because boost is obviously the way of the future and tested-and-working code is not.

      (The same program depends on a library that depends on a library, both by the same people, both of which nobody else ever uses. So that's two dependencies to keep in sync for, well, no reason. It's also chock-full of AbstractFactoryProxyFactoryClasses and other such... "we're trying way too hard" imaginary best practices. Yes, you can write spaghetti code using OO idioms too. Sure, why not.)

  4. I have three words for you. by Anonymous Coward · · Score: 2

    Dynamic link libraries.

    Tim Cook should talk to this guy named Bill Gates, he might know a bit about them.

    1. Re:I have three words for you. by Wootery · · Score: 1

      The developers are lazy. The linking model isn't the problem. You can duplicate native code with dynamic linking or with static linking.

      Or are you suggesting moving more functionality into the platform's standard library?

    2. Re:I have three words for you. by prunus.avium · · Score: 1

      Read the summary. The issue with Swift is that the libraries are not locked down yet. Each app has to static link - or include the libraries as part of the installation - as it can't rely on the different versions being compatible.

    3. Re:I have three words for you. by angel'o'sphere · · Score: 1

      iOS requires Apps to be static linked.
      There is no dynamic linking AFAIK.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re: I have three words for you. by Anonymous Coward · · Score: 0

      You can't rely on different versions being compatible - that is why sane dynamic linking schemes allow an unlimited amount of versions installed side by side.

      Put the version number in the library filename like linux does. Problem solved.

    5. Re:I have three words for you. by tylersoze · · Score: 1

      That hasn't been true for several years now. The real issue are the Swift runtime libs that have to be included because the ABI isn't stable.

    6. Re:I have three words for you. by thsths · · Score: 1

      The whole idea of mobile apps is that they are self contained. Using shared libraries (unless they are included in the OS) is the exact opposite of what people want. And if you think about Windows, it did start with shared DLLs, but nowadays it keeps a different version of the very same DLL available for each program, to prevent DLL hell.

      Shared libraries only work if you have a single source, such as a Linux distribution. Otherwise they are more hassle than it is worth.

    7. Re:I have three words for you. by angel'o'sphere · · Score: 3, Insightful

      As far as I understand it, you can not install a shared library to be used by more than one App.
      A App itself can have an *.so in its lib folder, so.

      The only true shared *.so's are those provided by Apple and preinstalled on the iOS device like UILib.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  5. Unexpected benefit by Dixie_Flatline · · Score: 3, Interesting

    I have a 16GB iPhone 6. It was a mistake to go for the lowest tier of storage, and I regret it, but it DOES make me choosy about my apps. I have a 32GB 5th Gen iPad and just by the nature of what I do on my phone vs. my iPad, that's actually just fine. I install the big games on my iPad, aggressively delete anything I'm bored with, and that's great.

    On my iPhone, I'm now ultra vigilant about what I use, which means I don't have facebook installed, which is GREAT. (I still use it, just in the browser.) I've gotten rid of the apps that are huge and distracting, and while I'm still always toeing the line with regards to storage, I'm happier with this low-storage situation than I expected. And when I finally get a new phone with more storage, I think I'm going to TRY to keep the same mindset, and keep my phone's installed app base nice and lean.

    1. Re:Unexpected benefit by fred6666 · · Score: 0

      I have a 16GB iPhone 6. It was a mistake to go for the lowest tier of storage, and I regret it

      It was also a mistake to choose a phone without expandable storage.

    2. Re:Unexpected benefit by JohnFen · · Score: 0

      That is the larger mistake, in my opinion.

      Being able to use memory cards and being able to change the battery are two of my "won't buy if I can't" features when I'm shopping for a phone.

    3. Re: Unexpected benefit by Anonymous Coward · · Score: 1

      I think it's a mistake to pick Android because of the overall junkier experience. But see, I recognize this as an *opinion*, not a fact. You could adopt this attitude as well...

    4. Re: Unexpected benefit by Anonymous Coward · · Score: 0

      Because you're a dirty normie who doesn't deserve more.

    5. Re:Unexpected benefit by fred6666 · · Score: 1

      I don't need to swap batteries until my current one no longer keep its charge so I don't really care if the battery is "removable" as long as I can open the phone with tools and replace the battery.
      What I don't like is that it is sometimes hard to find original quality batteries 3-4 years after launch which aren't overpriced or sold by obscure ebay sellers.

    6. Re:Unexpected benefit by JohnFen · · Score: 1

      I don't really care if the battery is "removable" as long as I can open the phone with tools and replace the battery.

      I count that as "removable". Just not conveniently so. But there are too many phones that don't even allow that, with batteries glued and/or soldered in.

    7. Re:Unexpected benefit by fred6666 · · Score: 1

      at least on the Nexus 5, it was pretty easy to "unglue" the battery and replace it.

    8. Re:Unexpected benefit by Anonymous Coward · · Score: 0

      It's also a mistake that Apple even sells multiple tiers of storage. The should just sell the top level and if users aren't willing to pay what it costs to get the top level, they can go elsewhere.

      It would actually be right in line with Apple's typical strategy, i.e., give their users a premium product with limited options because many consumers simply don't want the headache of deciding what options they need.

      And I say this as a dedicated Apple fan. I like their products and I'm willing to pay the premium. I also have a live and let live philosophy, so if Android makes you happy then God bless Android and use it in good health. In fact I think it is important that Apple has a substantial competitor. I wish there were 3rd and 4th options that were more substantial in terms of their market share. Competition keeps everyone on their toes and constantly trying to outdo each other.

    9. Re:Unexpected benefit by david_thornley · · Score: 1

      Last I looked, Apple would change the battery for eighty dollars, and there were lots of places charging less. The iPhone battery is removable, just not conveniently so.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    10. Re:Unexpected benefit by JohnFen · · Score: 1

      If I can't remove it myself with, at worst, a commonly available screwdriver then it's not removable in my book. The idea is that if I drain or damage my battery, I can put a new one in without a lot of fuss.

      By the way -- $80?? That's simply insane.

  6. Those who do not study history... by Anonymous Coward · · Score: 0

    ... are doomed to recreates the development debacles of the past.

  7. Image Bloat by DaWorm666 · · Score: 2

    > The high-resolution image assets that developers are required to add also contributes to the size of an app. -- This. Having to provide icons at 57x57 and 58x58, just for two examples out of dozens, is asinine. Our app code is dwarfed by the image collection size just to provide the minimum number of icons and load screens required.

    1. Re:Image Bloat by Anonymous Coward · · Score: 0

      Hyperbolic bullshit! The required icon set is still trivial in size compared with code base of any meaningful app. Perhaps your app is not meaningful? Try complaining about useful issues, not the 100k for iOS icons.

    2. Re:Image Bloat by DaWorm666 · · Score: 1

      Not all useful apps are hundreds of megs in size. Without knowing anything about the apps our company produces, or what they do, it is rather arrogant to presume anything about their usefulness. And from what I've been told (as I'm not the developer), the total image and icon size is in the megabyte, not kilobyte, range. I'd assume much more of that space is having to include images for every supported model and screen resolution rather then the icons. I chose the icon sizes above as an example just to show how seemingly arbitrary Apple is about changing everything from one model to the next. Why in the world go to a 58x58 icon when there is a 57x57 icon available? Is that extra 115 pixels going to make the app all that much more beautiful? Is it worth the extra work, times every single iOS developer in the world, to gain those 115 pixels? How many millions of man-hours of productivity world wide have been wasted recreating icon and image sets to deal with each and every change iOS makes to their screen? Large shops with hundreds of developers probably don't notice or care, but smaller developers certainly do.

    3. Re:Image Bloat by Anonymous Coward · · Score: 0

      Er, for the last two years, Apple has "App Thinning" and "App Slicing" which prevents the need to load unnecessary assets onto every device. The only images that should be expanding your app's size are the images the app needs. If that's not true, you're doing it wrong. \_()_/

  8. Dynamic libraries? by ctilsie242 · · Score: 2

    Dynamic libraries have been one way to save space for programs. Have a standard library that is tossed into a special shared area of the filesystem, hard link it so the apps can see it in their jail, and call it done. Obviously, the library would be signed.

    Now comes the tough part. DLL hell. A WinSxS mechanism would be useful so apps that use different versions of a library would not conflict with each other.

    Of course, the best solution would be filesystem level deduplication. If apps are stored encrypted on the device, then move to a dynamic library system and deduplicate the .so files.

    This isn't the best solution, but it should significantly save space.

  9. Silicon Valley by evilRhino · · Score: 1

    I'm pretty sure the app developers are just renting out storage space on the user's phone.

    1. Re:Silicon Valley by Anonymous Coward · · Score: 0

      Of course. Where else do you think "The Cloud" redundancy comes from?

    2. Re:Silicon Valley by Anonymous Coward · · Score: 0

      if they're "renting" the space, why aren't the phone owners getting paid for that space?

      (.. and for the malicious and/or reckless invasion of their privacy that nearly every single app is guilty of)

    3. Re: Silicon Valley by Anonymous Coward · · Score: 0

      These are Apple users, they will gladly pay Apple for the privilege of letting other people use their devices.

    4. Re:Silicon Valley by Anonymous Coward · · Score: 0

      It is a honor to serve apple.

  10. two India-based developers and Peter Steinberger by Anonymous Coward · · Score: 0

    what, you can't name them Peter, ceo of some library that does pdfs on a phone?
    why so racist?
    kindly do the needful and post their names
    the developer caste is not untouchable

  11. Transition period by UnknowingFool · · Score: 4, Interesting

    I wonder how much of the code bloat is also due to multiple transitions happening at once. First Apple is moving to 64-bit for all iOS devices. Certainly there is some overhead maintaining both 32-bit and 64-bit frameworks. Second, Apple seems to be phasing out Objective C in favor of Swift. As the article noted, Swift requires more space but I wonder how much of the space is because both are used.

    --
    Well, there's spam egg sausage and spam, that's not got much spam in it.
    1. Re:Transition period by Anonymous Coward · · Score: 1

      It is mostly Swift that is a pig, as it forces your app to ship with the ever-changing Swift libraries while the ObjC ones are stable.

      This is hilarious, as Apple marketing is so powerful that in every WWDC presentation, the guy now have to say something good of swift (like : "you would not have this prolem in swift" when talking about optimizing ObjC), even if it makes little sense. Having such a big "swift apps are bloated" hanging all over the tech news is just too funny.

    2. Re:Transition period by AmiMoJo · · Score: 2

      It sounds like they created their own DLL hell by requiring every app to have a copy of the library for compatibility reasons.

      Of course, it wouldn't matter so much if they priced flash memory fairly and if they made the app download/install system clever enough to check if it already has a copy of that version of the library and use it.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    3. Re:Transition period by UnknowingFool · · Score: 1

      Yes but if compatibility isn't as big an issue in the future, how much will the bloat go down? I'm not an expert enough in Apple's development to answer this question. For iOS 11 for sure, the 32-bit frameworks will be gone so we'll see how much that will change the bloat.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    4. Re: Transition period by Anonymous Coward · · Score: 0

      "DLL hell": You keep using that word. I do not think it means what you think it means...

    5. Re:Transition period by drinkypoo · · Score: 1

      It sounds like they created their own DLL hell by requiring every app to have a copy of the library for compatibility reasons.

      Nope, they just wasted a lot of space. Probably the best way to solve it is with a filesystem with deduplication, because just bundling the libraries with the apps every time really does solve several problems. I've been playing with my Amiga 1200 lately and having to run around finding whatever.library is kind of annoying. It's orders of magnitude less annoying today than it was in the early days of the internet, but it's still a pain.

      Of course, the other reasonable way is to add dependencies to app stores, and install libraries as apps. Probably many of them could actually justify having an actual app, for configuration. I'm not sure how feasible that actually is, though, given the security mechanisms built into these operating systems.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    6. Re:Transition period by Anonymous Coward · · Score: 0

      Swift has a lot of benefits (e.g., type safety, syntax) but speed is ironically the one area it does not succeed (if the Obj C is written well). See the book "iOS and macOS Performance Tuning: Cocoa, Cocoa Touch, Objective-C, and Swift".

      Swift would be faster with a "sufficiently smart compiler" which it does not have and will not have.

    7. Re:Transition period by thegarbz · · Score: 1

      I did wonder about the difference between iOS and Android on this. We only recently ran an article talking about Facebook being 388MB. On my Android phone it weighs in at 162MB, and 10 seconds of Google "research" showed that universally apps are far larger on iOS.

    8. Re:Transition period by Jeremi · · Score: 1

      Nope, they just wasted a lot of space. Probably the best way to solve it is with a filesystem with deduplication, because just bundling the libraries with the apps every time really does solve several problems.

      Agreed; in fact Apple could take the deduplication idea even further since they have full control of both the App Store and the iOS device's filesystem -- Apple could maintain a database of secure hashcodes/checksums for every file in every app that has ever been uploaded to the App Store, so it could replace its download-the-whole-bundle install process with one that only downloads the files that the phone doesn't already have have stored locally, and (of course) only stores exactly one copy of each file, using hardlinks or etc.

      That way if the user installs 30 different iOS apps, each of which bundles the same Swift library, the user would still only have to wait for that library to download exactly once; the subsequent 29 times, the already-downloaded copy of the library would be transparently reused.

      This could be done securely by using a secure hashing algorithm, and could be made 100% transparent to both the app developer and the user.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    9. Re:Transition period by Anonymous Coward · · Score: 0

      > "sufficiently smart compiler"

      There are only 2 legitimate reactions to anyone using word combinations involving "clever", "smart" or anything close together with "compiler", depending on context:
      - laugh hard
      - run away screaming

      After the Itanium disaster people learned for a while, but today I see them crawling out again with sentences like "BACK THEN compiler technology wasn't good enough".
      A statement that nobody who ever ACTUALLY looks at compiler output would make (unfortunately, all too many people working in compilers rarely look at real-world generated code, yet others make the mistake to believe working with compilers makes them competent to judge).
      Compilers are a useful tool and often the best option we have, but most of the code created by them is still utter shit and any advances in compiler technology have been completely overcompensated by increases in code and language complexity that make it harder for compilers to do a good job, the end result being that the code they generate for the average application is still as bad/far from optimal as it was 20 years ago.

    10. Re:Transition period by Anonymous Coward · · Score: 0

      > Probably the best way to solve it is with a filesystem with deduplication

      Have you ever tried it? Because in reality, exactly the same library (which is already unlikely, because it was likely that almost everyone uses the same binary "DLL hell" wouldn't be a think) compiled by 2 different people will not be identical.
      Besides the usual issues like different compiler versions, different compiler settings, many binaries end up containing (parts of) the build path or file system order.
      Deduplication can only help if you do a similar effort as Debian's reproducible builds, and make some effort that developers prefer to use identical compiler versions and settings and identical version of the binary.
      I'm very tempted to say "just not going to work".

    11. Re:Transition period by david_thornley · · Score: 1

      For some time now, on the x86 architecture, compilers did a better job with output code than all but the very best humans.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  12. Aha. Then it's not because... by Anonymous Coward · · Score: 0

    - developers are becoming more incompetent
    - frameworks are becoming less efficient
    - more layers of spyware are being wrapped up in the app

    No, no. Didn't think so. Phew.

  13. so it was with desktops, so it will be with phones by Anonymous Coward · · Score: 5, Insightful

    developers are building more and more complex things for them without considering the impact the size will have around the world,"

    I cut my teeth programming computers with 1 KB of RAM (not 1 megabyte, not 1 gigabyte, but a mere 1024 bytes). On the plus side, you could lift it yourself.

    You took every possible step to save a byte here, and 3 bytes there. Once desktop computers became monsters with megabytes and then gigabytes of memory, the need for that was reduced. Which is good in a lot of ways, but it also led to a generation of programmers who had no exposure to highly limited devices. They'd never written anything in assembly language, and they had only a dim awareness of the time vs space tradeoffs of the huge library routines they were using. This led inevitably to bloat, since out of sight is out of mind. I've seen people using many megabytes for something I'd do in bytes or kilobytes, but their approach required less developer understanding. It was amiable to programmers who didn't grow up bit twiddling, it was easy, and it was faster (for them) than trying to understand my way (which was fast for me, but depended on skills honed in another time). Programmer time is expensive, and most programmers have little low level knowledge about how the machine works under all the layers they depend on, so their approach allows people to accomplish things they never could otherwise. Is that good? Is that bad? Probably both, I think, depending on how you look at it.

    The same thing is happening now with phones. Early phones were highly memory constrained devices, but now, that pressure is fading. Bloat is inevitable. It can't be stopped any more than the tide can be.

  14. FOSS did this about 12 years ago by Anonymous Coward · · Score: 0

    I recall a lot of commentary here on /. about OSS developers being too conservative. The mantra was "Processor power is plentiful, hard drive size is cheap... why make the developer do all the work when the computer can?".

    In the following years it seemed that tonnes of FOSS projects and (especially desktop environments) grew horrendously. It seemed like every year or so I had to double the RAM and upgrade the processor to maintain the same performance when running most popular Linux distributions in their default state.

    Captcha: tortoise

  15. System Architect? by tatman · · Score: 1

    Isn't the role of architects to ensure independently developed components have access to shared resources? [sarcasm font]Oh wait, architects aren't needed when you can just hire more coders. [/sarcasm font] Seriously though, how many times you have heard we don't need architects?

    --
    I've always said English was my second language. Had Romeo and Juliet been written in C, I might have understood it.
    1. Re: System Architect? by Anonymous Coward · · Score: 0

      You don't need a full time, separate job of "architect." All you need is to establish it (via Team Lead, Sr. Engineers, whatever) at the start of the project. It's a phase of the project, not a job title.

  16. The economic tradeoff by JohnFen · · Score: 3, Insightful

    An awful lot of that sounds like the bloat is due to the same things that are making pretty much all other modern software so bloated: economics.

    Developer time has become much more expensive than hardware, so the entire industry has moved to development practices and tools intended to minimize the time required to create applications. But these productivity gains, almost universally, come at the cost of wasting bytes and machine cycles.

    So all software has, for many years now, been getting fatter and slower, relying on faster hardware to make things tolerable.

    1. Re:The economic tradeoff by McCaskill · · Score: 2

      True. Plus, developpers are lazy, and being pushed to do so. They usually download these large librairies with hundreds of methods/functions , and maybe will use only a couple of these functions. But everything is bundled in, and they don't care about the total package size, until it becomes a concern...

    2. Re: The economic tradeoff by Anonymous Coward · · Score: 1

      Economics, yes, but you overlook a key aspect of the economics: it's cost shifting. Software companies push the cost of their inefficient software onto the consumer who must keep purchasing new, more capable phones just to be able to run pretty much the same crap he could have run on the old phone if the software weren't so sloppy.

    3. Re:The economic tradeoff by Anonymous Coward · · Score: 0

      That excuse wears thin on iOS. Software devs are just being lazy, or their managers are being assbadgers and dont give them enough resources to do things better than just good enough.

      E.g. why is Twitter 111MB or something? It should be a really simple app, how much code does it take to post 160 characters of text to their system?

      Linkedin, another bad one, its massive, its slow, and annoying to use. Facebook I deleted ages ago, their app is just out of control. If I must use FB, I do it in the browser.

      Sometimes I get a nice surprise, Signal, not bad, updates quickly.

    4. Re:The economic tradeoff by JohnFen · · Score: 2

      I think we should stop calling such developers "lazy" and instead call them what they are: bad developers.

    5. Re:The economic tradeoff by Aristos+Mazer · · Score: 1

      Hard to distinguish lazy from efficient in this context. If it only takes a couple moments to pull in a giant library but that saves writing three functions, the time tradeoff may be worth it. And if the devices are beefy enough that no one complains about your app? Win!

    6. Re:The economic tradeoff by JohnFen · · Score: 1

      That would count as a conscious design decision, though, not laziness. Laziness is just taking the path of least resistance without considering the tradeoffs involved.

    7. Re:The economic tradeoff by david_thornley · · Score: 1

      Plus, developpers are lazy,

      One of Larry Wall's Three Cardinal Virtues of programming. Lazy developers do things efficiently.

      they don't care about the total package size

      Programmers are adept at optimizing for what they're asked to optimize. As long as there's no money in reducing package size, developers will continue not to care about it.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  17. Recursive library duplication by SLi · · Score: 5, Insightful

    I used to work at a game company. Before that, and coming from the a Linux world, I had always wondered how people manage to get even the executables to reach hundreds of megabytes to gigabytes. Now I understand.

    For example, the game uses compression, so it embeds zlib. It also uses something like 50 externally or internally sourced libraries, many of which also embed zlib. Some of those embed other libraries, which again may embed zlib.

    I found more than 80 copies of zlib in the game engine source code and its embedded dependencies. There were also tens of png and jpeg libraries, zip libraries and Lua interpreters. For building and tooling purposes only, there were around ten Python interpreters. Also, there were some eight copies of different versions of the in-house developed container library (STL replacement). And that doesn't count the libraries we didn't have source code for.

    Nobody in our team even had the slightest idea that was the case. In the Windows world, that's standard and best practices. I believe this is largely due to the somewhat sorry state and limited benefits of dynamic linking on Windows.

    The Linux world proves properly versioned dynamic linking can be extremely beneficial when done rigorously. To fix a security vulnerability in zlib, you only need to update zlib, not every application. Memory is saved: Any executable pages in dynamic libraries are only mapped once. That means you have one copy of zlib in memory per system, instead of 80 per application.

    Statically embedding anything does have its benefits, though, which is why the commercial world likes it. It means you won't get to debug weird problems because of broken libraries on a system. Containerization is the trend also in devops, and that means explicitly duplicating stuff yo make it easier to maintain.

    1. Re: Recursive library duplication by Anonymous Coward · · Score: 0

      Even with static embedding, you should only need one zlib for your app. Not 80!

      The development tools should be made so this is default, and that embedding two or more of the same library require jumping through hoops so it won't happen.

    2. Re:Recursive library duplication by starless · · Score: 1

      I'm just a humble amateur scientific programmer (I'm mainly a scientist), but I still have trouble understanding how "just" libraries can get anything into the GB range. In my humble number crunching code (linux based), it always seems to be large data arrays which end up eating up all the space. Could it be with phone apps that they're including lots of images which are what is principally eating up space?

    3. Re:Recursive library duplication by Khashishi · · Score: 1

      This is a natural outcome of the "let's make methods and variables private to protect developers from each other" mindset.

    4. Re:Recursive library duplication by Khashishi · · Score: 1

      Large data arrays are normally stored in data files, not in the executable.

    5. Re: Recursive library duplication by Anonymous Coward · · Score: 0

      There are computational methods to deal with redundancy. I suggest they use zlib.

  18. Shared Libs by Anonymous Coward · · Score: 0

    Isn't iOS bsd based? Doesn't it use shared libraries? Should that not limit the app size somewhat?

    1. Re: Shared Libs by Anonymous Coward · · Score: 0

      Swift.

  19. JobsrollingGrave by Anonymous Coward · · Score: 0

    Jobs would be rolling over in his grave if he saw how fucking slow my end user experience is on an iphone 6 right now.

  20. Shit management. by Anonymous Coward · · Score: 1

    This is all about sloppy architecture - as in not having one - and shitty project management.

    It looks like they have a bunch of separate teams with their own direction and no one sitting down and really designing the things.

    it has nothing to do with the compiler or tools. Shit like this happens on poorly managed projects all the time regardless of language, tools, platforms, etc....

    See folks, good management does have its place.

  21. Another reason is that by Artem+S.+Tashkinov · · Score: 1

    A lot of developers develop their apps in a vacuum, e.g. they test their apps on a relatively clean device which doesn't have any other apps installed aside from the OS itself. It's easy to see why they don't really care how much space their apps occupy.

    1. Re:Another reason is that by JohnFen · · Score: 1

      they test their apps on a relatively clean device

      If this is the only sort of testing you do, then you aren't actually testing your application.

      Which goes a long way to explaining why most apps are terrible.

    2. Re:Another reason is that by apoc.famine · · Score: 1

      While I was reading this I was thinking that the dev and testing environments should be hamstrung like a previous generation phone used by a teenager in terms of processing power and hard drive space. It would suck to develop under that, but it would mean that on a next generation phone the app would be small, fast, and responsive.

      --
      Velociraptor = Distiraptor / Timeraptor
    3. Re:Another reason is that by Anonymous Coward · · Score: 0

      Previous generation in mobile is newer than what most users have...
      I always test on an S3 mini (over 4 years old), it makes it easier to spot if you added any bottlenecks.
      Actually it's still too fast, because the only convenient way to profile app startup on Android is to click the "start profiling" button real fast after starting the app, but I was too slow to capture most of it. So I had to do it the messy way and enable profiling programmatically (which also misses a significant part of app startup not related to your own code).

    4. Re:Another reason is that by david_thornley · · Score: 1

      My wife had to argue with her boss for some time to get a limited account on her computer. She had found too many times in which she'd written something and it worked just fine, but required some admin privilege she missed, and so it wouldn't work for the users.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  22. Deep Learning Model Weights Are Big by doomday · · Score: 1

    No one mentioned what is probably one of the biggest reasons for bloat from the apps of the big tech firms over the last 10 years: Machine Learning Models using Deep Learning. If machine learning models are included with the app as opposed to the cloud it will add up. Even the most compressed of these models comes in at 10-30 MB. Add one for photos, one for search, one for voice, and one for some other as application specific model. At this point you're already pushing up to ~100MB right there and you haven't even started writing your program or including any images! This is done for several possible reasons such as quicker response time or so things keep working without an internet connection.

    1. Re:Deep Learning Model Weights Are Big by JohnFen · · Score: 1

      I'm not aware of any apps I use that involve machine learning. Probably because I make sure that my machines cannot talk to the cloud.

    2. Re:Deep Learning Model Weights Are Big by Anonymous Coward · · Score: 0

      There might be a neural network (a perceptron) in your CPU's branch predictors. Afaik "machine learning" is a marketing term for neural networks, like "NAS" is one for file servers.

  23. Re:two India-based developers and Peter Steinberge by Anonymous Coward · · Score: 0

    the developer caste is not untouchable

    Is this to be the main contribution to tech from India?

  24. Embedded device programming by Anonymous Coward · · Score: 0

    Do programmers think mobile devices are desktop computers?, they are embedded devices and with their own unique rules, embedded applications should be for one single task and very monolithic, componetization should be very limited.
    Is like they are trying to move the desktop to mobile.

  25. It's the law of nature by cyberfunkr · · Score: 2

    As in nature, the more powerful grow bigger as to kill off the competition for food and space.

    By making my apps larger than required, it means there is less space for other apps on the phone. If room is at a premium, then you're less likely to load duplicate functionality (While it's nice to have two weather apps to get an average, if I don't have enough space, I'll just stick to the one).

    This can backfire as people may instead delete the one big app to make room for two smaller but possibly just as competent. However, since file sizes are not always quickly available, more likely people are too lazy to do the research.

  26. It's simple by Waffle+Iron · · Score: 2

    Apps are getting bigger because iOS devices are more powerful

    The only explanation needed is the old adage, which I have never found to be untrue:

    "Software is a gas; it expands to fill its container."

    1. Re:It's simple by thegreatbob · · Score: 1

      It could be extended as a gas under pressure, the slightest leak lets it get into all kinds of trouble. Even if not under pressure, it could still diffuse. If under lower-than-ambient pressure, that's another problem... Disclaimer: I'm bad at making analogies.

      --
      There is no XUL, only WebExtensions...
  27. App Thinning eliminates unused architectures by SuperKendall · · Score: 1

    First Apple is moving to 64-bit for all iOS devices. Certainly there is some overhead maintaining both 32-bit and 64-bit frameworks.

    The frameworks on the computer and compiled code are larger because of that, but the final version that goes out to the users device only includes the architecture they need it for.

    Second, Apple seems to be phasing out Objective C in favor of Swift. As the article noted, Swift requires more space

    The reason it requires more space is not so much the language itself, but that every app has to ship the Swift framework inside of it - when they reach ABI stability, it will mean you can use the Swift that is included in the system (just once per Swift version) instead of having to include it in the app. But it may be some time before that is complete, they are now talking about what Swift 5 will haveand it's working on one of two major aspects for ABI compatibility...

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:App Thinning eliminates unused architectures by Dog-Cow · · Score: 1

      ...but the final version that goes out to the users device only includes the architecture they need it for.

      Did Apple ever figure out how this works with backup and restore? This feature was actually disabled shortly after its introduction. I am not aware that it has been reenabled.

  28. Cargo cult programming? by thegreatbob · · Score: 1

    If so, is it on Apple's end, or the developers' end?

    --
    There is no XUL, only WebExtensions...
  29. An old axiom by Anonymous Coward · · Score: 0

    An application will grow to consume all available resources.

    It's a very old story and a very old problem. Programmers get complacent and sloppy if resources are cheap.

  30. Re:Unexpectesimple.d benefit by Anonymous Coward · · Score: 0

    Just get a larger sdcard and you wont have to get a new phone.

    Oh wait...

  31. Feature Bloat by Linsaran · · Score: 1

    A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.

    - Antoine de Saint-Exupery

    --
    In a bit of shameless internet panhandling, I accept Litecoin Donations at Lbd2oH9QsthD1GfuUXPyka12YxvWJYnBVf
  32. DUH by p51d007 · · Score: 1

    No incentive to slim down the code. Same with PC's. With space NOT at a premium, why waste the time trying to slim down the code. Plus, people want/demand/expect more things from the application.

  33. Apple could fix this by TheSync · · Score: 1

    Apple could fix with with a "tax" on large apps. Larger apps have to have a higher price share with Apple. Free apps have to pay say a cent per every 10 MB over a certain size. That would make everyone's code tighter quickly!

  34. Apple doesn't want you to backup iOS apps by Anonymous Coward · · Score: 0

    Apple figured out that only Luddites want software versions other than the one currently in the App Store, ergo iOS device backups do not include app backups because the latest app version can be re-downloaded instead. And screw users who want to stay on an old app version because Apple encouraged the developer to move from pay-once pricing to subscription pricing.

    If you were sufficiently stubborn about it you'd have learned that the only way to control your app versions is to use iTunes to download non-thinned app copies which *can* be used to reload an old app version onto any iOS device architecture.

  35. It's been in there since iOS9 by SuperKendall · · Score: 1

    App Thinning and Bitcode have been in place since iOS9, and have been on since then - not sure I ever saw that it was disabled? It's all certainly been active for a while now.

    I've been able to compile using the bitcode option since then...

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  36. This is inevitable by Sqreater · · Score: 1

    This is a small illustration of what is happening in all things, not just technology, the continuous, unrelenting, addition of complexity. At some time there must be a "complexity collapse."

    --
    E Proelio Veritas.
  37. My $225 LG Stylo 3 by rsilvergun · · Score: 1

    has 32gig of storage built in and supports a 2 terabyte SD card. This doesn't seem like a software problem, this seems more like an "Apple charges too much for storage" problem. When Sony tried this on the Vita it cost them a ton of sales.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  38. Bulky applications or DLL hell by istartedi · · Score: 1

    The more things change, the more they stay the same.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  39. Graphics bloat? by AlanObject · · Score: 1

    Does anyone have any info on the amount of bloat the is actually embedded graphics information? I have no direct data but from the apps I see the big ones always has a lot of still-frame and full-motion video component embedded in it. Almost always games and entertainment, not business or utilities.

  40. It's not just IOS by Julz · · Score: 1

    Android development has also suffered the same issues. Showing my age... In the old days I remember trying to optimise some code and data to fit into 1K of RAM. It wasn't an easy task but eventually you'd work out a better more reusable function to serve more than one purpose and nail it.

    <rant level="maybe"> Now days it seems that just getting something running is good enough to put into production. Agile projects run by PMs that think that teams working separately in little groups with no interaction between them is a good thing, and that "good enough" is good enough and done, are also to blame. As is the countless untrained and inexperienced developers working as Solution Analysts, Team Leads and Senior Developers because the company doesn't want to pay for experience and quantity not quality dominates the financials. </rant>

    --
    When shit hits the fan get some of these https://youtu.be/pY-GncsZ-UE
    1. Re:It's not just IOS by Anonymous Coward · · Score: 0

      Agile is all about interaction? What is the point of short sprints if you don't talk to your "customers" (in the widest sense)? If you do not interact with others and just implement what you had in mind one year ago you can just as well use waterfall, unless agile is only used as an excuse to skip the design step.

  41. Re:so it was with desktops, so it will be with pho by Aristos+Mazer · · Score: 1

    > On the plus side, you could lift it yourself.

    Not really an advantage... I can lift my smartphone just fine. :-) But I guess you mean an advantage compared to ENIAC and its kin... the 1/2k machines or the even heavier 1/4k machines. Come to think of it, the original bit must've really massive!

  42. Re:so it was with desktops, so it will be with pho by RhettLivingston · · Score: 1

    You say programmer's time is expensive, but I wonder how it compares to the full system-wide cost. I suspect that a massive amount of cost has been pushed to the unknowing consumer - possibly many times what the cost of better programming would be.

    Is the combined time saved by modern sloppy programming practices greater or less than the cost of all of the extra memory required in billions of devices and the extra distribution costs for all of those apps. We don't consider things like, what is the energy cost for downloads? If 80% of that is bloat that could be removed, what does that mean in terms of internet infrastructure. These apps often download full new copies every month. Is it a significant portion of traffic? Does it push us to putting in new fibers or rushing 5G?

    I'd like to see a full analysis of the system-wide cost of app size.

  43. Ditto. by antdude · · Score: 1

    Same here with my very old iPhone 4S with its 16 GB of RAM. Also, have to conserve its original old battery and slowness. I also use it when I have to.

    --
    Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
  44. Re:so it was with desktops, so it will be with pho by Anonymous Coward · · Score: 0

    You say programmer's time is expensive, but I wonder how it compares to the full system-wide cost. I suspect that a massive amount of cost has been pushed to the unknowing consumer - possibly many times what the cost of better programming would be.

    Same AC here. Great point, and I agree with your thoughts. Small widely distributed costs have somewhat displaced large localized ones. I imagine that's globally suboptimal, but might be economically favored through a complex set of tradeoffs to different parties.

  45. ABI support coming in 2018 by campuscodi · · Score: 1

    Good news. ABI support coming to Swift in 2018 https://www.theregister.co.uk/...

  46. No, users normally do not care about app size. by Anonymous Coward · · Score: 0

    No, users normally do not care about app size.

  47. 64 Bit by Anonymous Coward · · Score: 0

    Of course a 64 bit executable will be bigger than a 32 bit executable.

  48. Cause.... by Anonymous Coward · · Score: 0

    developers are using less optimized cross platform development tools and libraries... Most nolonger have separate codebases for each platform. The 'virtualization' required to have this increases the size of the applications...

  49. Ugh Linux what a joke. by Anonymous Coward · · Score: 0

    Don't even get me started on that kludge of a program. I mean it, don't get me started. No, I'm telling you, I DO NOT want to get started on that!

  50. Re:so it was with desktops, so it will be with pho by DreadPiratePizz · · Score: 1

    It could be stopped if Apple stopped approving apps that were grossly oversized for what they were.

  51. I Stopped Caring by Anonymous Coward · · Score: 0

    Seriously, I too came from the old school, and spent some years lamenting the inefficient code, program bloat and all the rest.

    However, what am I paid to do? Ship code out the door. It must be function complete, stable, on time and on budget. Space efficient or processor efficient doesn't even crack the Top 10 list, and maybe not the Top 20 list either. My boss does not care.

    I can get rained on for not delivering the Must Haves. If the code is big, well, no one really expects that nowadays. Memory and storage are cheap; simply add more.

    This would be a bad dev model for the old days, but is it the worst thing nowadays? No, not the worst thing. I can still admire tight, efficient code, but that's an internal goal and not something I'll attempt to sell to the suits. If you want to lose credibility fast, just try to sell the suits something they don't care about.

    1. Re:I Stopped Caring by Anonymous Coward · · Score: 0

      The 2 big issue with it are
      1) At some point, your inefficient is so bad you will not be ABLE to add some of the features. The more subtle variant is that sometimes features get rejected "because the simple way we do now is already rather slow" when an efficient advanced version would actually be a lot faster.
      2) For a program maintained by a few people but used by millions, the costs on the user side are amplified by 1 million, so for it is a bad thing for society, and for most people that would make it something they ought to care about. But even if you don't, there are lots of people with old devices that will just look for an alternative if you are that careless with resources. In many ways, this is the same argument why spelling matters. Sure, people will understand you no matter how you write, but you make things more difficult for thousands just to make things a bit easier for you. Generally that is called being an asshole and not something to strive for or even accept (just to be clear I don't talk about mistakes slipping through or people who just don't notice or have a lot of trouble fixing them, I talk about the special kind of people that say "just understood it anyway, so why should I spell things right?", like those developers who say "your device has enough storage, why should I optimize my application?").

    2. Re:I Stopped Caring by Anonymous Coward · · Score: 0

      I get it and you are preaching to the converted. That said, here are my responses to your points:

      1). OK, that might happen. It's a bit extreme but let's just accept the possibility. If it happens it is my boss's (and my company's) responsibility to own that and perform a re-write;

      2). Yup. The problem is, in a capitalist society, the costs on the user side are an externality. If the users actually start to bail in significant numbers due to the app bloat then the app provider might start to care, but not until then. You see the money is the signaling mechanism of choice and it's nigh impossible to get corporate action without a clear monetary signal. And the asshole label? Kindly apply that to my boss or my corporation. It is their incentive schemes that resulted in where we are today with regards to app bloat.

      Again, I might attempt to code lean and mean as a private goal. Only if it does not compromise the schedule, the budget, the functional goals and all the rest. The stuff I get measured and performance rated upon must be my priority if I want to have a long and successful career.

      There's no way in h3LL I'm going to attempt selling the suits some app attribute they place no value on. You sell the sizzle, not the steak.

    3. Re:I Stopped Caring by david_thornley · · Score: 1

      For a program maintained by a few people but used by millions, the costs on the user side are amplified by 1 million, so for it is a bad thing for society

      If it causes significant extra use of fossil fuel, then, yes, it's a bad thing for society. Individual user costs accrue to the user, and if an application is sufficiently annoying in some ways (like being a terabyte download) people simply won't buy it. It's a free market, and more successful businesses do a better job of matching their priorities to the users' priorities.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  52. Do you suffer from app bloat? by LynnwoodRooster · · Score: 1

    There's an app for that!

    --
    Browsing at +1 - no ACs, I ignore their posts. So refreshing!
  53. Re:so it was with desktops, so it will be with pho by thegarbz · · Score: 1

    You can cut your teeth all you want. The problem isn't the size constraints, it's the functionality constraints. I too do a lot of work on very constrained microcontrollers, but that doesn't mean I don't reach for a generic video library when I am working with a device that has a touchscreen interface.

    If I re-invent the wheel every time I want to build a car all I'll ever end up with is a bunch of crappy wheels.

  54. Headers by The+Evil+Atheist · · Score: 1

    It's why I prefer header only libraries.

    --
    Those who do not learn from commit history are doomed to regress it.
  55. Re:so it was with desktops, so it will be with pho by Green+Salad · · Score: 1

    I suspect that a massive amount of cost has been pushed to the unknowing consumer - possibly many times what the cost of better programming would be.

    Let's see...Swift takes more memory, users react by upgrading to iPhones w/more memory and more profit margins for Apple.

    Older versions of Windows get slow and bloated with extensive patching, users react by getting new computers, boosting OEM license sales.

    Conclusion: It cuts expense while simultaneously increasing sales. That's win-win!

  56. Seems to me that history is repeating itself by toxygen01 · · Score: 1

    here is a memo that circulated in SGI in 1993, about how IRIX got bloated and unusable because of exact same reasons as mentioned in the original post:

    http://seriss.com/people/erco/...

    This is mandatory reading for every new IT employee in my company.

  57. Re:so it was with desktops, so it will be with pho by david_thornley · · Score: 1

    If users developed a preference for buying smaller apps, you'd see smaller apps. It's not Apple's job to decide what you should have in phone apps (although they do a fair amount of it anyway).

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  58. Re:so it was with desktops, so it will be with pho by sydbarrett74 · · Score: 1

    I'm optimistic about all of these retro implementations of legacy computing platforms. I think that any programming curriculum should involve some exposure to a modern implementation of an Apple //e, for example. That would teach frugality and perspective.

    --
    'He who has to break a thing to find out what it is, has left the path of wisdom.' -- Gandalf to Saruman