The chimera of using simple JS/CSS/HTML to develop mobile apps has failed. HTML5 and WebOS put up a good fight but they are obviously not enough. Maybe the direction to go from here would be to make native mobile app development simpler for the Web guys and not the other way around. Maybe something like the awesome Kivy Project which helps you develop solid opengl apps in python for multiple platforms: http://kivy.org/#home. I would love to see Facebook put their resources into something similar to this.
> Maybe the direction to go from here would be to make native mobile app development simpler for the Web guys
The way I see it is that in order to build a quality web application, you need to implement the same patterns and structures that the native developers have been using for years. Once a web developer is comfortable with that kind of development, the target platform doesn't really matter. Your code is going to end up looking very similar whether you target HTML5 or a native API.
We somehow built up a mindset that HTML5 is easier to develop with. That couldn't be further from the truth from my point of view. It is just another platform. HTML5 may only seem easier because quick and dirty "hacks" are still accepted, whereas most modern native environments try to promote best practices from the very start (MVC, etc.).
I don't think mere MVC(in the general sense) implementation will do the trick. The problem with Native App Development is threefold:
1. Is not Cross-Platform: Web Developers are comfortable with their code running everywhere without even thinking about it.
2. Has limited access to hardware libraries: Same as above, the developers doesn't need to worry about the hardware.
3. Uses statically Typed Languages: Web Developers who would rather code in PHP, PYTHON, ROR, JS are forced into the intricate worlds of Objective C, Java & C/C++.
The problems with HTML5 are more real. The necessary tools are just not there.
Objective-C is kind of an odd duck there. I think for all intents and purposes, Objective-C can be treated as a duck-typed language and shares many of the same conventions as Ruby, given their shared Smalltalk heritage. Consider the following code:
I would even argue that Cocoa (Touch) shares many similarities to Rails. Someone coming from a Ruby on Rails background should feel right at home on iOS, though perhaps less so on other platforms.