Published by Vlasta on October 31st 2012.
The last couple of days was full of tablet news. First, Microsoft released its Surface with Windows RT and then Google announced the Nexus 10 tablet with latest Android. They are both very nice products, possibly powerful enough to run a scaled-down version of my image editing software. And I would love it if my software worked on tablets, but sadly it is not going to happen in the near future. Here is why.
I have been developing Windows applications for years. Currently, I have tens of thousands of lines of C++ source code with user interface portions written in ATL/WTL and hence tied to Win32. I presume many other Windows developers are in a very similar situation.
The WinRT API looks very attractive to a C++ Windows developer. It is partially compatible with Win32 on the low level, but offers completely different experience for user interface designers. DirectX+HTML5+Javascript is a great combination.
Still, it would took me at least half a year (likely more than that) to re-implement the user interface of my image editor in WinRT. And I cannot abandon the old code, because the new application would only work on Windows 8 and Windows RT. That is not acceptable. I would then have to maintain 2 completely separate pieces of user interface code.
But the real show stopper is the Windows Store. Windows Store is the only way to add applications to Windows RT. Windows RT is a closed garden. Microsoft decides, what applications can be in the store (and in consequence on users' computers). Imagine, me investing 1 year of my time and then Microsoft deciding that they don't want may application in their store. Year of life down the drain.
While this risk associated with someone having a veto right over your application may be acceptable if an application takes like 14 days to develop (and 90% of apps seem just like that), it is unacceptable if the investment in time or money is too high. For me, it is too high. This may be the reason, why there are so many crappy and shallow apps for tablets and so few sophisticated and productivity apps.
My problem with Android is mainly technical. The flagship programming language for Android is Java and that is not a suitable language for high-performance image/photo editor. Managed languages simply don't cut it in this area.
It is true that Android is slowly building better support for C++ with their Native Development Kit, but they are not there yet, you cannot simply do user interface via NDK. If the NDK ever becomes the #1 important thing for Android developers, I will reconsider my position. At this moment, I estimate that converting my Windows applications to Android would probably took twice as much time as converting it to Windows RT and it would be much harder to maintain the 2 versions. That is too bad.
Well, iOS is closed just like Windows RT and it does not have its nice API. So, it combines the worst of Windows RT and Android from a developer perspective.
I honestly do not know. Apple is out. Microsoft has a very good API, but blew it with their policies. Now, my only hope is that the Android team will put more effort into the NDK. I wonder what the situation will look like in one year.
Find out how Vista icons differ from XP icons.
See how RealWorld Icon Editor handles Vista icons.