{"id":4198,"date":"2011-04-16T22:26:34","date_gmt":"2011-04-16T21:26:34","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/4198-is-appcelerator-titanium-native-and-what-does-native-mean-anyway.html"},"modified":"2011-04-16T22:26:34","modified_gmt":"2011-04-16T21:26:34","slug":"is-appcelerator-titanium-native-and-what-does-native-mean-anyway","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/4198-is-appcelerator-titanium-native-and-what-does-native-mean-anyway.html","title":{"rendered":"Is Appcelerator Titanium native? And what does native mean anyway?"},"content":{"rendered":"<p>Of course we all know that Microsoft\u2019s IE9 and the forthcoming IE10 are native \u2013 VP Dean Hachamovitch said so many times during his keynote at the Mix 2011 conference earlier this week. That has sparked a debate about what native means \u2013 so here is another interesting case.<\/p>\n<p>Appcelerator\u2019s Titanium cross-platform tool for mobile development is native, or at least that is what <a href=\"http:\/\/www.appcelerator.com\/\" target=\"_blank\">it claims<\/a>:<\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2011\/04\/image28.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2011\/04\/image_thumb23.png\" border=\"0\" alt=\"image\" width=\"511\" height=\"126\" \/><\/a><\/p>\n<p>Now, I am not sure that native has a precise definition, but to me it suggests a compiled application, rather than one interpreted at runtime. So this description of <a href=\"http:\/\/developer.appcelerator.com\/blog\/2010\/12\/titanium-guides-project-js-environment.html\" target=\"_blank\">how Titanium executes JavaScript<\/a> \u2013 its main language \u2013 is surprising:<\/p>\n<blockquote><p>In a Titanium Mobile application, your source code is packaged into a binary file and then interpreted at runtime by a JavaScript engine bundled in by the Titanium build process. In this guide, you will learn more about the JavaScript runtime environment that your code runs in. Titanium runs your application\u2019s JavaScript using one of two JavaScript interpreters \u2013 <a href=\"http:\/\/webkit.org\/projects\/javascript\/\">JavaScriptCore<\/a> on iOS (the interpreter used by Webkit) and <a href=\"http:\/\/www.mozilla.org\/rhino\/\">Mozilla Rhino<\/a> on Android and BlackBerry.<\/p><\/blockquote>\n<p>So a Titanium application is actually interpreted.<\/p>\n<p>Native is a vague enough term that Appcelerator can no doubt justify its use here. \u201cNative UI\u201d is fair enough, so is \u201cNative capabilities.\u201d Native performance? That seems to me a stretch, though JavaScript performance is good and constantly improving. Appcelerator even has a web page devoted to <a href=\"http:\/\/www.appcelerator.com\/products\/native-iphone-android-development\/\" target=\"_blank\">what it means by native<\/a>.<\/p>\n<p>Titanium is also open source. Anyone doubtful about how it works need only consult the code.<\/p>\n<p>In the light of Microsoft\u2019s statements, it is interesting that what Appcelerator really means by native is \u201cnot a web page\u201d:<\/p>\n<blockquote><p>Build Native Apps &#8230; Everything else is basically a web page.<\/p><\/blockquote>\n<p>So can an application be both native and interpreted? What about Silverlight apps on Windows Phone 7, are they native? Adobe AIR apps, surely they are not native? Google Android has a <a href=\"http:\/\/developer.android.com\/sdk\/ndk\/index.html\" target=\"_blank\">Native Development Kit<\/a> which is introduced thus:<\/p>\n<blockquote><p>The Android NDK is a companion tool to the Android SDK that lets you build performance-critical portions of your apps in native code.<\/p><\/blockquote>\n<p>The implication is that byte code executed by the Dalvik virtual machine, which is the normal route for an Android app, is in some sense <strong>not<\/strong> native code. Which also implies that Appcelerator\u2019s claims for Titanium are at least open to misunderstanding.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Of course we all know that Microsoft\u2019s IE9 and the forthcoming IE10 are native \u2013 VP Dean Hachamovitch said so many times during his keynote at the Mix 2011 conference earlier this week. That has sparked a debate about what native means \u2013 so here is another interesting case. Appcelerator\u2019s Titanium cross-platform tool for mobile &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/4198-is-appcelerator-titanium-native-and-what-does-native-mean-anyway.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Is Appcelerator Titanium native? And what does native mean anyway?<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55,56,67,80,96],"tags":[123,143,156,394,422,586,624,912],"class_list":["post-4198","post","type-post","status-publish","format-standard","hentry","category-microsoft","category-mobile","category-professional","category-software-development","category-web-authoring","tag-adobe","tag-android","tag-appcelerator","tag-flash","tag-google","tag-microsoft","tag-native","tag-titanium"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/4198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=4198"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/4198\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=4198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=4198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=4198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}