Cross Platform Development
Reading this article by an ex-Microsoft employee I couldn't help but toss in my opinion as well.
Odd that a lot of people in the industry are coming to the same conclusion I have held for a while. Cross platform is becoming more and more of a requirement. 5-10 years ago, this would have been non-sense anywhere except on the web (write a PC app or sink). But in an era where cell phones and tablets are cannibalizing more and more of the traditional PC market with multiple players and platforms and Macs are gaining momentum but not yet a majority, life as a developer is becoming more challenging. But also markedly more interesting.
It is becoming challenging because it is becoming harder and harder to write something for a single ecosystem and be successful. What is the right platform to launch on? Or which platforms? And even the definition of "single platform" is growing more complex. As players in the market add more form factors of devices and unifying the user experience, people are expecting more and more that there be some level of interaction between them. But the biggest gain is still typically found in the toughest approach. To be successful it would be ideal to target as many platforms as possible which typically means writing the same code for 2-3 vastly different platforms (iOS, Android and Windows Phone|BlackBerry being the common divide in mobile and Mac and PC in the computer industry).
As a by-product though, there is also a lot of interesting stuff happening on the various platforms and a lot of interesting potential for applications which can communicate with different form factors of devices. Each platform tends to have its own unique features like widgets in iOS or live tiles in Windows Phone and these provide both the platform provider and developers interesting ways to differentiate their products.
Because there isn't a homogeneous set of features and functionality across the board, and the underpinning are always a little different the best experiences and most robust experience will almost always come from applications with a significant investment in native code. And it isn't just features and functionality. Every also ecosystem has it's "theme" or "vision" and applications which don't mesh with that can feel out of place on a device.
But writing cross platform with pure native code would be silly. Nay stupid. Yes, if you have infinite resources, go ahead. I still advise against it. Shared code IS a good thing. Code reuse IS a good thing. And most "core" logic has nothing platform specific. So if you can provide your core libraries in a language which can be compiled cross platform or served from the web (traditional web service or cloud)... DO ET! Then, focus the effort making the user experience native and good. You may spend more time, but you'll improve the odds of being successful and you can provide software you can be proud of that runs on multiple devices.
Odd that a lot of people in the industry are coming to the same conclusion I have held for a while. Cross platform is becoming more and more of a requirement. 5-10 years ago, this would have been non-sense anywhere except on the web (write a PC app or sink). But in an era where cell phones and tablets are cannibalizing more and more of the traditional PC market with multiple players and platforms and Macs are gaining momentum but not yet a majority, life as a developer is becoming more challenging. But also markedly more interesting.
It is becoming challenging because it is becoming harder and harder to write something for a single ecosystem and be successful. What is the right platform to launch on? Or which platforms? And even the definition of "single platform" is growing more complex. As players in the market add more form factors of devices and unifying the user experience, people are expecting more and more that there be some level of interaction between them. But the biggest gain is still typically found in the toughest approach. To be successful it would be ideal to target as many platforms as possible which typically means writing the same code for 2-3 vastly different platforms (iOS, Android and Windows Phone|BlackBerry being the common divide in mobile and Mac and PC in the computer industry).
As a by-product though, there is also a lot of interesting stuff happening on the various platforms and a lot of interesting potential for applications which can communicate with different form factors of devices. Each platform tends to have its own unique features like widgets in iOS or live tiles in Windows Phone and these provide both the platform provider and developers interesting ways to differentiate their products.
Because there isn't a homogeneous set of features and functionality across the board, and the underpinning are always a little different the best experiences and most robust experience will almost always come from applications with a significant investment in native code. And it isn't just features and functionality. Every also ecosystem has it's "theme" or "vision" and applications which don't mesh with that can feel out of place on a device.
But writing cross platform with pure native code would be silly. Nay stupid. Yes, if you have infinite resources, go ahead. I still advise against it. Shared code IS a good thing. Code reuse IS a good thing. And most "core" logic has nothing platform specific. So if you can provide your core libraries in a language which can be compiled cross platform or served from the web (traditional web service or cloud)... DO ET! Then, focus the effort making the user experience native and good. You may spend more time, but you'll improve the odds of being successful and you can provide software you can be proud of that runs on multiple devices.
Comments
Post a Comment