Apple’s long game

September 20, 2013 § Leave a comment

Robert X. Cringely speculates that apple is aiming to replace the desktop with iDevices plugged into monitors with keyboard and mouse on Bluetooth, using 64-bit processor “desktop architecture” as clue. There are some interesting ideas in the article, but I don’t think that’s where Apple are heading. It may be that they would, as Robert suggests, have people attach their phones or iPads to the desk, but I think it is more likely that they will have a distinct device for the desktop. A trend that Apple have supported and encouraged is for apps to run on all devices and share the data in the cloud. The big transition in computers that I have experienced over the past 5 years is the separation of data from device. More and more, the physical devices are just endpoints from which I access my data. I wrote the first draft of this post on an iPad at the breakfast table using iA Writer. I edited and polished it on iA Writer on my iMac. I didn’t need to do anything to transfer it, it was simply there when I changed device. Tethering the devices doesn’t seem to me to fit in with

I believe Apple is aiming to unify desktop and iOS in long term, which is where the new processor comes into play. I fully expect Apple to be transitioning their desktop and laptop computers to ARM at some point in the next few years. They’ve done this before. When they looked at the PowerPC roadmap and realised that it wasn’t going to deliver what they wanted, the migrated to Intel processors. But they didn’t do it overnight; they spent 5 years compiling all their software on Intel in secret, just in case they needed to make such a change. They provided an emulation system to support PowerPC applications for several years so users didn’t have to make a big-bang switch.

Apple play a very long game. They trial new tech in minor roles. For example, the used trackpads on laptops for several years to let them perfect multi-touch long before they put the technology into a phone as the primary feature. iPhone 5 introduced different screen size in a very minor way which meant that existing apps still ran perfectly well, letterboxed to the iPhone 4 screen size. But the good developers learned how to use the SDK features to respond to different screen sizes. Apple introduced an entire new mechanism for laying out components on the screen that let apps deal not just with two screen sizes, but with a wide range of sizes.

Universal apps have let people build a single app that works on iPhone and iPad with different UIs for some time. The experience that developers have gained through this would make it easier to move on to apps that will suit large monitors. Apple know where they want to be when the possibilities of the hardware reaches the right level, and in the meantime they introduce small changes along the way to guide developers towards being able to match their goals with the software.

My view is that putting the 64-bit ARM processors into iDevices is not a way of having a portable, plug-in desktop, but is a way for them to transition to large-screen support for apps on the way to unifying their mobile and desktop worlds. 

Advertisement

A word about software quality

December 7, 2012 § Leave a comment

This is an extract from a rather long comment I left on this blog post and thought was worth posting separately:

Something that has become apparent to me in the past decade is that software quality is something that can only be measured in hindsight. Most good programmers can write a program that achieves an immediate goal in a reasonable number of lines of code, with a reasonable performance profile. But any significant body of software itself does not exist in a static environment. Really good software is easy to change when the environment it runs in changes. The software might be running inside a company that frequently, or even continually, is evolving its operating practices. Low-quality software impedes that evolution by being rigid and difficult to update. High-quality software can be easily updated to cope with that change. The updates are isolated into well-defined modules with high cohesion and low coupling to other parts of the system. High-quality software is software that the other parts of the business to not end up coming to despise because of its lack of ability to support what they want to do next.

Truly great software goes one step further: it sparks the imagination of its users to think of doing things that they would not have though of otherwise, and is easily changed to support those new ideas. This creates a feedback loop that results in both better software and better use of that software than anyone ever anticipated.

Where Am I?

You are currently browsing the software category at Multithreaded.