Appcelerator Titanium, only in a perfect world

Thoughts By 7 years ago

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.

  • Dave Cameron

    I quite like the phrase “a poorly executed drag act.” Captures what it looks like in the worst case.

    I had thought Titanium cross-compiled at compile time. So, although it wouldn’t be as smooth as a native app, at least it wouldn’t be wasting the phone’s processor doing run-time translation/emulation. Something like PhoneGap certainly does it all at run-time.

  • matt

    Will, I agree with your comments that if you are a developer that’s sole mission is to create the best mobile applications you can for a specific SDK and market, then why would you use a ‘middleware’? Totally get that. Middleware makes sense for a business though, that want to enable their workforce with mobile applications. I have seen first hand where a large organisation developed an application on a specific SDK and had great success with it, but when their CEO asked their IT department to ‘push it out’ to every other mobile device, they hit a brick wall. A middleware solution was able to deliver what they needed fast, at minimal cost and with no loss of look, feel or functionality, and was able to reach all their mobile devices. Businesses are now demanding mobile applications to enable their workforce, and they can sometimes have 20 or more mobile platforms out there. Unless businesses have very deep pockets and can afford to build and support the same application on multiple SDKs and versions, then I suggest there is an arguement for middleware.

  • Will
    I agree with your first assumption. It is nice when technology is compatible. This is why we have standards. Well thought out integrated standards that enable systems to communicate.
    Relying on an SDK that develops for a single platform is a huge step back. Mainframes used platform specific code that enabled manufactures to lock in computing power to their platform. The early days of PC were more than WinTel and Apple dukeing it out. We had every manufacture of every chip in existence creating an OS that didn’t compute on another platform. (Who can forget the browser wars of the 1990s’) Welcome back to the 1980’s with the current mobile device wars.
    So you target middleware in the form of Titanium as an evil. For starters THIS IS NOT MIDDLEWARE! Middleware is an abstraction layer that allows machines to seamlessly work together. It is not an application that refactors (or transcodes) one application into another.
    I agree with you that no one (except the terminally lazy) should use this abomination.
    The point you are missing is that content should be accessible to users without consideration for a device. The great God of Web standardisation (W3C) states in its Mobility strategy “One Web means making, as far as is reasonable, the same information and services available to users irrespective of the device they are using. However, it does not mean that exactly the same information is available in exactly the same representation across all devices.”
    If you are developing applications that deliver content or functionality, you cannot ignore a large percentage of the user base.

    Freedom for all content.

  • Tweet from Appcelerator – @CEPitchford @b2cloud Welcome. As ex, check out Wunderlist. Top 25 app, #1 productivity, iPad, iPhone, PC, Mac, Android coming. 80% reuse.

  • Pingback: The Eject Rate | b2cloud()

  • Pingback: A tribute to Adobe Flash | b2cloud()