What will happen in the future? How will Native Apps fare against Web Apps? As a consumer, which should you use? As an investor, which should you build? As a developer, which languages should you learn?
In my professional opinion, Web Apps will become the standard, while Native Apps will become specialized. As a professional associate succinctly summed up, "Native apps scare me!"
(Before we go on to the reasons why, let me first take a moment to define a "Web App" as a mobile Web application that runs directly in a browser when one visits a site. Think of opening your favorite mobile Web browser, going to angrybirds.com, and just playing the game there. A "Native App" has the same functionality, but you have to go into your App Store, Google Play Store, etc., and install the Angry Birds app to play. You then get a cute little icon that you can tap to open the App in your device.)
Without further ado, here are the reasons why Web Apps will win over Native Apps:
1. DEVELOPMENT COST. To create a native app, developers need to write it in Objective C for iOS users (iPhone, iPad, iPod), Java for Android users (Android, Blackberry, Kindle, Palm...), and C# ("C Sharp") for Windows Phone users. This generally means three different development teams, and three times the cost.
EDIT: Noteworthy here are services that wrap HTML5/JavaScript Web Apps for the different platforms (such as PhoneGap), but at the time of this post, they still have some work to do.
2. JAVASCRIPT. Long considered a second-class citizen to C, C++, Java, and the other "real" programming languages, JavaScript has won out as the language of the Web. It beat out Java, Flash, and Silverlight as the front-end langage, and is here to stay. Any language that tries to take the belt will NOT be accepted by the competition (Google to find out what Microsoft said about Google Dart, and I will leave it as an exercise for the reader to speculate as to what Google will soon say about Microsoft Typescript).
In addition to powering traditional Web sites and Web Apps, JavaScript's tentacles have now reached into the server-side! From a client-server perspective, with the introduction of Nodejs, one can easily create a Web server with JavaScript. In addition, all the social media sites (Facebook, YouTube, LinkedIn, Pinterest, etc.) use JavaScript to power their pages. There's even a couple of JavaScript-based databases in the works out there, that store base tables as JSON objects. In sum, JavaScript claims an unprecedented enterprise-wide solution: Web pages, Web Apps, client-side scripts, server-side scripts, and social media!
From an investment perspective, JavaScript has a large community of programmers. It's easier and cheaper to find a JavaScript coder than an Objective C, Java, or C# person.
I've even considered changing my title from "Front-End Web Developer" or "Web Developer" to "JavaScript Developer."
3. APPS BLOAT YOUR PHONE AND CAN'T BE REMOVED. Think of the bloatware that AT&T ships with their phones. More than dozen programs that do little more than eat up memory and slow down my phone. Only a true n00b would pay $10/month for AT&T Navigator when Google Navigator is available for free. Adding insult to injury, you _can't_ uninstall some of these apps without rooting your device! I installed the Facebook app (for the last time in my life). It does not work, and freezes when I try to use it for Facebook, but is exceptionally good at starting itself and reporting usage data back on me. It cannot be removed, and will not die; I'm stuck with it--and all of its inherent privacy concerns--for good.
4. APPS START THEMSELVES AND DO STUFF IN THE BACKGROUND. Ever wonder why you have five bars and your phone is hanging while you try and load a Web page? There's a bunch of apps doing stuff that eats up your memory, slows down your phone, and clogs up your bandwidth. Often, they're reporting usage data about you back to the mother ship--even when you're not using the app, and didn't even start it. Very frustrating, especially when you're trying to quickly pull up a train schedule to find track information and you've only got minutes to spare.
5. APPS HAVE BUGS. As a professional Web Developer, my code never contains bugs, but I find bugs in other peoples' code all the time. Although their icons look sleek and beautiful on those super-high resolution screens, behind them often lurks some code that's buggy as a woodpile. This translates to slow page loads, freezing phones that need a reboot, and other performance issues.
6. RED TAPE. It's easier to get married and divorced than to get your code into the Apple App Store. It can take years, and you have to play by their rules. They censor apps that conflict with their business model--notice how all the Apps to turn your phone into a WiFi hotspot are strangely missing in action. Alternatively, on a browser-based platform, content can be made available immediately, simply by publishing to your Web server.
7. UPDATES. Web Apps do not require you to install updates. The provider simply updates the content. Just go to the site, dump your cache, and you've got the latest.
All this being said, the one big advantage that Native Apps is that it's easier to charge for them. You can give the consumer a trial version for free, and charge for the full version. Of course, from the consumer's perspective, this is most definitely _not_ an advantage!
Native Apps do have their place. In some circumstances, you really do want a Native App, such as when information must be available when a signal is not. But generally, my advice is to focus your investment on a great Web App.
Sincerely,
Keith :^)
~kjm~
keithjmiklas@gmail.com
Keith Miklas is a professional JavaScript developer at a large corporation.
All rights reserved by Keith Miklas. May not be reproduced without expressed written consent.
Tuesday, October 16, 2012
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment