The motor car industry is in transition right now. It is a slow process that will take the motor car back to it's roots as the 'electric carriage' of the 1830's. Electric cars were common until the petrol (gasoline) overcame the limitations of battery storage capacity and vehicle distance, to dominate the market for over 100 years. The long term trend in the rising cost of fuel, the impact of the combustion engine on the environment and changing social/work patterns have re-introduced the electric car back into the market.
Despite electric car innovation, if you are in the market for a new car today, it's likely that you will settle for a hybrid. The hybrid overcomes the deficiencies of current battery technology in electric cars while offsetting the rising cost of petrol.
Mobile application development can be described in much the same way. When people talk about writing mobile applications, they often talk about 'native' and 'HTML5' based applications. When you think of 'native' think 'petrol'. Developers will write apps in 'native' code - that is code that runs natively on the operating system. Because mobile devices use different operating systems, developers have to write their application multiple times - thereby incurring a high cost of development. And testing. And bug fixing. And enhancements. Even if you plan only on supporting iPhone and Android - that's still a hefty investment to make for the same piece of functionality. You will never have functional parity (think Windows and Mac software). Don't be fooled by that starry eyed programmer who is telling you that writing a native application is the ONLY way to build your mobile application.
There are many advantages to the pure hybrid model (by 'pure' I mean there's no cross compilation of the source code - it is just run it as-is) - these include
- faster time to market
- standards based web programming model
- access to native device features
- development team needs no training and no expensive native programmers to hire
- reuse existing web assets - including mobile web assets
- cost of maintenance is low
- not locked into any vendor
- faster iteration time to build and revise applications
Just as with the car, if you are looking to build the next generation of platform independent, smart, context aware, enterprise mobile applications at low development and maintenance cost, then you want to go with a hybrid.