A bit over a month ago, Andreas Constantinou wrote quite a provocative post about how mobile apps are Web 3.0. It’s an interesting read – one I definitely recommend.
While I do agree with what Andreas says there about how developers are shifting their efforts from web browser services to downloadable apps for mobile devices, this change comes with a huge price. That price is portability.
When you develop for the web you essentially choose a platform and programming language for your backend service – be it Linux/PHP, Windows/.NET or some other combination. And then for the frontend, you simply use HTML, CSS and Java Script. You muck around a lot with compatibility across browsers, tweaking your CSS to fit and maybe even sacrificing features on old browsers (think IE6). But you always stay in the same domain: HTML, CSS and Java Script.
Now that we’ve moved to the mobile web, powered mainly by apps, we’re in a different domain. Apps are written in programming languages sanctioned by mobile operating systems:
- For Google’s Android that’s a flavor of Java with their Application Framework on top.
- For Apple’s iPhone that’s Objective-C with Cocoa for the UI.
- For Blackberry devices it’s Java.
- For Windows Phone it’s Silverlight and XNA (essentially C# stuff)
This means that if you plan on developing a mobile app that is cross-platform, running on multiple devices using different operating systems – you are going to hit a portability issue.
To me this is no Web 3.0. It is simply development over multiple embedded environments, each with a different programming language.
For mobile apps to really become Web 3.0 there needs to be better standardization of the development tools that are used and the way visualization and haptics are handled. And I don’t see this happening in the foreseeable future.