Ideally all technology would be compatible and easily integrated with each other. There would be 1 programming language supported across all platforms. API’s would all be standardised and no private companies would interfere by monopolising the SDK landscape but only contribute to IEEE standards panels. But we don’t live in that world do we?
Some products would have you believe we do, claiming easy cross-platform support and all in languages such as the widely used HTML/CSS/JS family. Sounds nice? It isn’t. Being an iPhone developer I often cringe when I use apps that have obviously had some kind of middleware in between them crudely translanting a scripting language into something that could be described as a poorly executed drag act.
It is important to ask why developers or publishers would want to engage with middleware such as this. Is it because it generates better quality applications? Certainly not. The applications Titanium and the like will produce will use more memory and processing power (due to the conversion of a scripting language to a proper programming language), and in the Mobile Application field this is simply unacceptable, we have very limited resources on mobiles and can only stretch so much, this just makes how far we can stretch that much slimmer. I know I have hit processing blocks, especially when dealing with Audio, I can only imagine the penalty if I was using this on Titanium. Keep in mind these tools have never produced gold standard iPhone applications. So given that we are not producing greater quality applications why are we using it? Well it depends who is pushing for the change. If it is a manager they are looking to cut costs by sacrificing quality by reducing the time it takes to target multiple platforms. If it is a developer they are either eager to try it out or they are stubbornly refusing to use the native SDK for the project they are working on due to being set in their ways. I do wonder why these kind of developers don’t just… you know… create Web Apps which are fully supported?
If you are lazy, then use middleware to translate web code to app code. If you are a professional, do it properly.