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
Wednesday, July 4, 2012
Should a Computer be Shut Down at Night?
I'm sometimes asked if a computer should be shut down at night while one sleeps. Although it can be easy and convenient just to leave it on, there are some good reasons why you should either shut it down--or at least hibernate it--when not in use.
1. FANS. Since fans are mechanical, they're usually one of the first things to die. If you leave your computer on when not in use, the fans keep spinning, putting hundreds of thousands of pointless revolutions per minute (RPM) on the little guys, ultimately reducing their life.
When a fan dies, your computer will not be kept cool, and its temperate will rise until it hits the "auto-shutdown" threshold set to protect the more expensive parts. Your computer will then shut down "hard," many cleanup tasks will be omitted, and it will turn off quickly.
Not recognizing the signs, a user will often try a bunch of times to reboot their machine--particularly if they really need their machine. Some computers may actually be set to immediately reboot on a "hard" shutdown, leading to a loop of reboots/hard shutdowns. Either way, the user ends up with many "hard" shutdowns in a row, which sooner or later cause operating system trouble--think blue screen of death.
Now, you're stuck with two problems: a fan replacement, and an operating system problem. All from a $10 fan that failed.
2. POWER SURGE. Sooner or later a thunderstorm is going to blow in at 3:00am. If your computer is on, it is at risk for damage from a near strike of lightning.
3. WASTE OF ELECTRICITY. At a minimum, leaving your computer on all night wastes electricity and money.
4. HACKERS. This is less of a concern than the above, particularly if you've got some decent security software installed, but why tempt fate? Idle computers make great targets for hackers. Spiders crawl the Internet looking for machines that are left on, and your machine and data could be hacked while you're sleeping.
5. FIRE. Again, generally less of a concern, but given its risk to health and safety, deserves mention. Yes, computers do occasionally go "up in smoke." Leave your computer on at night, and there is a chance that it could start a fire.
In sum, I recommend shutting down your computer at night. In addition, I also recommend setting up the "auto-hibernate" option for two hours of idleness. Happy computing! ~kjm~
1. FANS. Since fans are mechanical, they're usually one of the first things to die. If you leave your computer on when not in use, the fans keep spinning, putting hundreds of thousands of pointless revolutions per minute (RPM) on the little guys, ultimately reducing their life.
When a fan dies, your computer will not be kept cool, and its temperate will rise until it hits the "auto-shutdown" threshold set to protect the more expensive parts. Your computer will then shut down "hard," many cleanup tasks will be omitted, and it will turn off quickly.
Not recognizing the signs, a user will often try a bunch of times to reboot their machine--particularly if they really need their machine. Some computers may actually be set to immediately reboot on a "hard" shutdown, leading to a loop of reboots/hard shutdowns. Either way, the user ends up with many "hard" shutdowns in a row, which sooner or later cause operating system trouble--think blue screen of death.
Now, you're stuck with two problems: a fan replacement, and an operating system problem. All from a $10 fan that failed.
2. POWER SURGE. Sooner or later a thunderstorm is going to blow in at 3:00am. If your computer is on, it is at risk for damage from a near strike of lightning.
3. WASTE OF ELECTRICITY. At a minimum, leaving your computer on all night wastes electricity and money.
4. HACKERS. This is less of a concern than the above, particularly if you've got some decent security software installed, but why tempt fate? Idle computers make great targets for hackers. Spiders crawl the Internet looking for machines that are left on, and your machine and data could be hacked while you're sleeping.
5. FIRE. Again, generally less of a concern, but given its risk to health and safety, deserves mention. Yes, computers do occasionally go "up in smoke." Leave your computer on at night, and there is a chance that it could start a fire.
In sum, I recommend shutting down your computer at night. In addition, I also recommend setting up the "auto-hibernate" option for two hours of idleness. Happy computing! ~kjm~
Subscribe to:
Posts (Atom)
