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.
Microsoft historically comes from behind, and history may be repeating itself with Microsoft coming from behind like a tsunami. See this new Xbox TV commercial as an example.
This is amazing if it actually works. No more remote control. My life will love me, the price of a Xbox is worth it just for that alone. This is the TV future I have been patiently waiting for.
The big surprise here is that this is not Apple. The Apple-Media-Club (Gets a lot of clicks to fanboy apple) have always been waiting for this in Apple announcements. They have been predicting it for years. So the fact Microsoft has in some ways overtaken Apple here would be a little shocking to them, (But not surprising to me). And really, if Microsoft can make the best game console into such a usable platform in my living room, and I can easily justify it to the wife. Wow, this is a winner indeed.
The interesting point here is how fast can apple respond or will they even bother. Will Apple just keep pushing the AppleTV cheap small unit out as is. Or may be, in an upgrade/new unit, get voice (new iPhone 4S-Suri) control? But not motion control, you would need to much CPU I imagine.
Still, could we ever see Apple allowing an iOS tool to control an Xbox like an AppleTV. This is the question. Apple tends to only allow Apple technology to work with Apple technology. This is the one MAJOR failure with Apple. Yes this has given them an advantage in the early evolution of this technology, but as it become more pervasive, will this be the cause of mass abandoning of Apple closed technology?
Will apple open up? Especially now the Steve Jobs era is over?
I have been waiting for this “Change over period” for a long time. I am just happy it seems to be upon us.
As a 42 year old developer who started using a VC20 computer when I was 9 years old, I have seen how the world has evolved over the years. It amazes me how we are set to repeat the errors of old. Even with the internet recording the history of programming patterns, the new generation seem happy to drink the coolade, ignoring that history and walking us into mountains code that is not cross platform.
The current war cry of the blogger based movement is, HTML5 or native code. To a long tooth coder like myself, both are unrealistic and if anything, based on propaganda by large companies with hidden agendas.
The objective for a programmer is to build a solution using the best tool for the job. To build a solution that is cost effective and works within the capabilities of the client. For example, budget, time frame, future proof etc. HTML5 and native code are exactly NOT this. For the programmer, this type of development may be interesting and fun, but for the client, these technologies do not supply these results.
HTML5 is, when looked at objectively from a management perspective, is most lkely the worst programming language combination of tools ever invented. It utilizes about 5 different technologes all trying to run together, pushed by “commitees” with aifferent agendas and finally, implemented by a plethora of comapnies trying to better each other.
Native code does produce better results on slower platforms, but also locks you into those platforms. It feels like the PC/MAC wars all over again.
The ironic issue here is that once HTML5 does mature enough, it will be used for the same annoying content Flash is used for today, however, once integrated into the base HTML code, it wll be impossible to remove ads and other annoying portions of a web page. Has anyone ever considered that this is EXACTLY what Google wants as it make it impossible to block premium content ads?
If we look at Adobe Flash as an example, there are reasons why it became as popular as it did. The core reason is that it was truly cross platform. Produced results closer to native applications that HTML could not. Used a few more cycles then native code but worked everywhere. Was far easier to develop for. It was everywhere because it was simply enough for any coder to master.
The push into HTML5 and native apps only helps the companies we use these technologies with. In the short term with the imature platforms from Apple, Google, Microsoft, yes following these paths have some short term gains and hype about them, but in the long term, the same old problems programmer have had will start to float to the surface and technologes like Flash will come back like a train.
Be it flash or a new generation of cross platfrom tools, being open or closed. The current trends are foolish and short sighted. They only help the large monolithic companies archive dominance through lock in or lock out.
HTML5, locks you out of truly effective apps, native Apps lock you in to the vendor your using.
If anything, I wish the bloggers and media would talk to real programmers, and not the properganda from the larger companies. But then again, we all need to get paid.
Mobile development has always been a pet hobby of mine. I have been studying it for quite some time. Not knowing which way to jump.
Yesterday, however, I discovered a huge issue with Android. A fundamental fault in Android that, as a developer, lets all the hot air out of it as a mobile platform.
What is the issue? You may ask.
The problem with Android is that it underlying exposed API’s are not static. Meaning, each vendor who makes a phone, be it with blackberry type keyboard, slide out keyboard, or any custom input device, have been implementing non-standard API’s. This has lead to Apps having a moving target in terms of compatibility. (Ie, its near impossible to make an App that works on most Android phones.) You can spent 2-3 times longer just making the App work on different phones, then writing the app itself.
After learning this, I now understand why Ice Cream Sandwich is such an important release. And why it slated to be taking so long.
If Google plan to make Android a viable App platform, they need to act as a traffic cop and force all hardware makers to adhere to common API’s across all phones. Ie, so an App has a fighting chance to work across most phones.
This is a big turn in direction to make, so much so that they will have to re-think many of the business relationships and models currently happening with Android. Ie, a Reboot, potentially into a completely new Android world is required if they plan to stay relevant. Windows Phone really has a chance to leap frog Android here. Microsoft appear, from what I have heard so far, to have done this right out of the gate.
Currently, I am now leaning towards Apple iOS as it does have this right. I have a love hate relationship with Apple. I am not a big believer in some of its business practices. They can be very unethical at times, but they do know how to make an OS eco system for mobile.
Google Plus looks great. Its been a while since I have blogged but this is defiantly something I simply have to speak up about. Put it simply, my initial impressions is that Google Plus is the alternative to Facebook I have always wanted but was not sure how it would actually look like. All the little issues I have with Facebook or don;t like about facebook seem to be addressed in Google Plus. It seems to be a tool for me and not a tool for Zuckerburg to take advantage of my information or to promote to me.
One of the main reasons I am excited about it, but at the same time dissapointed (see below), is that CIRCLES seems perfect for making my hundreads of connections, Family, friends, co-workers etc. manageable from the one account. I will not have to keep different accounts that portray me differently to different groups..
For example, when in work related groups, I am all serious and not much fun, while in groups of my close friends, I am a bit of a joker and like to take the piss out of things..
I need to keep these “FACES” I like to call them, seperate. But at the same time, I cannot manage my online existance through a plethora of different portals (Multiple gmail acounts, facebook, linked in. goes on and on..) Its just not manageable.
At early glance and from the information I am getting, Google Plus should be able to handle this complex problem from one central account. I cannot wait..
There is just one MAJOR problem Google needs to fix.. Google Apps accounts are still not available due to the fact they do not have profiles associated with them.. I live in my Google Apps account….. The word is that this support is months away, but then again it has been just around the corner for 12 months now..
It will be a massive FAIL if Google Plus does goes public without Google Apps support.
Otherwise. Google, you have surprised me. This actually looks great out of the gate. Not like Buzz and WAVE, Interesting tech/tools but not a simple path to seeing what it can do for me.. Log into Google Plus, the amazing interface design and best of class HTML5 design. Easy to use, pritty to watch.
Facebook feels like a black and white TV. Google Plus feels like the new Colour TV behind the show room glass. Look whats coming..
All I can say is. I want it now.. Its just go to work in my Google Apps account…