Originally Posted by Hiro
I agree any platform can always use more memory. I would love to see couple GB in something like an iPad to do some really kick-ass stuff. But I don't see a major problem because it isn't there yet.
Well it depends upon context. For example if you intend to use an iPad 1 with Safari over 3G the lack of RAM I very significant. Not only do page reloads, at a drop of the hat, slow things down you end up using a good portion of your bandwidth. I wouldn't be surprised if some users report lowered data usage numbers when switching to iPad 2. That given that iPad 2 actually has more memory in the first place.
Again though we need to focus on context here and how the user surfs with Safari. One person might not see much difference in data usage while another might see data usage cut to a small fraction of his current iPad 1 usage.
Note that I'm looking at this from the point if view of a user, not a programmer or developer. What I se as sad here is that iPad has been marketed as a way to access the net, yet of the supplied tools on the device Safari is the poorest performing of the lot.
The biggest reason iPad could use more memory is that is will make more apps available from a wider cross section of developers. This is a little bit of a cut against the wider dev community because it implies that being efficient and precise with memory management is something many devs are not good at.
Not at all! The problem is pretty straight forward, some apps simply require more memory that others. One developer may be able to shave the app foot print relative to another but you still will end up with apps that don't fit comfortably in to 120MB of RAM.
Safari is my favorite example here because while it does work well for many just as many
Find the constant page reloads to be a real pain in the neck. Other apps such as image editors and CAD like programs haven't really gotten traction on the iPad. It isn't a question of programmer skill if the iPad doesn't have room for larger image buffers for example.
Unfortunately that is the case, sometimes because of ability, but probably more because of ship date and budget pressures. Getting something working and out the door is often more important than optimizing memory usage.
Many of the apps written by iOS developers have been written by one and two man shops which implies a different set of pressures that those working in a corporate setting.
In any event let's revisit image editing here. It is my understanding that there are such programs available for iPad though I haven't used any. It would be very interesting to talk to those developers to get an in depth report on what it was like to try to develop for the iPad. My impression is that much code would have to be written simply to shoe horn the app into the limited memory. Code that wouldn't gave to be written if the programmer was free to create a couple of 16GPixel image buffers in memory. The question then becomes this, is it better for the programmer to spend his time on app code or memory management code and tricky algorithms that result from a lack of RAM.
You are right in the sense that getting something to work is important and often leads to ignoring performance and memory management. But here is the rub, once you have something working what is likely to get tackled next, memory usage or performance. I'd say 9 times out of 10 it will be performance and optimizing performance often lead to using even more memory.
That is where the desktop is today, memory usage is pretty much a tertiary thought and the mindset is bleeding over into the mobile space where the battery tech hasn't caught up to the task of powering gobs of GB yet.
Yes this is true and is why Apple has to carefully optimize the RAM available to the system, the last thing I want to see is a regression in iPad battery lifetimes. One thing to jeep in mind here though is that Apple isn't exactly focused on tight memory usage either. IOS actually has a very rich set of APIs that continue to grow. The growing SDK is good for users in that such growth exposes new features and capabilities but it also adds more memory usage.
I personally think Apple could do some great things with more use of file mapping and a backing store to the Flash and I don't know what the continuing motivation is for avoiding it. I have doubts that SSD lifecycle is a valid concern, backing stores are by design not written to very often compared to the operations of the rest of the machine.
Im not sure what Apple is up to here, but I do believe that hardware limitations play a role. Also depending upon the load on a system backing store can be the most heavily accessed storage on a machine. This is why swap is often on it's own partition or disk on Unix systems. So if your hardware doesn't support wear leveling I could see it as a big concern. Battery life is also a problem as going off chip uses a lot of energy.
Part of the problem here is that Apple seems to have built the original versions of iOS for a slightly different portable devices market than the iPad. That is one could reasonably expect iOS to have more capability on the iPad than it does on iPhone or Touch as the needs are different. Apple though has choosen to keep the OS the same memory management wise across all platforms.
Now the question is will that change in the future.
Maybe they don't want to give up up to a couple GB SSD space for it.
I'm not sure the couple of GB of flash space is even an issue. I suspect that this is another one of those issues where we will never completely know Apples mind set. What is interesting here is that with Apples single user app model the swap space required is effectively limited in size. I still think the major issues revolve around wear and power but would love to know exactly why Apple has done things the way they have.
In any event iPad 2 reports, bench marks and experiences are starting to filter in to the web. It will be a very interesting week.