Go Native or Go Home

Daring Fireball: “But at a technical level, is this really something Adobe should be crowing about? The game requires an iPad 2 for performance reasons, even though the animation is 2D, not 3D. The game was originally written in Air for play on the PC, so I have little doubt it was less work to port it to the iPad within Air rather than rewriting it natively in Cocoa Touch. But it doesnâ€ t seem right to me that this game doesnâ€ t run on first-gen iPads. Commenters on Brimelowâ€ s post seem to agree.”

Compiling existing code for another platform can be cost effective, but it doesn’t mean it will translate to a superior experience.

Remember Visual Basic? I do. I’ve written quite a bit of code in VB, and VBA, over the last 15 plus years. I’ve seen a lot of great Visual Basic code in that time. Mostly, I’ve seen a lot of poorly written Visual Basic code. Microsoft wanted to give the power of writing Windows applications to mere mortals and boy did they write applications. Thousands and thousands of crappy Windows applications.

I worked with a great software engineer that tells a story of a former employer having designers develop the client application for their product. This client was written in Flash and communicated to a backend application to do the grunt work. It was discovered the client application was having performance issues. When the developers started looking into the issues they found horribly written Flash code was the culprit. The designers went back to designing, the developers went back to developing, and performance was improved.

My point is this. Just because the tool is easy to use doesn’t mean the resulting code will be well written.

This game may have issues because the code is poorly written, or it could be the cross compiler and its supporting libraries. It’s also worth mentioning someone could write a really horrific game, or application, using native tools, but, I still claim native gives you the best chance to be successful.