Recently a paper was released on “Cross Platform Tools”, which are tools to allow a developer to write once and publish on multiple platforms such as Apple iOS, Android, etc. This document was a breath of fresh air as it goes against all the propaganda, which I have always disagreed with, coming out of Apple, Google and Microsoft. Specifically it indicates that CPT’s are exploding. More and more professional developers are abondoning the “rules” preached to them by the big three. Rules that lead to Developer Lock-in.
The now famous letter from Steve Jobs on why he would not allow the Flash cross-platform-technology on iOS is the turning point in this story. It was after he posted this letter, awash with untruths and deceptive examples, that Apple was able to implant an idea that was completely based on small mindedness and personal business interests. Bloggers and high profile media outlets loved this controversial stance. It generated a LOT of clicks. Since Steves Jobs’ death, much has been written about his deceptive and unethical methods.
Since this idea that Steve planted took a strong root, the other big companies followed. Apple had Objective-C, Windows-C# and the Metro style development environment and Google, the Android SDK, based on open source java, but still very closed in nature. It is no coincidence that these platforms are all so different that to port from one to the other generally requires a complete rewrite: a very expensive exercise. In general, it means you need 3 programming teams, one for each platform. This is truly developer lock-in. Only the biggest and most high profile apps can afford this multi-stream development.
The big three are also very guilty of bad mouthing CPT’s, notably demonstrating how poorly Flash runs on OSX and Android. The lesser known fact is that in those examples, Flash was severely disadvantaged by only being allowed access to “Approved” API’s. A brief example of this is that Flash runs very well on Windows, so you know the code is good, however, where it falls down on OSX is that Apple only allows certain “Approved” API’s for Flash to use to allow it to draw on the screen. It is utilising these Apple API’s that is predominantly the cause of this poor performance on OSX. Not that any media outlet would have a journalist capable of understand the complexities of this. Similarly, Android forced Adobe to only support JAVA-jit-code based version of Flash, again resulting in terrible performance and undermining its ability to run natively under Android. It is like running an interpreted language on an interpreted language.
To help understand the motivation of the big three, I think it’s important to point out some obvious developments that motivate them. Specifically the recent emergence of the “App Economy”. The big difference between the Web-App and the App-Economy or Native Apps running on devices, is how we access them. To install an App you must go through a gatekeeper, namely Apple, Google and Microsoft. The development of the App Economy and the oligopoly of the three big players is another topic, but the most significant quality of an App Economy is the ease of commercialisation. The Web-App economy has had a hard time getting to commercialisation. The App-Economy and its gatekeepers are completely entrenched in extracting money from users. So much so, they are doing everything to encourage the adoption of the App-Economy. This also includes book writers or any other media industry trying to figure out how to get paid for the distribution of media on the Internet.
This leads the big three to introduce platforms and propaganda that lockup App developers to their platform and ensure App consumers will only go through their gate. Indeed the pot of gold at the end of this rainbow is bigger then anyone can imagine.
Before I move on, I would also like to point out a particular “WHY” based on only one the the three. Google. I have been indirectly involved in advertising all my career. One of the most interesting aspects of this is that Ads that annoy are usually very successful and cost effective to make. People talk about them because they annoy them. This in effect is a sucessful ad as the viewer remembers the Ad and therefore the product and so is more likely to buy.
Flash was, to the internet, the tool that aloud such ads onto the Internet and is predominantly why it is hated. Steve was right in so far as the removal of Flash from the browser brings a better experience as it stops the advertiser from doing anything more then static/passive ads. Easy to ignore. (Note: have you noticed how Apple iAds are just as animated and annoying at Flash ever was) This, however, is only a short term victory suited to leveraging the iOS platform. The push of HTML5 to quickly “copy” the flash technology into its open source implementation means all this annoying ads will return. However, there will be no way whatsoever to filter them out. Your “ad blockers” will not be able to differentiate between function web page and annoying Ad. This is where Google has a big stage in the game.
These HTML5 annoying ads take much more money to make and in general pull top dollar for advertising. The adoption of HTML5 completely removes the possibility to filter these ads out. A dream for Google.
The adoption of HTML5 as the only web programming platform also makes Web-Apps feel inferior to any device based Apps. This encourages the adoption of device based Apps through the big three App-Stores.
Who is using what.
If you look past all this propaganda and take a closer look at the companies doing the bulk of the Apps appearing on the top-App lists, a significant number are done in CPT technologies. Companies who understand the business of software development need to see past the propaganda if they plan to be competitive. As indicated in the report above, CPT technology can save you up to 70% of the costs of doing native development on multiple platforms. The future of the App-Economy simply cannot afford anything else but CPT tool sets.
If we consider that, like the web-app-economy, we have millions of websites, then we are also likely to have millions of Apps. To understand how the App development technologies will trend, all we need to do is look at how Web-Site development has gone.
By nature, web sites are cross platform. HTML5 and the energy behind it is mostly driven by this fact alone. It is also a major factor why many of the hundreds of CPT’s covered in the report are HTML5 based. But we must also take into account that the report points out HTML5 has the highest implementation costs to archive the same result compared to almost all other technologies, ie. it takes a lot more work and man hours to get HTML5 to do the job. Still, HTML5 is a standard and many developers already have a huge intellectual investment in it. HTML5 will be a significant element of future CPT’s.
Considering these trends, it is inconceivable to me that anyone developing Apps in the near future would not be using some type of CPT . What we are waiting for is the WordPress of the Device-based-App world. It will come, and is likely one of the CPT’s mentioned in the report.
The answer to this is a personal choice and would likely be led by the development languages you already know. But at this stage, it is a neck and neck race where it would be hard to pick a long term front runner. I have my preferences but that is based on my past experience. If you feel you need to jump in now, I recommend you read the report in the link above. It has very good overviews of many of the top CPT’s with high adoption right now. Have a read, see what makes you smile and go for it. It’s the future of App development.