Monday, April 06, 2009

PhoneGap and alike

I came across their website (www.phonegap.com) a while ago, but to be honest, I'm not a fan about what they are doing.

At the first glance it may sound like very cool -- write once, run on every phone! It sounds reasonable to add another level of indirection to sum up all phone SDKs. But the problem is that there are enough significant differences between these platforms that would make guys like PhoneGap having to design a super set of all libraries and frameworks. Now it comes to the question how well PhoneGap guys can
understand ALL the platforms they want to support, and how well they can interpret that in the meta language they choose. Even if they did a good job on these (i.e. their APIs are at least as good as that of Google and Apple and RIM and include them all), I still don't see how they make writing code for different platforms easier, since I still think the barrier of learning an SDK is not the programming language
but the libraries and frameworks.

Not to mention the design problems and bugs they could introduce as a middle man. And the fine-detailed tuning needed to write a high performance app -- remember how much effort did we put when trying to make MF run faster?

If you don't believe me, take a look at that crappy TransLink app. :) (that's the only meaningful listed apps I could find in the Market, the other app HAL just shows a button by clicking which it plays some funny noise) -- it looks awful, doesn't support Android's hardware menu, and doesn't work well when sliding out the keyboard, etc. I don't know what to blame, their coding skills or their choice of PhoneGap. :)

IMHO to write serious apps on different platforms while saving cost, a practical approach is to hire human programmers to handle UI and hardware dependent code for different platforms, and rely on cross compilers to produce core domain code -- this is where things like PhoneGap or XMLVM could be useful.