Caught your attention? You say that mobile application development is in its infancy and is about to explode, so how can it be ending? Well, in the next 12 to 18 months, almost all user-facing devices will become mobile, resulting in a convergence of mobile and desktop application models. In other words, mobile application development will become the mainstream style of client-side application development for most new applications.
This cataclysmic shift will happen because Microsoft has decided to re-imagine the PC to encompass the tablet form factor by embracing a touch-first user interface and a sensor-rich hardware architecture.
Historically, the term “mobile apps” was used for applications whose front-end ran on mobile devices, typically phones. The iPhone revolutionized the nature of mobile apps by introducing a touch interface and a rich set of sensors into the device, and that functionality was exposed to developers. Android smartphones followed soon after, and recently the iPad and Android tablets have shown us the full power of this new style of user interaction, causing Microsoft to go back to the drawing board with its next generation of the Windows operating system, Windows 8.
Throughout the last 12 months, Microsoft gave some hints of this re-imagining by first announcing that it is porting Windows to the ARM processor to enable it to run on the same type of hardware the iPad and other tablets run on, then it showed a touch-first interface based on the Metro UI it introduced in Windows Phone. Most recently, at the BUILD conference, Microsoft revealed the programming model for Windows 8, and the variety of languages and APIs developers can use to build Windows 8 touch applications.
The future of the PC: Microsoft’s re-imagined PC is a dual personality device, which, depending on the hardware form factor and chipset, may or may not run existing applications. ARM-based devices will not run existing PC apps without recompiling, while x86-based devices will. Device makers are expected to make tablet form factors as well as traditional clamshell devices that may or may not sport touch-screens.
While users will face more complicated purchasing options, developers will also face an array of choices in programming languages and models. It is expected that Microsoft will put its energy behind an enormous push to encourage Windows ISVs to rewrite their apps for the new touch interface.
Microsoft’s strategy with Windows is in essence to evolve the PC toward tablet devices, which is a departure from the approach Apple followed with its separate and different iPad and Macintosh product lines. For Microsoft, the converged strategy makes sense because its success will depend on bringing the depth and breadth of its Windows ISV ecosystem to its new tablet offerings in order to succeed. The iPad is a formidable competitor, and the success of Windows 8 devices will depend on the portfolio of touch applications that Microsoft is able to build.
For businesses, Microsoft’s approach of offering a converged architecture gives it the best chance to retain as many of its customers as possible, as they will be able to support their existing enterprise application portfolios while offering subsets of their employees tablet devices. At this point, we have seen the future of the PC, and it is every bit a mobile device.
The future of client application development: The planned evolution of the PC paints a picture of a new world in which all devices are mobile and several platforms compete for the hearts and minds of developers. The broad client-side application developer community will stratify along the major competing platforms, including iOS, Android and Windows, each anchored by distinct languages and skills. These sub-communities will form broad platform ecosystems anchored to certain technologies such as Objective-C for iOS, Java for Android, and C# for Windows, though by no means exclusively.
The principle behind platform ecosystems holds that developers are more likely to invest in learning technologies, languages or frameworks that are more congruent with existing indigenous technology in the ecosystem or introduced by ecosystem leaders. Ecosystems may not be technologically pure and may share baseline technologies with other ecosystems (e.g., all may offer C/C++ as a language option). Developers may also explicitly choose to affiliate with multiple ecosystems. But the principles behind ecosystem building and leadership will prescribe the actions, strategic decisions and alignments that the various players in the market will make over the next few years as they exploit the natural developer ecosystems.
One ecosystem that has seen considerable growth over the last few years as the Web has transitioned from a collection of websites to one that is content- and application-centric is the Web developer ecosystem. HTML, JavaScript and CSS are the anchor technologies behind the Web, and while Flash and more recently AJAX have brought true applications to the Web over the last few years, the set of technologies known as HTML5 is expected to deliver the Web to its application destiny.
The Web ecosystem is expected to grow aggressively to challenge native platform ecosystems, and Web apps running on mobile devices are expected to become a permanent fixture in the future of client-side application development.
Al Hilwa is program director of application development software at IDC.