Slashdot Mirror


Native Apps Are Dead, Long Live Native Apps

cardoni writes "Dan Yoder, CTO at Border Stylo, offers insights on the current state of simultaneous iPhone / Android development using PhoneGap and his thoughts on the debate over native apps versus Web apps. Quoting: 'One problem with the debate is that it’s a false dichotomy, since you can embed a Web browser within a native application. And, conversely, you can extend an embedded Web browser to provide access to native APIs. The two alternatives have not been mutually exclusive for years now. And, focusing on the strengths of native applications ignores the benefits of Web applications. For example, there’s the appeal of writing code that will run on a variety of different devices, ranging from mobile phones, to tablets, to laptops, even to gaming consoles. Virtually every major device platform now sports a Web browser, and it can often be discreetly embedded within a native application. To boot, much of this code can be tested using a Web browser, which enables more easily automated testing. It’s also easier to find Web developers than it is to find native developers.'"

168 comments

  1. So the question is... by Pino+Grigio · · Score: 1

    Well at the very least, you need a native developer to develop the software the web developer uses to developer his web software. I think.... but as a native developer, I'm not sure whether I'm making myself redundant in ten years time by not going all in training for web development.

    1. Re:So the question is... by SirMasterboy · · Score: 1

      Right and wont you always need a native developer to develop the web browsers for all these devices and platforms?

    2. Re:So the question is... by Anonymous Coward · · Score: 0

      I don't think that was actually the point here though... It's not that at some level native app designers are not needed. The point is that neither pure web app nor pure native app development is the answer - a mixture of the two is preferable and possible.

    3. Re:So the question is... by snemarch · · Score: 1

      How many native developers will be working on browser teams, though?

      While I don't personally believe everything will move to web apps, a lot is. Some of it for good reason, some of it because CEOs and other stupids thinks it's a good idea... so it's happening.

      But hasn't it always been like that in IT? If you cling on to one old platform and aren't willing to learn new technologies, you're eventually going to become irrelevant?

      --
      Coffee-driven development.
    4. Re:So the question is... by Anonymous Coward · · Score: 0

      How many native developers will be working on browser teams, though?

      How many native developers does it take to screw in a light bulb?

    5. Re:So the question is... by Anonymous Coward · · Score: 0

      How many native developers does it take to screw in a light bulb?

      Native developers don't screw in a lightbulb; they screw in the great outdoors in harmony with nature.

    6. Re:So the question is... by mmcuh · · Score: 1

      I don't think any training is required for web development.

    7. Re:So the question is... by Lennie · · Score: 1

      And you have lots and lots of webdevelopers who don't know anything about how to do webdevelopment properly.

      No thank you.

      There are people who do webdevelopment right, but it isn't taught anywhere. :-(

      Atleast not that I've seen.

      --
      New things are always on the horizon
    8. Re:So the question is... by Anonymous Coward · · Score: 0

      And you have lots and lots of webdevelopers who don't know anything about how to do webdevelopment properly.

      No thank you.

      There are people who do webdevelopment right, but it isn't taught anywhere. :-(

      Atleast not that I've seen.

      You need a solid web framework to write decent web apps.

    9. Re:So the question is... by Lennie · · Score: 1

      People without proper education can't recognise a decent framework when they see it.

      So a lot of the time they choose wrong. :-(

      --
      New things are always on the horizon
  2. Sure by Sigvatr · · Score: 1

    Developers are simply scared of losing profits when their software can be manipulated and redistributed. The solution? Keep everything on their side of the fence. This is not a new idea. It just takes people some time to come up with reasonable sounding excuses.

  3. JavaScript by nemasu · · Score: 0

    Isn't that why an x86 emulator was made in JavaScript? Best of both worlds! Native code IN a browser.

    --
    I made an app! Shoutium
    1. Re:JavaScript by Luckyo · · Score: 1

      All that we need is to run this x86 emulator... on a x86 machine. Inside a browser.

  4. When all you have is a hammer... by flyingsled · · Score: 5, Insightful

    Everything looks like a nail. Web apps are nice and play in a certain application space. Same with Native apps. Saying that one is "better" than another isn't fair since the apps themselves are different, with different constraints (how do I access a file on the users local filesystem seamlessly from a web app?). If I was going for "I'm going to write an application to conquer the world" approach, I would probably want it to run on iPhone and Android, so a web app is probably a good option. However, if I know my application is fixed to one piece of hardware (the newest iPhone for example) a native app is better since I can access more of the hardware with a native application.

    1. Re:When all you have is a hammer... by pushing-robot · · Score: 3, Insightful

      Exactly. If your app uses basic business logic and you want to maximize your audience, write a web app. If you need the best possible performance, write a native app.

      Next thread: The debate over stacks versus queues continues. Which will win?

      --
      How can I believe you when you tell me what I don't want to hear?
    2. Re:When all you have is a hammer... by Ruke · · Score: 1

      Specifically addressing "How do I do _X_ seamlessly from a web app?", it's really quite easy to do if you're going the "Native Web App" route with something like PhoneGap. Phonegap comes with a lot of API functions for commonly used native functionality (file access, contacts, geolocation, etc.), and it's trivial to map any native code to a Javascript function. (For example, I've written an HTTP_GET shim for communicating with my server for a cross-platform PhoneGap app I'm developing, because JSONP is a terrible way of doing things.)

      I'll grant you that there is still a time and place for both native and web-apps (web apps are SO SLOW), but that gap is constantly narrowing.

    3. Re:When all you have is a hammer... by Anonymous Coward · · Score: 0

      The debate over stacks versus queues continues. Which will win?

      This can be resolved experimentally. Take two statements and put them in memory:

        - "Queues are better than stacks"
        - "Stacks are better than queues"

      Now pull the statements out of memory. The first one out wins.

    4. Re:When all you have is a hammer... by jd2112 · · Score: 2

      Next thread: The debate over stacks versus queues continues. Which will win?

      I'm working on a 'First In-Random Out' queuestack. That should settle that argument...

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    5. Re:When all you have is a hammer... by Anonymous Coward · · Score: 0

      Oh I just love this "If you use X-technology-du-jour"!

      Tomorrow that technology is something else and the old one is 'lame'. The only way I can think of this is having a tradesman turn up to your house frustrated because his hammer changed into a rubber chicken overnight. Oh and all chisels are bent into U-shapes today. Tomorrow they'll be Zs. It's bad enough all these APIs can't even standardize on the damn NAMES for anything either, or camel caps, or just about any other aspect of the code.

      Part of being a good programmer is knowing when to "leave it the fuck alone" as well.

    6. Re:When all you have is a hammer... by Dr.+Eggman · · Score: 2

      I came off a project not long ago which involved a web app-running browser embedded in a native app. There was even a decent reason why: Users could pre-enroll online or walk-in at a dedicated station. Either way, the same steps had to be preformed at least once, before the rest of the application (which was native because it involved special hardware) did the rest.

      All I can say was, it was...er, an experience.

      To begin, the Web application was powered by Java while the Native application was run by C#/.Net. Don't let anyone tell you these two play nice, because they certainly don't; there were bizarre display issues present in the Native app that didn't happen in any other browser we were testing on (including IE.) Nevermind the challenges presented by getting the two applications to communicate and coordinate in order to provide a seamless integrated interface; we really should have relied more on Web Services than we did (but the reasons behind that are a whole other story.) Most importantly, in order to integrate the two well, you need a developer or developers who understand how to write good web apps as well as good native apps (also, in this case a developer who knows C# and Java, which I eventually came to.) I think you hit the nail on the head with your post; these are two very different things with their own strength domains. I'll just add that mixing them is questionable for most solutions, difficult for all of them (Fun, though!)

      --
      Demented But Determined.
    7. Re:When all you have is a hammer... by Darinbob · · Score: 1

      Though the "basic business logic" may not always apply. If the basic business logic uses that that's local to your device and stores the results local to your device then it's pointless to do it all on the web. Why? Only yuppies who demand to be mobile would keep their data in the cloud, and they only do that so they can flash their thin phones at their peers as opposed to trying to get real work done.

      Native apps are usually a win if you're not doing data-entry to a server somewhere.

    8. Re:When all you have is a hammer... by Anonymous Coward · · Score: 0

      i hereby propose we name that the "firo quack"

    9. Re:When all you have is a hammer... by Anonymous Coward · · Score: 0

      ...Constantly narrowing but may never converge in terms of performance.

    10. Re:When all you have is a hammer... by hitmark · · Score: 1

      Java? Makes it about as much web as x86 assembly then.

      --
      comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
    11. Re:When all you have is a hammer... by The_Wilschon · · Score: 1

      Nah, I'm not really that into Pokemon.

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
    12. Re:When all you have is a hammer... by Anonymous Coward · · Score: 0

      the guy should reap up some rhetoric from 5 years back about the same thing. and then take a look at web browsers, then take a look at smartphone os's and come up with the revelation that it's just not so simple and opening a web browser instance into your mobile app usually makes it take 10x the memory it would otherwise and burn cpu 20x - AND it will fuck up future compatibility and it's going to break with the next api refresh. once that stuff has been stable for 5 years, sure, maybe then. the point for using web browser inside your app comes to play when you already have the web application and it doesn't need much changes to work(like a lot of mobile apps which are just chromeless web browser instances, in which case, why aren't you just leaving it as a web page for the user to access.. well doh, because you want an icon on the users home screen so he doesn't forget you, so you must have an app - that's how it goes).

    13. Re:When all you have is a hammer... by gbjbaanb · · Score: 1

      or.. as I think we should be thinking: if you want a GUI, make it web GUI but connect it to a back-end native server. Best of both worlds *and* you can hire someone cheap to write the web GUI who will actually enjoy doing it (the deluded fools :) )

    14. Re:When all you have is a hammer... by EdZ · · Score: 1

      Not if I complete my First-In-Never-Out data structure first! I'm thinking of calling it a 'pile'.

    15. Re:When all you have is a hammer... by Dr.+Eggman · · Score: 1

      I should clarify that. I meant Java as far as the technology stack goes. So, Richfaces, JSF, served up by Tomcat, backed by Java classes.

      --
      Demented But Determined.
    16. Re:When all you have is a hammer... by Anonymous Coward · · Score: 0

      "local filesystem" is such an outdated concept, welcome to the cloud !

    17. Re:When all you have is a hammer... by Lennie · · Score: 1

      Did you even read the summary ? I guess not, this is Slashdot after all.

      Because many "native apps" are actually wrappers around an embedded browser with the "web app" (locally installed JavaScript/HTML/CSS) having access to the native API.

      This because then you can just use an open source wrapper and distribute to all the devices, Android, iPhone and all the other smartphone systems.

      --
      New things are always on the horizon
    18. Re:When all you have is a hammer... by Lennie · · Score: 1

      I think most "webapps" for smartphones (actually locally installed HTML/JS/CSS with native wrapper) don't really need a back-end server.

      --
      New things are always on the horizon
    19. Re:When all you have is a hammer... by Lennie · · Score: 1

      You clearly have no idea of what this article/summary was about or some people have created some horrible solution to a problem that might (at first glance from your text) does not even exist.

      --
      New things are always on the horizon
    20. Re:When all you have is a hammer... by gbjbaanb · · Score: 1

      ok, but "back-end" doesn't have to mean a remote server (or cloud) system. It can be locally installed, the important distinction is keeping the GUI and the business logic separate, and not munged together like the worst 'monolithic' GUI apps Windows used to be famous for.

    21. Re:When all you have is a hammer... by Anonymous Coward · · Score: 0

      deque wins

      next question?

    22. Re:When all you have is a hammer... by Lennie · · Score: 1

      Yeah, I know. :-)

      But if you have a the HTML/JS/CSS which is already mostly crossplatform, why would you want to write your backend for each and every platform again ?

      --
      New things are always on the horizon
    23. Re:When all you have is a hammer... by Anonymous Coward · · Score: 0

      Uhhh.. a first-in random-out is a completely legitimate data structure that has actually been implemented numerous times. Look up cache replacement policies.

    24. Re:When all you have is a hammer... by marcosdumay · · Score: 1

      Not if they are web apps.

    25. Re:When all you have is a hammer... by marcosdumay · · Score: 1

      I have several of those near my home computer.

    26. Re:When all you have is a hammer... by TheRaven64 · · Score: 1

      if you want a GUI, make it web GUI but connect it to a back-end native server. Best of both worlds

      Absolutely not the best of both worlds. When you are supporting multiple platforms, you want all of your back-end code to be shared between the various ports but, if you don't want users to hate your application, the one bit that wants to be specific to each system is the UI. Using the web browser gives you no advantage over using something like WxWidgets: you still have access to a subset of the native UI elements and have difficulty tailoring your UI to the native user interface guidelines.

      --
      I am TheRaven on Soylent News
    27. Re:When all you have is a hammer... by Ramin_HAL9001 · · Score: 0

      Not if I complete my First-In-Never-Out data structure first! I'm thinking of calling it a 'pile'.

      Sorry, Linux has had that for years. Its called "/dev/null".

  5. Web Or Native it doesn't matter by zbobet2012 · · Score: 3, Interesting

    "It’s also easier to find Web developers than it is to find native developers." A good programmer shouldn't really care what level he is working in, best practices etc. are fundamentally the same. Every decent programmer I know has dabbled in everything from assembler to javascript, at the very least. The good ones have written large applications in both or more. Making this a useless dichotomy, because whatever the application a poor programmer can drag an entire team or application down on his own.

    1. Re:Web Or Native it doesn't matter by Dahamma · · Score: 4, Interesting

      "It’s also easier to find Web developers than it is to find native developers." A good programmer shouldn't really care what level he is working in, best practices etc. are fundamentally the same. Every decent programmer I know has dabbled in everything from assembler to javascript, at the very least.

      Let's face it - it's easier to find a web developer because web development is easier. I'm sure a lot more primarily C++ programmers have used Javascript than vice-versa. A significant number of "web developers" come from an artistic/graphic design background and have probably never even used a compiler. And that's not a knock on web developers any more than you'd knock a pediatrician for not being a pediatric surgeon...

    2. Re:Web Or Native it doesn't matter by Ruke · · Score: 3, Interesting

      While that's fine in theory, there's still the matter of experience on a platform to take into account. While a good programmer will be able to implement HeapSort in both Javascript and C, there's still the matter of whether he's familiar with Interface Builder's delegation system, or if he's got the DOM box model down pat. A good programmer should be able to pick up these skills in (relatively) short order, but some times you just want someone who's already an expert.

    3. Re:Web Or Native it doesn't matter by TheRaven64 · · Score: 1

      A good programmer doesn't need to care about those things. A good UI designer does, and a good programmer may also be a good UI designer (although that's very rare), but the two requirements are distinct. Some people write books, some people illustrate books, and some people do both, but that doesn't mean that the ability to draw is essential to an author, or even that you'd want to employ a good author to do illustrations.

      --
      I am TheRaven on Soylent News
    4. Re:Web Or Native it doesn't matter by Anonymous Coward · · Score: 0

      Web development is easy? Please! The amount of languages, browsers and platforms a Web Developer needs to keep up with far surpass the skills required for a "native" developer. Keeping up with the light-speed browser updates with CSS3 , Javascript and HTML5 support as well as mobile browser devices is incredibly exhausting. Sure, the underlying HTML5 code or CSS or even Javascript, may not be doing any heavy meta-programming but skills are required for a "good" developer to know how to connect all the pieces.

      Truth be told, it takes far more rote knowledge, mental agility and patience to be a web developer than it does a C++ programmer.

    5. Re:Web Or Native it doesn't matter by Dahamma · · Score: 1

      I didn't say "easy", I said easier. And you seem to be measuring "difficult" based on keeping track of a bunch of changing APIs and syntax.

      Making sure your Javascript code works on every browser and platform is not as much "difficult" as "tedious". Writing a fast, efficient Javascript engine with generational garbage collection and a just in time native compiler is "difficult".

      I have a lot of respect for a good auto mechanic who knows how to work on a huge variety of makes and models, but I still think it's easier to find someone who can fix an engine than someone who can design one.

  6. Native is more sexy by whiteboy86 · · Score: 1

    Truly exciting things happen in native environments.

    1. Re:Native is more sexy by Dahamma · · Score: 1

      Like cannibalism!

    2. Re:Native is more sexy by Anonymous Coward · · Score: 0

      I laughed :)

  7. lowest common denominator by Bram+Stolk · · Score: 4, Insightful

    Well... running on many platforms sounds nicer than it actually is.
    You tend to end up with an app that is tailored to the lowest common denominator of the platforms.
    If you want to shine, you will want to go native.

    --
    Bram Stolk http://stolk.org/tlctc/
    1. Re:lowest common denominator by Anonymous Coward · · Score: 0

      You tend to end up with an app that is tailored to the lowest common denominator of the platforms.

      But that's going to happen anyway when you target mobile platforms. It doesn't matter if it's iOS or Android. The very act of targeting such platforms is that you'll always be inferior to desktop applications.

      The same goes for web apps, too. The moment you decide to write a web app instead of a native desktop app, you're already selling your users short. You're offering them something inferior.

    2. Re:lowest common denominator by whiteboy86 · · Score: 2

      Those exec fools at RIM (BlackBerry) and Windows (WP7) think that if they gave us some crazy "modern" non-native development environment then somehow developers will cheer.

      They should gave us straight C to low latency audio, straight C to OpenGL and straight C to input, that is it. With all this we can optionally compile JavaScript, Python, browser you name it... but without native access no serious dev. will even try to download their "innovative" SDK.

      And please stop selling us Java, we know enough already. iOS is such a success due to slick apps that are native, can't you see the difference between non-native vs. native example Android vs. iOS ?

    3. Re:lowest common denominator by shutdown+-p+now · · Score: 1

      So far, every mobile platform that started with the premise of "high-level tools only" for development, has gained support for native code. I have little doubt that newcomers will follow soon.

    4. Re:lowest common denominator by retroStick · · Score: 1

      I agree with doing things natively. I'm leading a small team currently developing a native game for Android and iOS, (written in C++, using the NDK and Java as a thin Android wrapper and Objective-C for the iOS wrapper).
      Since our lowest common denominator is OpenGL ES 1.1 (it's a sprite-based game), we've not really had any cross-platform hiccups so far.
      However, it's much easier for us than with non-game apps, since we are not using the native widgets.

    5. Re:lowest common denominator by Octorian · · Score: 1

      And with the PlayBook, RIM went to the extreme of this. Made the tools so high-level that no one (except the developers who write things we install Firefox plugins to block) will want to use. However, that's just step 1. Step 2 is going to be releasing a full native SDK that will allow people to actually write real code in C/C++ (or obviously port any libraries we want on top of that). Step 3 will be compatibility layers for existing mobile Java flavors (BB and Android). Of course the PlayBook uses a QNX-based OS, which can safely and security run all of this stuff.

      On the phones, I think the reason they never did this was because the OS really didn't have a good way of supporting it. It was designed before iOS or Android existed, and really does seem to function like one big JVM. (Any strange quirks it may have can really be explained when you think in these terms.) Sure, they've pushed it far beyond its initially intended capabilities, but its gone about as far as it can reasonably go. I just hope they survive the platform transition once their tablet OS gains a mature enough software stack to become their phone OS.

  8. Different UI conventions by pjlehtim · · Score: 3, Informative

    Android and iOS have very different UI conventions. TFA mentions the problem but then ignores it. By using PhoneGap (or any of the other similar products) you still need to build two different apps if you want to get good results. Just look at PhoneGap's featured apps examples. Almost every single one of them is written for iOS. If you bring them to Android users wont accept them as native. They will feel wrong. I wrote a post about this very problem into my blog few weeks back: http://www.androiduipatterns.com/2011/06/differences-between-android-and-ios-ui.html Benefit of PhoneGap etc. is that you can use web technologies to write the apps. It is a false hope, though, if you expect to "write once, run everywhere". Juhani

    1. Re:Different UI conventions by Kalriath · · Score: 1

      Plus they forget to mention that if you just wrap your PhoneGap web app with a web view, it'll get on Android Market fine but Apple will reject it out of hand for being a "web clipping".

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    2. Re:Different UI conventions by PCM2 · · Score: 2

      Just look at PhoneGap's featured apps examples. Almost every single one of them is written for iOS. If you bring them to Android users wont accept them as native.

      And then, don't most Android handsets have custom vendor skins? Web apps won't ever blend seamlessly with every Android UI. And the user experience on Android 3.x is fairly distinct from Android 2.x, too. Any development tool that really aims to help your apps be more "cross-platform" will let you target different platforms, not shoehorn the same UI into all of them.

      --
      Breakfast served all day!
    3. Re:Different UI conventions by Lennie · · Score: 1

      "don't most Android handsets have custom vendor skins?"

      And why ? really, no why ? Just because of carrier and brand recognition and differentiation.

      No thanks, not interrested.

      --
      New things are always on the horizon
    4. Re:Different UI conventions by SomeStupidNickName12 · · Score: 1

      No apple supports PhoneGap, we have deployed HTML5 PhoneGap apps to the app store.

    5. Re:Different UI conventions by Kalriath · · Score: 1

      Really? Got a name for one, I'd like to take a look (and smack our Apple contact with a big stick if what you're saying is what I think you're saying)?

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    6. Re:Different UI conventions by SomeStupidNickName12 · · Score: 1

      http://itunes.apple.com/us/app/f4f-mobile-ordering/id425143797?mt=8 Quick and nasty mobile ordering app to demo to customers. But PhoneGap is rubbish if you want a decent HTML5 native app solution use - http://www.appcelerator.com/products/titanium-mobile-application-development/ its not free but the best product we have come across.

    7. Re:Different UI conventions by Kalriath · · Score: 1

      Interesting. Will have to research more (and perhaps smack our Apple contact with a stick).

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
  9. HaHa. by msauve · · Score: 0

    "the appeal of writing code that will run on a variety of different devices"

    That's just it. Apple wants to limit your ability to do that.

    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
    1. Re:HaHa. by Alan+Shutko · · Score: 1

      They did rescind that in the 14 months since the article was written. Now you're perfectly free to write code that works on a variety of devices. And if you write code that runs poorly on a variety of devices, you'll be savaged in the reviews (as Safari Books Online was, with their Phonegap app release http://blog.safaribooksonline.com/2010/11/24/ipad-app-safari-to-go-update-november-24-2010/). They came back and rewrote it native, and people are much happier.

    2. Re:HaHa. by Anonymous Coward · · Score: 0

      The same Apple that gives away DashCode with every Mac? Everyone is always afraid of Apple being evil and the argument usually has something to do with, "they're GOING to do this. Sure they haven't said they will, but I know they're evil so they're GOING to do it."

      As for the silly blog post you linked to: Anything that attempts to kill Flash is good for everyone other than Adobe. It's not that they're trying to limit anyone's ability to write code that will work on a variety of devices. Their support for web apps and HTML 5 contradicts that view. It's not like they're pushing some new type of Active X or something. They're just helping everyone out by publicly shitting on Adobe. Personally, I can't wait until Flash is dead and there are fully featured, open source alternatives to Adobe's products. Their web authoring software is useless, especially for the price, and someday Gimp will be to Photoshop what OOo is to Office. Without Apple it's doubtful the web would have been able to detach itself from the parasite that is Flash. I see less and less sites using Flash these days aside from advertisements and video and it's losing ground in those areas as well. Good riddance. There's little that Flash can do that ajax can't do better.

  10. Better to be redundant than totally miserable. by Anonymous Coward · · Score: 4, Interesting

    If you're a native application developer, I suspect that you'd be absolutely miserable if you ever had to work on web apps full-time.

    Web app development is challenging for all of the wrong reasons. Whether it's having to use horrid languages like JavaScript or PHP, or dealing with broken browsers like IE6, or dealing with shitty MySQL databases "designed" by people who didn't understand even basic relational theory, you won't find much enjoyable about it.

    At least native applications are often built using real programming languages like C and C++. Even semi-native languages like Java, C# and, dare I say it, VB.NET, are much, much, much more enjoyable to use than JavaScript or PHP, or dealing with broken HTML, or fighting with stylesheets.

    I'm glad I was able to retire without having to do too much web development. Everything about it was decades behind where native applications were at the time, and things still haven't changed.

    1. Re:Better to be redundant than totally miserable. by Anonymous Coward · · Score: 0

      If you're a web developer, I suspect that you'd be absolutely miserable if you ever had to work on native apps full-time.

      Native UI development is challenging for all of the wrong reasons. Whether it's having to tweak the gravity of every single widget by hand, or dealing with users opening your dialog box on a netbook monitor too short to show the OK button, you won't find much enjoyable about it.

      At least web applications allow you to create your interfaces using a real presentation language like HTML and CSS. Even broken HTML and CSS are much, much more enjoyable to use than figuring out how you're going to get your dialog box to fit on a cellphone screen, or coping with someone entering |||||||||||||||||||(x20, please use fewer junk characters) into a field, or fighting with accessibility APIs.

      ...Personally, I'm wondering if Microsoft's Windows 8 Big Reveal is going to be that html5 will replace UI development on native apps. I'll drop everything and run to C# if that happens. All of the power of native apps without having to put up with any of the bullshit of native UI.

    2. Re:Better to be redundant than totally miserable. by Anonymous Coward · · Score: 0, Insightful

      Dude, we can all tell that you're a web developer who has never developed a native application by the many misconceptions and outright bullshit you just spewed. Nice try, though. Maybe with some practice, you Ruby fanbois will someday sound convincing.

    3. Re:Better to be redundant than totally miserable. by sarysa · · Score: 1

      If you're a MOBILE native application developer, I suspect that you'd be absolutely miserable if you ever had to work on web apps full-time.

      Web UI development is challenging for all the wrong reasons. Whether it's having to deal with inconsistent widgets across browsers, or dealing with users whose browser settings break your page, you won't find much enjoyable about it.

      At least mobile applications allow you to either use their rich interfaces for run-of-the-mill layouts, or (better yet) create your own layouts for flexibility and portability. Even Android's XML hell is much more enjoyable than figuring out how to make your page compatible with both limited mobile browsers and their small screens AND the wide array of computer resolutions and browser variants, or coping with the heavy limitations on interactive content and convoluted hacks to get around them, or putting up with the unintuitive APIs.

      I'm too young to declare myself as fortunate as the retiree whose parody was parodied, but I'm happy to say I've avoided professional web development thus far. Anything closer to the bare metal is freedom -- anything as far removed as web development, with all the layers above you just itching to break your page in the next revision, would probably make people take advantage of prop 215 to get through the day.

      --
      Charisma is the measure of someone's ability to lie with a straight face.
    4. Re:Better to be redundant than totally miserable. by Anonymous Coward · · Score: 0

      C'mon guys. We're all programmers here. Our lives already are absolutely miserable for any reason you can imagine.

    5. Re:Better to be redundant than totally miserable. by Anonymous Coward · · Score: 0

      At least web applications allow you to create your interfaces using a real presentation language like HTML and CSS.

      As someone who has worked a bit as a web developer I would like to remind you that HTML isn't a real presentation language and was never meant to be used to present anything other than flowing text in the first place.
      HTML is a horror of ugly fixes to make a text file format into a format where you almost but not fully can make presentations.
      I'd rather build a brainfuck CPU from transistors and write my own OS for it than touch that abomination ever again.

    6. Re:Better to be redundant than totally miserable. by shutdown+-p+now · · Score: 1

      At least web applications allow you to create your interfaces using a real presentation language like HTML and CSS.

      We've had that for a long time in managed land - WPF & Silverlight on .NET have XAML which, unlike HTML, was designed as an UI markup language from grounds up. Java has a bunch of third-party solutions similar in concept as well. Finally, for "pure native", there's Qt Quick and its QML.

    7. Re:Better to be redundant than totally miserable. by rock_climbing_guy · · Score: 1

      As a web developer, I agree with you.

      As a web developer, I recently used some Javascript magic to... drum roll please... make a box with text in it appear in a corner of my application display. Of course, the contents of the box have to be saved to the web session so that the box can be re-drawn and then the text in the box re-written from the web session. This took a while. Even after all these years, a dialog beyond [Confirm] [Cancel] has to be custom built using Javascript (or you can import one from the libraries such as jQuery).

      I would say that the number one thing that makes web development challenging for the wrong reasons is the disconnect between the browser state and the server state. The browser can remember "cookies". The server remembers "session". They cannot be counted on to agree. Furthermore, I have to be concerned that a hacker can manipulate my Javascript client-side code in any way imaginable (since the Javascript is transmitted as raw source code).

      I've never been involved in "native" application development, but I imagine it to be decades ahead of web development. That being said, I don't want to come off as being totally sour. It took me a while to bootstrap the web development skills that I now posses, and knowing how to tackle these challenges helps me come out ahead.

      At least my SQL database is maintained by a competent professional.

      --
      Wh47 d1d j00 541, 31337 15n't t3h r0xor5 ne m0r3???
    8. Re:Better to be redundant than totally miserable. by jasmusic · · Score: 1

      Speak for yourself.

    9. Re:Better to be redundant than totally miserable. by tehcyder · · Score: 1

      C'mon guys. We're all programmers here. Our lives already are absolutely miserable for any reason you can imagine.

      Aw, poor ickle baby.
      Now shut up and stop whining, you're almost certainly better off financially, physically and emotionally than 95% of your fellow citizens.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
  11. web apps pump up the data costs and roaming by Joe_Dragon · · Score: 1

    web apps pump up the data costs and roaming rates starting at $0.015/KB make them cost a lot.

  12. Or do both... by jeffy210 · · Score: 1

    I think the way I like to see it is a common data access and back-end processor and then exposing things via APIs so that the front ends can be written in native/web/smoke signals, whatever you want allowing you to take advantage of the target devices best capabilities.

    --
    ------
    "And may your days be long upon the earth."
    1. Re:Or do both... by Anonymous Coward · · Score: 0

      This requires good planning, and thorough designs. Such things are beyond the abilities of many developers (sadly).

    2. Re:Or do both... by Anonymous Coward · · Score: 0

      This requires good planning, and thorough designs. Such things are beyond the timelines of many managers (sadly).

      FTFY

    3. Re:Or do both... by tepples · · Score: 1

      I think the way I like to see it is a common data access and back-end processor and then exposing things via APIs

      So you're trying to choose a language in which to write this "common data access and back-end processor", so that the application can run even if offline. Would it be written in C# so that it can run on Xbox 360 and Windows Phone 7? Would it be written in Objective-C so that it can run on a Mac or an iPhone? Would it be written in Java so that it can run on Android and BlackBerry? At that point, why not just use JavaScript and hit every current computer, every current phone, and every current game console but one?

    4. Re:Or do both... by Octorian · · Score: 1

      This is one interesting thing about mobile development. Each platform pretty much dictates a programming language of choice. If its a language you don't mind working in, then its not a problem. But that's not always the case. Personally, I seem to know a lot of sysadmin-types who tend to be stuck-up jackasses about their own little personal language hatreds or preferences, and these opinions tend to be formed completely in a vacuum from target platforms. (Of course, since you can develop in pretty much any language on a PC, and especially so in *nix, this attitude becomes quite permissible.)

      Of course this "language independence" works in the non-mobile world because the OS and/or GUI libraries expose their APIs primarily through C, which is then wrapped in higher-level APIs for any other programming language of choice. You also have a bit less of a "single vendor must provide all" approach in the non-mobile world, since individual developers are often leveraging a whole ecosystem of libraries maintained external to the OS. (Mobile developers seem to have a far lower willingness to expend time and effort doing anything that can't be done with out-of-the-box OS libraries/tools.)

  13. Also with web apps by Sycraft-fu · · Score: 4, Insightful

    It really does become the "Write once, debug everywhere," thing. Unless you are using very simple HTML and pretty much no interactivity, at which point you are a web site not a web app, you are going to have to have a shitload of "gotchas" and different cases. Not just for major different platforms like Android, Windows, etc but for different browsers.

    Now if you want to do all that, well and good, but be serious about the amount of effort it takes and the amount of time savings, if any, over doing things native.

    For complex applications, there isn't a "Just write it once," way of doing things.

    1. Re:Also with web apps by spottedkangaroo · · Score: 1

      Write once, debug everywhere

      That's what phonegap is for... it's like the jquery of mobile.

      --
      Imagine if you weren't allowed to use roads because a bus company complained about your driving 3 times. --skunkpussy
    2. Re:Also with web apps by Anubis+IV · · Score: 1

      Exactly. To some extent, this difference between web apps and native apps is becoming the difference between Google's offering and Apple's with the cloud. Apple has iCloud coming out, but isn't going to be offering much in the way of web apps to access it (they have said that they'll be bringing some of the MobileMe web apps back later in a new form, but won't have them at launch). In contrast, Google's cloud platforms all have web apps built for them.

      The advantage of Apple's approach is better fit and finish, whereas Google's approach allows you to access it from any device, pretty much regardless of the brand or apps available for it. If you'll always have your Apple device with you, the lack of being able to access the data from anywhere may not matter. Conversely, if you won't always have your devices around, then the lack of access from anywhere can be a deal breaker.

    3. Re:Also with web apps by Anonymous Coward · · Score: 0

      um, have you actually tried? i have. your suppositions don't match my reality whatsoever. the differences between the two webkit implementations in android and iphone are negligible, and javascript/css/html5 run just fine. if you can't make the average run of the mill app run in a webview, it says a lot more about your programming skills than the apple and android's native UI.

    4. Re:Also with web apps by MobileTatsu-NJG · · Score: 1

      Wow. Ten years ago, this comment here on Slashdot would have been argued to death. "CROSS PLATFORM CROSS PLATFORM!!"

      I agree with you by the way, I just remember all the fuss back then.

      --

      "I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)

    5. Re:Also with web apps by porl · · Score: 1

      i thought jquery mobile was the jquery of mobile? :P

    6. Re:Also with web apps by shutdown+-p+now · · Score: 1

      In the context of mobile app development, though, it's much simpler - we're basically talking about WebKit on iOS and WebKit on Android. The difference is much smaller than your typical desktop test suite of IE, Firefox, Chrome and Safari.

    7. Re:Also with web apps by Anonymous Coward · · Score: 0

      If you haven't come across differences between Google's Webkit and Apple's Webkit, you probably aren't doing anything too complex. Granted, that might not be a bad thing.

      However, if you haven't come across differences in Apple/Google Webkit, Mozilla, Opera, and IE, I very much doubt you've tried writing a single web app.

  14. Way I see it... by yarnosh · · Score: 1

    The way I see it, a web app is a new kind of application. It is its own niche where doing certain things is easier or more convenient. We'll need native apps for the forseeable future any time we want to access local hardware or integrate with the user's desktop/mobile device environment. A web browser is just way too much of a sandbox for a lot of applications. Sometimes apps need to interact with each other in ways that apps running in different tabs of a web browser just cannot.

    1. Re:Way I see it... by PopeRatzo · · Score: 2

      The way I see it, a web app is a new kind of application.

      Unfortunately, the more the big companies try to push everything into a web app, the worse it's going to be for those of us that want apps to make stuff instead of apps to consume stuff.

      Web apps are to native apps what 1970s TV was to 1970s cinema.

      And this comment is one that only a handful of people will understand because I haven't worked hard enough to make my point clear.

      I don't mind the growth of web apps, but I've noticed a certain stagnation to native apps lately that I suspect is because of it. I hope it's just temporary.

      --
      You are welcome on my lawn.
    2. Re:Way I see it... by Anonymous Coward · · Score: 0

      the worse it's going to be for those of us that want apps to make stuff instead of apps to consume stuff.

      you don't consume digital content, that's an idiotic idea.

    3. Re:Way I see it... by Lennie · · Score: 1

      I don't know if you read the summary, but this is about using webtechnologies with a native wrapper (preferable existing open source wrapper like PhoneGap) which gives the webapp access to the native API.

      The native wrapper has the same API on all smartphone platforms, PhoneGap currently supports 6 platforms. Why do this ? Because you don't want to write your application in all the different languages of all the platforms.

      --
      New things are always on the horizon
  15. The Native App Will Never Die... by FlyingGuy · · Score: 4, Interesting

    and the reason is that with all the utility of HTML / CSS / JavaScript it is still brittle

    DOM is getting even more bloated, inefficient and slow. CSS is out of control and when put to the extreme it is like reading RegEx that you didn't write that has 400 expressions in one string. That coupled with differences in even handling the box model between IE and everyone else is enough to drive a sane person over the edge, especialy with the kludges in CSS that were glued on to handle those problems.

    JavaScript is supposed to be the language used to manipulate the Document Object but it was so poorly implemented that jQuery was required to make it reasonably useful.

    For those reasons people keep writing native apps that work correctly the first time out of the gate.

    --
    Hey KID! Yeah you, get the fuck off my lawn!
    1. Re:The Native App Will Never Die... by drolli · · Score: 1

      Yes, thats right. The simplest way to write a cross-platform app is to write as must as possible in ANSI C and then bind it using appropriate glue code to the different platforms.

    2. Re:The Native App Will Never Die... by Bogtha · · Score: 1

      Some major misconceptions here.

      DOM is getting even more bloated, inefficient and slow

      It's never been faster. There have been huge performance improvements over the past few years.

      CSS is out of control and when put to the extreme it is like reading RegEx that you didn't write that has 400 expressions in one string.

      CSS's syntax has barely changed since its very first version 15 years ago. Its readability is like Perl - some developers make an unholy mess, others produce very readable code.

      That coupled with differences in even handling the box model between IE and everyone else

      Your information is out of date. Microsoft implemented the W3C's box model in Internet Explorer 6, released a decade ago.

      JavaScript is supposed to be the language used to manipulate the Document Object

      The DOM was explicitly designed to be language-neutral. This was a design goal from the outset.

      it was so poorly implemented that jQuery was required to make it reasonably useful.

      jQuery is a very nice toolkit, but it didn't make JavaScript more useful. By definition, it cannot do so, being implemented in JavaScript itself. It made it quicker and easier to write. The DOM could have been designed with a much nicer API, but that's neither JavaScript nor implementation.

      --
      Bogtha Bogtha Bogtha
    3. Re:The Native App Will Never Die... by FlyingGuy · · Score: 1

      DOM More efficient? Oh please, FF on Windows with 1 tab with /. open it is 100 +/- Megs of Ram ??? You call that efficient?

      FF on OpenSuse with my gmail table my /. tab and a search tab ( google ) open and it is using 400 megs of ram? Efficient? Really?

      Yes and that syntax is horrible and it is worse then Perl and Perl sucks sweaty donkey balls.

      Really then why are we still writing kludges to deal with all the differences?

      I guess we have different definitions of what useful means, I mean really different. Quicker and Easier to use = more usable.

      Even with HTML-5's "improvements" we still have to:

      • write really bad JS functions to do the most basic things like preventing text from being entered into numeric fields.
      • Date Formats, really? I mean really? I cannot just feed it an appropriate mask, really?
      • I have to handle keystrokes in JavaScript, really?
      • I have to write code in to deal with the fact that a checkbox was not checked and so therefor it does not exist in post? Really?
      • I have to go 16 ways around hogans barn to emulate a grid control that is available in pretty every modern RTL for most every language? Really?
      • I have to deal with overflow: hidden; which does not work unless you specifically call out the width AND the height of a div? Really?
      • I can't have vertical centering in a div unless I screw around with line-height? Really?

      The list is bigger and bigger but the one that really get to me is the utterly insane CSS hack to do drop down / fly out menus. Really????????

      And you wonder why people still will do anything to write native apps instead of this broken kludge of a mashup between DOM / JS / CSS.. Good grief

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    4. Re:The Native App Will Never Die... by tepples · · Score: 1

      The simplest way to write a cross-platform app is to write as must as possible in ANSI C

      Xbox 360 Xbox Live Indie Games and Windows Phone 7 require all applications to be 100% pure .NET IL. ANSI C does not compile to this target. So what's the simplest way to write a cross-platform app that includes Xbox 360 or Windows Phone 7 among its target platforms?

    5. Re:The Native App Will Never Die... by shutdown+-p+now · · Score: 1

      The simplest way, arguably, is to write it in C++ - at least you get a more or less decent object model that way, and can automate memory management with smart pointers, string handling with string wrappers etc. And every mobile platform today that has a C compiler also has a C++ compiler.

    6. Re:The Native App Will Never Die... by Anonymous Coward · · Score: 0

      DOM More efficient? Oh please, FF on Windows with 1 tab with /. open it is 100 +/- Megs of Ram ??? You call that efficient?

      FF on OpenSuse with my gmail table my /. tab and a search tab ( google ) open and it is using 400 megs of ram? Efficient? Really?

      I wouldn't know where to look, in the FF code to verify it, but most programs / OS's are just fine with using whatever RAM is available. If FF is using 400 megs (its probably history, autocomplete, JIT Javascript, add-ons, etc) its really only a problem if your system is maxed out on RAM usage and your applications are fighting for RAM (swapping).

       

      Yes and that syntax is horrible and it is worse then Perl and Perl sucks sweaty donkey balls.

      Subjective. What would you rather have the syntax be?


      Really then why are we still writing kludges to deal with all the differences?

      I guess we have different definitions of what useful means, I mean really different. Quicker and Easier to use = more usable.

      Even with HTML-5's "improvements" we still have to:

              * write really bad JS functions to do the most basic things like preventing text from being entered into numeric fields.

      I agree
       
       
              * Date Formats, really? I mean really? I cannot just feed it an appropriate mask, really?

       
      I AGREE!

       
              * I have to handle keystrokes in JavaScript, really?

      How would you prefer to do it, exactly?

       
              * I have to write code in to deal with the fact that a checkbox was not checked and so therefor it does not exist in post? Really?

      It should be stateful, meaning that a post should always be checkbox=checked or checkbox=unchecked. There should always be a submitted value, regardless of state. Is that what you mean, because if so I agree.

       
              * I have to go 16 ways around hogans barn to emulate a grid control that is available in pretty every modern RTL for most every language? Really?
              * I have to deal with overflow: hidden; which does not work unless you specifically call out the width AND the height of a div? Really?
              *

                  I can't have vertical centering in a div unless I screw around with line-height? Really?

      I pretty much agree with all of this. These are all really silly.

       

      The list is bigger and bigger but the one that really get to me is the utterly insane CSS hack to do drop down / fly out menus. Really????????

      I'm fairly sure you can do that without much mucking with CSS if you'd rather not do so. Not 100% sure about this though.

       
      And you wonder why people still will do anything to write native apps instead of this broken kludge of a mashup between DOM / JS / CSS.. Good grief

      I feel like the problem is that DOM/JS/CSS doesn't currently offer the kind of granular control over the UI as any native application would, and thats pretty much a showstopper for a lot of things. Also, my personal pet peeve, XmlHttpRequest() failing to work across domains is just dumb.

    7. Re:The Native App Will Never Die... by artsrc · · Score: 0

      I find that the annoying thing about HTML/JavaScript are that they are not brittle.  Errors that in other languages would provoke an exception are siliently ignored.

      To a certain extent the errors you outline are ameliorated by tools and experience.  JQuery is a tool which helps provide consistecy.  Tere are tools/documentation which describes the behavoir between the various environments.  Good developers know the pitfalls and don't go overboard with CSS.

      Good Web Developers win by writing applications that don't do everything correctly out of the gate, but find it easy to deploy new version and to evolve towards a successful solution.

    8. Re:The Native App Will Never Die... by alobar72 · · Score: 1

      It's always hard to go cross platform for platforms that the manufacturer has build to be locked in ...

    9. Re:The Native App Will Never Die... by Anonymous Coward · · Score: 0

      The simplest way to write a cross-platform app is to write as must as possible in ANSI C

      Xbox 360 Xbox Live Indie Games and Windows Phone 7 require all applications to be 100% pure .NET IL. ANSI C does not compile to this target. So what's the simplest way to write a cross-platform app that includes Xbox 360 or Windows Phone 7 among its target platforms?

      Don't include Xbox 360 / Windows Phone 7 in your mobile application plans?

      I mean... you're missing out on, what, two users?

    10. Re:The Native App Will Never Die... by tm2b · · Score: 1

      Not to mention the fact that networks NEVER, EVER go djfhgytirkd
      Djfjfnfjfigogog
      NO CARRIER

      --
      "It is our blasphemy which has made us great, and will sustain us, and which the gods secretly admire in us." - Zelazny
    11. Re:The Native App Will Never Die... by tepples · · Score: 1

      Don't include Xbox 360 / Windows Phone 7 in your mobile application plans?

      I mean... you're missing out on, what, two users?

      If not for Xbox 360, then for which set-top device should one develop? Nintendo blanket refuses all home-based businesses, and Sony's signup page has been down for two and a half months straight.

    12. Re:The Native App Will Never Die... by Lennie · · Score: 1

      Actually, HTML5* does solve most of the list of issues you mention.

      Just have a look at this page:
      http://diveintohtml5.org/forms.html

      For certain environments, like public websites, you might want to add a javascript-file which does the same for old browsers, but this isn't a shortcoming of HTML/JS/CSS specifically.

      I've never looked into this, but I'm pretty sure you can't use OpenGL on your old Atari either. As the OpenGL-specifications didn't exists when the Atari was created.

      * HTML5 and other specifications which people all seem to lump together to call "HTML5"

      --
      New things are always on the horizon
    13. Re:The Native App Will Never Die... by FlyingGuy · · Score: 1

      No, it doesn't.

      ALL checking is done in the onSubmit() event. In the meantime the user can input whatever garbage they want in whatever field they want and until the submit button is hit the crap just lays there.

      I was momentarily overjoyed when I read the spec and then immediately tried some of this and found it to be garbage.

      If I have a field that I want a monetary value typed into the filed should refuse to accept ANYTHING but the numbers 0 through 9 and the appropriate decimal indicator for that localization and nothing else.

      If I have a date field that I want to the format to be YYYYY/MM/DD then I should be able to say:

      <input name="dob" id="dob" type="date" mask="YYYY/MM/DD" default="null" required="no" />

      The control will then only allow numbers and put them in place and validate the date on exit from the control.

      WHY oh GOD why is an "area" not a text control? It certainly takes in text. But if you try and iterate through all the text controls in java script it is not one to be found and you have to kludge in some code to find them... ARGGGGGGGGGG!

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    14. Re:The Native App Will Never Die... by FlyingGuy · · Score: 1

      I find that the annoying thing about HTML/JavaScript are that they are not brittle. Errors that in other languages would provoke an exception are silently ignored.

      And even worse cause cause stupid browser behavior that is really inexplicable and it takes you hours to figure out where you left off a ">" symbol.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    15. Re:The Native App Will Never Die... by FlyingGuy · · Score: 1

      LOL, pretty much less!

      --
      Hey KID! Yeah you, get the fuck off my lawn!
  16. the only problem is... by PJ6 · · Score: 1

    web apps still suck compared to the real ones.

  17. Yeah right. Native is going nowhere fast. by Anonymous Coward · · Score: 0

    Call me back when EVE Online or any other REAL game goes mobile or browserbased... Pffh!
    Wait... EVE does have an ingame browser... hmm....

    Native is where the cool stuff happens. I've been doing distributed web applications for school and it's so boring! On the contrast, experimenting with Unity3D never ceases to amuse me.

  18. People are getting a little confused here by matthewv789 · · Score: 1

    This isn't really about native apps vs web apps, but rather what technology to use to build the front end appearance and behavior of actual apps. Apps that use HTML/CSS/Javascript for this task, instead of Java or Objective C or whatever, are thus known as "hybrid" mobile apps.

    In other words, PhoeGap etc. allow one to build a front-end interface in HTML5/CSS/Javascript, then package that up as an actual native application for various platforms (leveraging the platform's web browser under the hood). The frameworks usually allow you to take advantage of various native APIs that aren't normally accessible through a web browser (ie, that a normal web app can't use) and store data locally (ie, run the app offline), while reusing the same code across various platforms (and possibly as an actual web application version, as well).

    The amount of "platform-native" programming required to implement the app on various platforms is thus minimal.

    Also, some of the performance concerns are not as much of a problem as you might imagine, due to hardware-accelerated CSS3 transitions, etc. on various platforms. (Others actually convert Javascript to native code, obviating some of the potential performance issues.)

    One approach might be to write a regular web app first, targeted at "modern" smartphones (primarily iPhone and Android), then convert that to a PhoeGap application that can be targeted as a native app for those platforms (and more, such as Blackberry and Windows Phone 7).

    For more about this, see:
    http://www.technologyreview.com/computing/37831/
    http://www.appmobi.com/index.php?q=node/95
    http://www.amazon.com/Developing-Hybrid-Applications-iPhone-JavaScript/dp/0321604164

  19. Makes since by rsilvergun · · Score: 1
    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    1. Re:Makes since by shutdown+-p+now · · Score: 1

      It's kinda strange to compare "HTML5 + JavaScript" to VB. VB is just the language - it can only meaningfully be compared to JS alone. Even then, what, exactly, do you find wrong about it? Aside from the fact that it's strongly typed (which is not a flaw by itself), it's a fairly modern language; miles ahead of Java. for example.

      As for HTML, when comparing it to something like Silverlight, the only point on which it is ahead is portability.

    2. Re:Makes since by rsilvergun · · Score: 1

      Basically their both being used as easy to write front ends to databases, which is why I compare them. VBs syntax is just plain clumsy. Using Regular Expressions and doing database access is just plain more trouble, for example. Maybe it's just because I come from a Java / C++ background instead of a Basic background though.

      HTML5 can do anything flash and Silverlight do. I don't know if Silverlight performs better since I haven't had to write anything where performance was an issue (I can count on my end users having good spec hardware and running everything client side).

      --
      Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    3. Re:Makes since by shutdown+-p+now · · Score: 1

      Using Regular Expressions

      Compared to JS this is true, since JS has regexes integrated into the language. Compared to C++ or Java, it's pretty much the same thing.

      doing database access

      Um, have you seen LINQ (with your ORM of choice that supports it, whether built-in or third-party)?

      HTML5 can do anything flash and Silverlight do.

      Only in a sense that C can do everything that Java does. From developer's perspective, though, the effort required to do something also matters. The difference between HTML5 and Flash/Silverlight is that the former has fundamental design of a text markup language, and not an UI markup language. It had some hacks added to it over time to make UI programming easier, but it's still clumsy compared to something that's designed for UI from grounds up. I mean things like flexible layout model, convenient data binding, declarative triggers for appearance etc.

  20. Battery life by firewood · · Score: 2

    Software people sometimes forget physical limitations. Web apps require more CPU cycles for the same work (even if just to run a JIT compiler), more CPU cycles will consume more of the user's battery life, and battery energy density isn't getting that much better over time.

    1. Re:Battery life by caywen · · Score: 1

      I'll be truly happy when javascript jockeys finally discover the benefits of compilation and stronger typing and stop treating the rest of us developers like we don't understand some brave new world or something.

    2. Re:Battery life by tepples · · Score: 1

      I'll be truly happy when javascript jockeys finally discover the benefits of compilation and stronger typing

      So I've compiled a native application. How do my users execute it on their appliances? They can't because it hasn't been digitally signed by the appliance's maker. JavaScript applications, on the other hand, don't need to be signed by a third party to be deployed.

    3. Re:Battery life by Anonymous Coward · · Score: 0

      True but it depends on what you're doing. For a certain class of applications you can do the heavy lifting on the server side and the web browser just acts as a somewhat universal display/interface method which requires little CPU.

    4. Re:Battery life by marcosdumay · · Score: 1

      That is because Javascript is sandboxed. You can also sanbox a compiled language.

      Anyway, I disagree with the GP, compiling a web language isn't that important. Type safety is.

    5. Re:Battery life by tepples · · Score: 1

      That is because Javascript is sandboxed. You can also sanbox a compiled language.

      Only with either a JIT or hardware memory protection. And as of right now, there isn't much demand among users for a sandbox like Google Native Client (which uses x86 segmentation), so makers of appliances haven't implemented it yet.

      compiling a web language isn't that important. Type safety is.

      But is JavaScript type-unsafe? As I see it, every value is a boolean, number, string, array, object, or undefined, and the conversions among these are safe and well-defined.

  21. Cross Platform development is a nice dream and all by Anonymous Coward · · Score: 1

    But do we really need to turn a text document format into an application framework again? Do we really have nothing better to do than recreate old Microsoft technologies?

    Really, I haven't seen much good come from these "web apps". All I'm seeing are applications we already had being stripped down and made more resource heavy and inconsistent than ever before. Why do we have a billion different layouts for message boards and blogs? Why do we need a billion different icon designs and color schemes? Why do we need a billion different custom context menus? Why do we need to break everyone's back button? Why do we need a billion different video players? Why does this site look different in that browser? Why do none of these buttons look like the buttons I usually see? Why do these scroll bars, forms, and other widgets behave differently from the widgets I usually see? Why does that menu drop down on hover and this one when I click? Why do we use hover when there are so many touch screen devices out there? Why do some sites steal my middle click so I can't open things in new tabs? Why do various google sites use spans with onclick events when they're made to behave exactly the same as a standard link? Why do none of these GUIs follow the conventions of my platform? Why is it normal for an article of text and an image or two to use up a few hundred megabytes of memory? Why is it okay for Google Docs to make my CPU cry when it does less than MS Office 2000? Why are simplistic based painting applications on a Core2Quad less performant than Photoshop 7 on an old G4? Why is any of this normal?

    Why did we accept this as the platform of choice going in to the future?

  22. TRUE native is dead by Anonymous Coward · · Score: 0

    There are web apps, and local apps. But these days local apps are increasingly done with managed code.

    It's been years since I've had a job where unmanaged code was permitted. I won't claim there aren't still some around, but they're fading into the background of development and for good reason.

    So it is true, native apps are dying, but it has nothing to do with the web.

  23. Been doing this for ages... by cbybear · · Score: 1

    I've been working on an iPhone app called Phresheez, where the majority of the content is display via built-in web view in the native app. That let my partner in development make the Android version easily. Actually, he got the Android version working before I got the iPhone. And that was over 3 years ago.

    It's proved to be an excellent way to manage the app. We still do a lot of native work (accessing sensors, custom features, in-app purchase, etc.), but the majority of user interaction takes place via a web view. It "talks" to the native app (via a delegate method on the iPhone, I don't know the Android details) and vise-versa.

    The really wonderful part is that we can 'upgrade" the web part of the app at any time. As soon as the user restarts the app, they have the updated web app inside it. Our web app updates on a very regular cycle (a few times a week) versus the native apps which have been updated every few months as necessary (more on the Android than the iPhone, mainly due to easy of update with Android vs. iPhone). /. where the old is news again... :)

  24. If you assume... by sgage · · Score: 2

    ... that Web access is going to continue to be cheap, fast, and always-on, then web apps and the whole cloud thing makes some sort of sense. Though there are still privacy and security issues.

    But I don't assume that Web access is going to continue to be cheap, fast, and always-on. I sincerely hope that I'm wrong.

    1. Re:If you assume... by Anonymous Coward · · Score: 0

      That is the elephant in the room. Both Google and Apple are betting that it will, and if they don't put some serious work into making sure that it stays available, a team up of someone like Comcast+Cox+AT&T could shut them down almost over night. And given the kind of stuff that the FTC lets through, that whole team could end up owned by a single player.

    2. Re:If you assume... by darjen · · Score: 1

      If you're a popular commerce site like Amazon or Ebay, you will need to be connected to the web either way, even if you write a native application. The only reason I see a real need to write a native app is for games, audio editing, or photo editing. If you're a blog, content, or shopping site, I would focus on polishing your web app and leave it at that.

    3. Re:If you assume... by shutdown+-p+now · · Score: 1

      They're talking about offline web apps. Basically, imagine a bunch of HTML5 & CSS packaged into a native app which simply creates a fullscreen browser widget and loads that HTML into it. Oh, and exposes non-UI-related native APIs (filesystem access etc) to JavaScript running in that browser.

    4. Re:If you assume... by Lennie · · Score: 1

      On your smartphone.

      --
      New things are always on the horizon
  25. If I may interject... by Anonymous Coward · · Score: 0

    Appcelerator seems to be an awesome compromise between the two... develop in a language webdevs are familiar with (Javascript) across many different hardware platforms (iOS, Android, Blackberry etc). It's not web dev, it's Javascript [runtime?] compiled to Objective-C (and Java for Android etc). It's a bitch to learn but once you get the hang of it it's super easy to throw together an app in no time. http://appcelerator.com/ (their docs aren't the most accurate, it's best to read the kitchen sink code).

  26. Xamarin will be the sweet spot by Anonymous Coward · · Score: 0

    http://xamarin.com/

  27. Desktops vs. laptops by cela0811 · · Score: 1

    Native apps and web apps are like desktops and laptops. Laptops are more convenient and portable, but are harder to upgrade and generally less powerful. Laptops have advantages, but they aren't going to replace desktops anytime soon. Instead they will coexist until technology advances enough that laptops can replace desktops. Web apps are more portable and convenient; but native apps are faster and offer greater flexibility. They will coexist until computers are fast enough to run web apps at native speeds. Then the only native apps will be the OS and browsers. That is still a long time off. So stop worrying about it.

  28. Huh? by Marvin_Runyon · · Score: 2

    Dan Yoder

    Who?

    CTO at Border Stylo

    Again, who?

    Native Apps Are Dead

    Oh, that again, whatever...

  29. Jobs pushed this once.... by __aazsst3756 · · Score: 2

    Remember when Steve Jobs stood on stage and told developers they did not need to code native apps, because the iOS would ship with an awesome web browser? Didn't go too well, and they were forced to release native app support. Then Rubenstien left Apple to help build WebOS at Palm, that also did not support native apps. They may die someday, but it will not be any time soon.

    1. Re:Jobs pushed this once.... by Lennie · · Score: 0

      I think it is the other way around. As an example Microsoft is adding it to Windows 8 as one of it's primairy development platforms, so it seems.

      Hardware gets faster and have longer battery life, JavaScript- and HTML-/CSS-render engines get faster and use less power.

      Every browser that implements some HTML5- or related specifications have not implemented the whole specification yet.

      There is still a lot which isn't finished in the HTML5 specification yet.

      So things are improving on the webapps-side and with a native wrapper it also has access to the native API to do pretty much everything a native API can do, but with the abillity to have the bulk of the code the same on all platforms.

      --
      New things are always on the horizon
  30. Don't worry dude! by Weezul · · Score: 1

    He said "extend an embedded Web browser to provide access to native APIs".

    He'll need ya on staff permanently fixing goatse sized security holes.

    --
    The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
  31. Web! by Anonymous Coward · · Score: 0

    Fwiw: I've only ever used the web browser to read slashdot. Native rss readers appeal to me but I enjoy slashdot in all it's quirky splendor. I've used native email clients, but I keep coming back to webmail.

    Photo editing, video editing, I use native, but even tv and mp3 playing is acceptable to me with web services. Despite the downsides of not "touching the metal" -- as an iOS dev said having the same discussion at WWDC -- I tend to lean with what works best for the job, and the web -- in one shape or the other -- is getting the job done more and more each day.

  32. Too bad... by Anonymous Coward · · Score: 0

    Too bad most web apps suck ass. Also, developing web UIs seems to be massively time and effort consuming. I know our company spends about 10x the effort making sure our web facing UIs work than actually generating the data that the web UIs serve up.

    1. Re:Too bad... by Lennie · · Score: 1

      Mostly because of old browsers, this is not the same problem as on smartphones.

      --
      New things are always on the horizon
  33. Google's take by loconet · · Score: 1

    Went to a talk on this at IO this year, here is Google's take on it.

    --
    [alk]
  34. Web apps are native apps by caywen · · Score: 1

    Sorry, I just don't see "web apps" as being any kind of meaningful term. It's not an application model, it's a deployment model, which is a different thing. The bits come down through some channel and execute on your system. Some bits execute remotely, but that's been happening for decades.

    1. Re:Web apps are native apps by Lennie · · Score: 1

      Please read the summary again, this isn't about webservices. This is about locally installing HTML/JS/CSS on your smartphone. Why would you want to do that ? Because you can use the same code on many different types of smartphones.

      --
      New things are always on the horizon
  35. Cool... when no encryption. by Anonymous Coward · · Score: 0

    Try to do RSA 1024 and AES 256 in a Phonegap Application with JS algorithms. You will have lot of fun there, specially waiting to the encryption / decryption happens. There is some things you still need to use Native for. Another example is trying to use a X509 certificate in the phone keychain and connect to the valid IP that this certificate was issued for.

    For basic apps it is ok to work under the premises of general abstraction libraries (HTML + JS + CSS -> Webview -> Objective C) , but there is other places where the applications might need some more encryption and privacy protection than standard - i.e. Bank applications and more private access applications.

    1. Re:Cool... when no encryption. by ewanm89 · · Score: 1

      Hell, JavaME is/was (well, luckily it's almost dead now) horrid when it comes to actually supporting any real algorithm. It's left to the phone manufacturers decision which to support.

    2. Re:Cool... when no encryption. by ewanm89 · · Score: 1

      On another point, on the web most of it should just be making the url's start with HTTPs and let the browser do the work. I recommend letting well written standards do it for you.

  36. Re:Cross Platform development is a nice dream and by Ol+Olsoc · · Score: 1
    We accepted it in the same way we accept cell phone sound quality versus landline phone quality.

    We're told how great these web based apps are, and darned if some or most of us buy it. We get the computers running fast, so we come up with apps that slow it down. It's the latest form of software bloat. The time may come when we look back fondly on those Vista basic machines foisted on us a few years back.

    --
    The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
  37. Native app vs native app by Lost+Race · · Score: 1
    FTA:

    One problem with the debate is that it's a false dichotomy,

    O RLY?

    since you can embed a Web browser within a native application.

    That's a native app.

    And, conversely, you can extend an embedded Web browser to provide access to native APIs.

    That's a native app.

    The two alternatives have not been mutually exclusive for years now.

    Whatever. If it runs in a plain old web browser, it's a web app. If it uses platform-specific native code it's a native app. Duh.

    1. Re:Native app vs native app by shutdown+-p+now · · Score: 1

      That's a native app.

      You have a funny definition of a native app, when it applies to something that's 1% C/C++/Obj-C (and even that you don't write yourself but use a pre-made wrapper), and 99% HTML/JS.

      For all practical purposes, from developer's point of view, these are web apps. They only become "native" when they are packaged prior to submitting to app stores.

  38. Alternative to "consume" by tepples · · Score: 1
    Anonymous Coward wrote:

    you don't consume digital content, that's an idiotic idea.

    Then what's the general word for doing something with digital works other than creating them? What word covers viewing, listening, playing, etc. without being specific to a single medium?

  39. Oh For Gosh Sakes! by SilverHatHacker · · Score: 1

    That's not how you use that bloody phrase! No one in the tech world seems to comprehend that the meaning is "The [old] king is dead, long live the [new] king". In this case, the title should be "Native apps are dead, long live web apps". Does it never occur to anyone that the way it is used here makes no sense at all?

    --
    Funny may not give karma, but +5 Informative never made anyone snort coffee out their nose.
    1. Re:Oh For Gosh Sakes! by marcosdumay · · Score: 1

      It surely occurs to me, but I'm quite used to popular english sentenses making no sense. Some times I discover why (thanks for the explanation), but often I don't.

  40. Better to learn your tools than be miserable. by SanityInAnarchy · · Score: 2

    Whether it's having to use horrid languages like JavaScript or PHP,

    JavaScript isn't a bad language. It's not a great language, but it's much better than it's given credit for.

    PHP is, however, a pretty bad language. Maybe it's gotten better recently, but it's not a great choice -- especially when, on the server, you have options.

    or dealing with broken browsers like IE6,

    That does suck. Last time I did web development, it took something like an hour a week. But that's really not bad, in the scheme of things.

    We also eventually decided to drop IE6 when we noticed how little of our traffic included it -- we targeted at least IE7, which was much better in that respect.

    or dealing with shitty MySQL databases "designed" by people who didn't understand even basic relational theory,

    In this case, you're in the same boat as with PHP -- that is, you're working with legacy code developed by shitty developers. You find the same shit everywhere.

    Or you can use languages that are actually enjoyable on the server side, and work with designers who actually do understand databases.

    At least native applications are often built using real programming languages like C and C++.

    I'd prefer JavaScript to C++, but then, I hate static types. But I'm confused that anyone in their right mind would prefer C to JavaScript. C, really?

    Even semi-native languages...

    What do you mean "even"? I mean...

    like Java, C# and, dare I say it, VB.NET,

    Are you really saying C and C++ are more enjoyable than the above?

    And people are taking you seriously?

    I could see the argument that they are more "powerful", in some sense. More efficient, certainly, in the hands of someone who knows what they're doing. But more enjoyable?

    I enjoy not having to debug segfaults anymore. Let's start with that.

    or dealing with broken HTML,

    How is this any worse than, say, dealing with a broken GUI widget?

    or fighting with stylesheets.

    This is probably the worst part of web development right now, so I do agree with you there.

    But I'd still rather fight with stylesheets than fight with manual memory allocation in C and C++, or with making Java, C#, and VB.NET programs actually cross-platform -- or even be sure they work on everyone's machine. There are far fewer popular browsers than there are ways people will fuck up Windows.

    Everything about it was decades behind where native applications were at the time, and things still haven't changed.

    Oh, they have changed.

    There are aspects which are decades ahead of native apps now, but there are also aspects which are decades behind.

    --
    Don't thank God, thank a doctor!
    1. Re:Better to learn your tools than be miserable. by mmcuh · · Score: 1

      If you are doing manual memory management in C++ you are either doing it wrong, or doing some hardcore low-level stuff.

    2. Re:Better to learn your tools than be miserable. by SanityInAnarchy · · Score: 1

      If you are doing manual memory management in C++ you are either doing it wrong, or doing some hardcore low-level stuff.

      If you aren't, it seems like you lose much of the advantage of C++ in the first place over something like Java.

      --
      Don't thank God, thank a doctor!
    3. Re:Better to learn your tools than be miserable. by mmcuh · · Score: 1

      No, the advantage (in memory management) is that you can know exactly when a resource is freed. This is true both if you are calling delete explicitly and if you are using smart pointers or other automatic memory management tools.

  41. Finally :) by alobar72 · · Score: 1

    I read similar arguments when java applets arrived, or flash, or webstart... Cant wait to read why native apps are dead when HTML 6.x arrives :) The point is, there are plenty of use cases where web apps are the thing to do instead of going native - and a whole lot of situations, where you just don't want a web app. I think also one has to remember that browsers didn't start as runtime environments but as rendering engines. Will there be more web apps coming ? Sure Will there still be native apps ? Sure.

  42. Offline! by DaleCooper82 · · Score: 1

    For me, beside platform native look & feel, the beauty of native app is ability to read/work with info, news, etc. while offline. Try working with any of these web apps while on trans Atlantic flight.

    --
    :: There is no light at the end of a tunnel. There is a tunnel after a tunnel : Thom Y. ::
  43. Look at all the angles first! by ewanm89 · · Score: 1

    There are security issues making the webbrowser able to do all stuff as a native code. There is no way to protect against malicious code on a website in such cases, this is the current argument in the security world about webgl. Javascript and such has very tight restrictions on what it can do.

    Purely native code can run as the coder wishes, with full access to the hardware, if one doesn't need that then go ahead.

    One last thing, Javascript and the like are relatively horrible languages to code in, just cause a developer can code in it doesn't mean he/she likes coding in it.

    Finally where did bytecode go, between native and web it's supposed to be a compromise for this kind of situation?

    1. Re:Look at all the angles first! by Lennie · · Score: 1

      You did read the summary, right ? This is about locally installed HTML/JS/CSS on your smartphone which has some access to the native API, not some random website which you can't reach when you don't have a working wifi-connection/data-connection.

      --
      New things are always on the horizon
  44. Ever heard of MVC? by tepples · · Score: 1

    This is one interesting thing about mobile development. Each platform pretty much dictates a programming language of choice. If its a language you don't mind working in, then its not a problem. But that's not always the case.

    Finding a language unpleasant to work in isn't the problem as much as the fact that I would prefer to write an application's logic layer once and then write platform-specific presentation layers on top of that. It has worked for me in the past, where I've quickly ported a PC game to Game Boy Advance homebrew by writing a new view for the model. But this fails when platforms lack a common language in which to write the logic layer. (See Multitier; Don't repeat yourself.)

    1. Re:Ever heard of MVC? by Octorian · · Score: 1

      That's also a big problem, because sometimes there is a common language. But the lowest-common denominator version of the language and API is extremely primitive. For example, Android, BlackBerry, and "those other J2ME-supporting phones" (not sure what you call them) can all be developed for in Java. Except...

      - J2ME is based off Java 1.3 (I think), with an extremely primitive API
      - BlackBerry is J2ME-derived, but compensates by adding a lot of useful classes to its API (that obviously don't work on normal J2ME)
      - Android is J2SE-derived, but is really completely its own API

      So BlackBerry's J2ME "compatibility" deludes people into thinking they can just write a single J2ME app that works on both, or share a lot of code. In reality, any apps written this way tend to be quirky and barely usable, since core J2ME is so limited.

      And one might think you could share your business logic amongst all 3, since they're all technically Java. Well, doing that would require carrying along your own abstraction layer for pretty much anything beyond a tiny subset of java.lang.* and java.util.*, and being very limited in your use of language features.

  45. ROI dictates web apps whenever possible for US biz by Anonymous Coward · · Score: 0

    In a modern US business you are almost certainly regulated by some cluster of Republican-sponsored laws advantaging multinational corporations over small family businesses. I'm always subject to some combination of HIPAA, GLB, SOX, or FDA regs no matter what I do.

    Those regulations preclude running any unsupported operating system. My clients can't run win98, DOS, or WinNT anymore... but many apps I wrote for those platforms more than ten years ago are still running today, because I wrote them as web apps.

    If you are the kind of person who obsesses on shadow borders and microscopic differences in fonts, a presentation layer person who cares little for actual content, web apps suck. If you are the kind of person who analyzes a problem and designs an optimally efficient and durable solution, the web is your friend! Do you want to rewrite your apps every single time the client desktop gets a major patch? I don't have to. The continuing trend towards browser standardization means my apps look prettier every day, without me doing anything but writing to W3C standards. And the stuff I wrote ten or more years ago still runs securely and perfectly, because I didn't do any techniques that called for any browser specific hacks at all and I used no client-side code more complex than the simplest javascripts. We intensively maintain a small group of servers and on the clients we just accept every patch Microsoft, Apple, and our AV vendors push down the pipe and call it a day.

    Recently I wrote a cron-like interface to iNotify on linux, to drive some backend server processes. I wrote it in C, with no GUI and no end-user interface other than a text file. Server apps like that are why native apps will never die - but for client GUI presentation it's wise to use the web whenever possible. The return on investment is fundamentally better, because you don't have to rewrite all your apps simultaneously as you upgrade every desktop due to HIPAA or FDA. We have over 400 apps - and no app upgrade cost when we implement a new desktop.