Slashdot Mirror


Facebook iOS App Ditching HTML5 For ObjectiveC

Wrath0fb0b writes "The New York Times reports that Facebook is overhauling their iOS App to ditch their HTML5 based UI for a native ObjectiveC one. This is an about face from their position a few months ago in which FB said HTML5 would allow them to write once run anywhere. While WORA certainly has a lot of appeal for both programmers (due to desire not to duplicate effort) and management alike (due to desire not to pay programmers to duplicate effort), the large number of negative reviews that FB for iOS has illustrate that this approach is not without drawbacks. No matter how the new app is received, this is more fuel on the native vs. web-app fire."

240 comments

  1. Ask any grey beard. by xtal · · Score: 4, Insightful

    Native code is _always_ better.

    --
    ..don't panic
    1. Re:Ask any grey beard. by jythie · · Score: 5, Insightful

      Well, 'better' is relative. The question is often 'is it better enough to justify the decreased portability and increased cost of supporting multiple platforms?' Sometimes the answer is yes, sometimes the answer is no.. sounds like the answered wrong in this case.

    2. Re:Ask any grey beard. by xtal · · Score: 5, Insightful

      Better, in the sense that cost considerations aside, technically, it is superior almost every time.

      In reality, your logic and communication bits should be abstracted anyway - isn't that the hallmark of good programming practice? ..and even then there's performance tradeoffs.

      Write it all in assembly and get off my lawn. :)

      --
      ..don't panic
    3. Re:Ask any grey beard. by Kenja · · Score: 3, Funny

      What if I build an OS with a native API that runs on the souls of war orphans, but it also has a web browser? What then Mr Beard?

      --

      "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    4. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      I take it you have not tried ObjectiveC then?

    5. Re:Ask any grey beard. by armanox · · Score: 3, Funny

      If you can do that I'll be impressed.

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    6. Re:Ask any grey beard. by prgrmr · · Score: 4, Funny

      if he could do that, I'd pay money to fund the war to produce the orphans.

    7. Re:Ask any grey beard. by Kenja · · Score: 1

      Its proving difficult. Not the first part, but the web browser.

      --

      "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    8. Re:Ask any grey beard. by roc97007 · · Score: 2

      And while we're on the subject, get off my lawn!

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    9. Re:Ask any grey beard. by Firehed · · Score: 1

      I'll happily do my part to produce orphans.

      --
      How are sites slashdotted when nobody reads TFAs?
    10. Re:Ask any grey beard. by Anonymous Coward · · Score: 5, Funny

      I think you mean bastards. If you really want to do your part to produce orphans ...

    11. Re:Ask any grey beard. by Quiet_Desperation · · Score: 5, Funny

      I've been dabbling in Objective C. It's... interesting. I regret nothing... well, unless I have those dreams with the brackets. So many brackets! And the garbage! Piling up everywhere! Was it five references or six? Do I feel lucky? What? Where was I? Oh. Yeah, it's OK.

    12. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      I've been dabbling in Objective C. It's... interesting. I regret nothing... well, unless I have those dreams with the brackets. So many brackets! And the garbage! Piling up everywhere! Was it five references or six? Do I feel lucky? What? Where was I? Oh. Yeah, it's OK.

      A few less square brackets are required now that Objective-C has literals and Automated Reference Counting (ARC) has made garbage-collection a minimal part of coding. It's much easier to think about object graphs anyway.

      Plus if you just prefer to code in straight C or C++ you can do that and then only code a thin layer to touch the UI.

    13. Re:Ask any grey beard. by SCHecklerX · · Score: 1

      Not if you don't own that device.

    14. Re:Ask any grey beard. by orlanz · · Score: 1

      The only thing true about this statement is that is will _always_ resolve to be "False". Or 0 for you grey beards.

    15. Re:Ask any grey beard. by wonkey_monkey · · Score: 1

      Better, in the sense that cost considerations aside...

      Yep, that one's usually waaay down the list ;)

      Write it all in assembly and get off my lawn. :)

      Now, real programmers...

      --
      systemd is Roko's Basilisk.
    16. Re:Ask any grey beard. by Eponymous+Hero · · Score: 1

      you'd have to be a fucking moron to think html5 was ever "write once run anywhere."

      --
      insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
    17. Re:Ask any grey beard. by gl4ss · · Score: 1

      in mobiles, since 2003 or so there has been certain developer marketing folk pushing for all-html/js solutions as the magic bullet that will make development cheaper by not having to need experts(who know what the device can do and how) and that it's just a matter of mapping javascript api's.

      so after that mobile developers have been constantly bombarded with propaganda that in 1-2 years there's going to be so good js engines and renderers that it'll as good as native. an example about this is nokias web runtime(ultimately a big bunch of money wasted on that affair...).

      so far it hasn't happened - not even on desktop, js just doesn't cut it. there's a certain subsection of apps where it doesn't matter that much though - but those apps could just as well be just web-sites... and if you want fancy stuff you're going to target the web engines with different code anyways right now.

      and you can spend a LOT of time working out the kinks between the version tied to running on safari and the one running on IE9.

      --
      world was created 5 seconds before this post as it is.
    18. Re:Ask any grey beard. by beelsebob · · Score: 1

      What about ObjectiveC do you not like? Aside - if you leave a shallow answer like "the syntax", rather than actually giving a thought out reasoned answer about semantics, I personally will come around to your house with a trout to slap you.

    19. Re:Ask any grey beard. by amicusNYCL · · Score: 1

      I hate all the orphans in the world!

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    20. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      Mostly all those brackets and stuff. Yeah, that's about it.

    21. Re:Ask any grey beard. by beelsebob · · Score: 1

      All right... who knows where anonymous coward lives...

    22. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      Except, when going through a two week submission process to deal with a Zero Day attack.

    23. Re:Ask any grey beard. by thetoadwarrior · · Score: 1

      Nothing is always the best solution for every scenario. but I would expect that sort of answer form a senile old man or grey beard if you prefer.

    24. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      Better is subjective. When I hear "better" I ask "better for whom?" You and I don't always want the same things. The user says "I want the program to run faster (or more reliably, or something like that)," the more clever user says "If I am becoming dependent upon it, then I want it to be portable to the machine I will have next year", the programmer says "I want this off my todo list sooner," whoever is paying for it wants some kind of balance, the government says "I want it to have a back door," the compiler/runtime vendor wants it to be dependent on their tools, and so on.

    25. Re:Ask any grey beard. by 93+Escort+Wagon · · Score: 1

      I'll happily do my part to produce orphans.

      I hope you've already managed to accomplish most of what you want in life, then.

      --
      #DeleteChrome
    26. Re:Ask any grey beard. by 93+Escort+Wagon · · Score: 2

      I've been dabbling in Objective C. It's... interesting. I regret nothing... well, unless I have those dreams with the brackets. So many brackets!

      I think you'd really like Lisp - maybe tackle that next.

      --
      #DeleteChrome
    27. Re:Ask any grey beard. by xstonedogx · · Score: 1

      I don't know. By my reckoning he's got 17 really great years ahead of him.

    28. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      If you're counting references, you're doing it wrong.

    29. Re:Ask any grey beard. by mosb1000 · · Score: 3, Informative

      The latest version of Objective C has automated reference counting, so garbage collection is no longer an issue.

    30. Re:Ask any grey beard. by Anonymous Coward · · Score: 0, Funny

      Bah, he should have used MyCleanPC.

    31. Re:Ask any grey beard. by BZ · · Score: 2

      Write it all in assembly, and more likely than not for a large system you get http://en.wikipedia.org/wiki/Therac-25

    32. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      >if you leave a shallow answer like "the syntax", rather than actually giving a thought out reasoned answer about semantics

      People whine about Python's tabs and Lisp's parentheses here all the time. It's not that uncommon.

    33. Re:Ask any grey beard. by jcr · · Score: 2

      Objective C 2.0 has garbage collection, not automated reference counting.

      Currently, it has both. We're in the process of moving from GC to ARC, since GC left much to be desired.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    34. Re:Ask any grey beard. by shadowrat · · Score: 1

      its more like "you never have to write retain and release, but you have to stick to some rigid rules and be very aware of some subtle naming standards" than simple automatic reference counting. ie: i've found that i still need to be thinking about when stuff is being retained.

    35. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      Inside your mind!!!

      Can you handle it?!

    36. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      Maybe this is being overly pedantic, but Objective C 2.0 has garbage collection, not automated reference counting.

      It's a failed attempt at being pedantic, because it's not up to date with current events. Yes, Objective-C 2.0 has GC. However, a couple years ago Apple also implemented ARC.

      Now that Apple has fully switched to LLVM and its ARC support is pretty solid, Apple just recently (a couple weeks ago) told developers that Objective-C GC is deprecated and they should move to ARC instead. This is not as big a deal as you might think since they never made Obj-C GC available on iOS (for all those realtime performance reasons you mentioned), and most OS X developers didn't switch to GC overnight because they had already-working explicitly refcounted code.

    37. Re:Ask any grey beard. by ceoyoyo · · Score: 1

      You like your brackets round instead of square?

    38. Re:Ask any grey beard. by johnnyb · · Score: 2

      Objective-C has 90% of the power of Ruby, with 90% of the static-compile-time checking of C++. I actually started an objective-c implementation of Rails (called Newm), but haven't had time to do a lot of work on it. Ruby developers waste half their lives writing tests for things a compiler could catch automatically. About 80% of Rails application bugs could be caught just by having decent compile-time type checking, which Objective-C provides.

    39. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      Usually native is better when there is a CPU computation or graphical limitation that can't be done with HTML. Namely "3D", some fancy animation effects and a few cases of sound synchronizing.

      Facebook is none of these. Zynga's games are.

      However, if you've ever put the facebook widget cruft on your website, more than 100 pieces of html end up on your site. This takes a godawful long time on slow mobile connections. You have
      - The javascripts
      - The CSS
      - Every image used in the facebook page
      - Every photo of every follower

      Like, who the hell thought this was a good idea. Even on a desktop, every time you run into facebook, wibya or sharethis type of social media cruftworks the website's performance is dragged down.

      We need to all take a step back and stop integrating every obnoxious piece of cruft on the internet like we all did back in 1996 when websites barely worked.

      eBay is an excellent example of being cruft+cruft+built on top of cruft because the you have one layer of user-created cruft, then you have the advertisements, and then you have all the search functionality. If you website looks like eBay or Huffpo, your website needs to be thrown away. Even Google keeps falling into the cruft trap.

    40. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      Try FreePascal, its cross-platform, can use C/C++ Libs, in-lines, etc. Top down and objects together, readable, works, and still getting better...

    41. Re:Ask any grey beard. by Simon+Brooke · · Score: 3, Insightful

      Speaking as a greybeard (both literally and as a thirty-year veteran of this industry), bullshit. When I was young there were still a few people around who could write software by writing opcodes out in pencil on the train home and have them work first time without bugs (Chris Burton, who helped build the Manchester Mark One, I'm thinking of you), but most people can't. And most people cannot write C well enough to outperform the software that the same person can write in a decent high level language.

      Virtually no-one, now, can write anything sophisticated or complex in opcodes. Virtually no-one can do it even in assembler (yes, I know you did a little assembler project in CS101, but that really doesn't count). Yes, I know that a few rare geniuses can write exceedingly efficient fault free code in C or C++. Most complex programs written in C or C++, however, are too expensive in debugging and maintenance costs to outweigh any very small performance advantages they might have over high level languiages. Grow up, and live in the modern age. Toggling switches on the console, teletypes, punchcards, assembler and C are all history.

      (Mind you, of course, there is some exceedingly bloated code around. I recently installed, on Windows, a Bluetooth device driver that was 60 Megabytes, which I found unbelievable... the fact that we have high level languages is no excuse for bloat or sloppy engineering practices.)

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    42. Re:Ask any grey beard. by Anonymous Coward · · Score: 0

      What would be the rate of error for manually administering the radiation doses vs computer control?

  2. About time by nwf · · Score: 0

    Thank goodness. Every app that I see on my iPhone that uses HTML to be portable suffers horrible performance. This includes FB, but also the iTunes store. Over the past few months, the iTunes store has become almost useless on my iPhone 4. FB was among the worst, but it did recently get much faster when they apparently upgraded their servers. It's still crap, don't get be wrong, but it's a good deal better than it was a month ago.

    --
    I don't know, but it works for me.
    1. Re:About time by Korin43 · · Score: 5, Interesting

      I think the problem with the Facebook "app" was that it didn't seem to store anything locally -- meaning every UI event involved a request over the internet, which does not make for a responsive UI.

    2. Re:About time by kelemvor4 · · Score: 1

      Thank goodness. Every app that I see on my iPhone that uses HTML to be portable suffers horrible performance. This includes FB, but also the iTunes store. Over the past few months, the iTunes store has become almost useless on my iPhone 4. FB was among the worst, but it did recently get much faster when they apparently upgraded their servers. It's still crap, don't get be wrong, but it's a good deal better than it was a month ago.

      Sounds like a problem with the iphone to me....

    3. Re:About time by bongey · · Score: 1

      Maybe they should have wrote the iTunes in flash.

    4. Re:About time by synapse7 · · Score: 1, Offtopic

      I don't use facebook and do not worry about it.

    5. Re:About time by Anonymous Coward · · Score: 0

      LOL get a load of this guy - "RIM is relevant! Buy their PlayBook! They're going to AMAZE you with BB10!"

      Nice try, Mr. Heins, nice try. We're not falling for it.

    6. Re:About time by gbjbaanb · · Score: 1

      so would a Cordova-based approach (where the html 'server' is located locally) make a much better user experience? ie, write a 'thick client' app using HTML technologies rather than a traditional web page that is squeezed into iOS size.

    7. Re:About time by nwf · · Score: 1

      Maybe they should have wrote the iTunes in flash.

      In this case, I'd bet it would be faster, assuming you could emulate flash.

      --
      I don't know, but it works for me.
    8. Re:About time by Korin43 · · Score: 1

      iOS seems to have HTML5 local storage available, Facebook just chooses not to use it.

    9. Re:About time by proxima · · Score: 3, Interesting

      iOS seems to have HTML5 local storage available, Facebook just chooses not to use it.

      This is definitely true. The Financial Times native app got replaced with a nearly-equivalent HTML5 "app". Safari asks for permission to store extra data locally, and then it generally feels pretty responsive (relative to other news apps, which in all honesty feel a bit bloated). I'm not sure how compatible it is with other platforms, though - it might have a bunch of really ugly ipad-specific hacks behind it, who knows.

      --
      "The universe seems neither benign nor hostile, merely indifferent." --Carl Sagan
  3. WORA.... by jythie · · Score: 2, Insightful

    Has appeal in theory (and sometimes practice); looking great on paper, but it is easy to get swept up in enthusiasm for the concept and not really think though how applicable it is to any given environment.... and even when it does work it is pretty rare for something to truly 'work anywhere' in the real world.

    1. Re:WORA.... by steelfood · · Score: 4, Interesting

      The problem with WORA is that the interpreter has to both be present and consistent across all environments. It worked for Java, because Sun wrote all of the initial JVMs, and every such JVM conforms to the same spec. Even then, Java was for the desktop/server. Sun had to change to a new spec for mobile, which they recognized was a completely different playing field. The scope of WORA that Facebook wanted to apply wouldn't have worked even they were using Java.

      Something as massive and as fractured as HTML5 where everybody "supporting" it has actually only implemented a portion of the standard and not the full thing, it's virtually impossible to get right. Not only this, but there needs to be a layer that changes elements based on device capability and type. This layer does not exist in the standard. Thus, WORA cannot and does not work for HTML5.

      And to be honest, it may never work.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    2. Re:WORA.... by dgatwood · · Score: 1

      In Facebook's case, the problem with WORA is much larger than that. Because the interpreter must be consistent across all environments, it is difficult to take maximum advantage of features that do not exist everywhere. Not just the sorts of device capabilities that impact HTML5, e.g. screen size, but also device features, e.g. address book, built-in camera, etc. that cannot be taken advantage of from within a web app.

      As a result of this, the Facebook app was never WORA. It was a custom, probably iOS-specific, chimera of a web app and a native app that did some things with native code and other things with web code. This sort of design is inherently fragile, and there were a lot of bugs (of such severity that if you exited the app in certain views, you would be unable to launch Facebook until you deleted and redownloaded the app) that were almost certainly caused by the design.

      More importantly, Facebook does pretty much everything with JSON and other similar services anyway (as opposed to providing static HTML content), so there is no real advantage to using HTML for the UI. It adds lots of complexity (two programming languages instead of one, plus the complex interface between them), reduces performance (even with JIT, JavaScript is likely to be a little slower than native code), and leaves you at the mercy of a browser engine for your UI instead of being able to code anything that the native widgets can support.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    3. Re:WORA.... by Anonymous Coward · · Score: 0

      Write once, suck everywhere.

    4. Re:WORA.... by bjwest · · Score: 1

      Why does WORA have to be a scripting type language? How about a WORA complied language? I see no problem with having to recompile an application for different platforms. The gaming industry should've done this years ago for cross-platform games. One language, write once run anywhere with a simple recompile. I know it's been tried in the past and screwed up by (usually MS) someone wanting their own standard to be THE standard, but come on people, this is the 21st frigging century. It's well within our technological capabilities, and has been for quite some years. Every frigging aspect of everything in existence doesn't have to be monetized out of usefulness.

      --

      --- Keep the choice with the user..
    5. Re:WORA.... by bobv-pillars-net · · Score: 1

      In 1985, I took a Fortran course at EdCC. Their p-System-based compiler took a full hour to parse a hundred-line program and report (only) the first syntax error. So I wrote and debugged all my Fortran programs in Turbo Pascal, which compiled the same hundred-line program compiled in less than a second.

      That's over three orders of magnitude difference between "portable" and native code. Today the difference is between one and two orders of magnitude, but the cost is still prohibitively expensive for many applications.

      --
      The Web is like Usenet, but
      the elephants are untrained.
    6. Re:WORA.... by ceoyoyo · · Score: 1

      It's called C.

    7. Re:WORA.... by bjwest · · Score: 1

      There's more to it than just that, otherwise why all the other languages? Sure, C is cross platform, but so is Cobol, Fortran, Pascal, etc...

      Todays apps need more than just the base language, they also need graphics libraries such as OpenGL or even X. I've never understood why, especially on a smart phone where resources are at a premium, anyone would go with an interpreted language. It shouldn't matter that there are different processors for the same OS, let the app store figure out which binary to send to the damn thing and use a compiled language. Hell, the app store can even compile the thing for the different platforms as well.

      We have long been at the point where OS and processor should be irrelevant, most especially OS. There is no reason, other than greed, that anyone should be tied to Windows, OSX, or Linux given todays technology. An application for one should be no more than a recompile away from the other.

      --

      --- Keep the choice with the user..
    8. Re:WORA.... by ceoyoyo · · Score: 1

      C has lots of cross platform graphics and GUI libraries. You mention one of each, coincidentally.

      "I've never understood why, especially on a smart phone where resources are at a premium, anyone would go with an interpreted language."

      We've reached the days when 1 GHz+, frequently dual (or more) core processors with half a gig + of memory is scarce resources. For what a smartphone does, and what it's powered by, you SHOULD be able to write in pretty much anything you want and not have a problem. Interpreted languages aren't always slow, particularly if you take a bit of care to write the few intensive parts in a compiled language. Interpreted languages are nice because they tend to be easier for mediocre programmers to use and quicker for good programmers to use.

      What I don't understand is why you'd use a bastardized version of Java, which is just as difficult to code in as C and isn't the least bit portable.

  4. First! by sc0pie · · Score: 1, Informative

    They should have done the native implementation first.

    1. Re:First! by Anonymous Coward · · Score: 1, Informative

      They did. Then they changed it to html5. Now they are correcting their mistake.

  5. Is that why it sucks? by blahbooboo · · Score: 2

    Weird, their web browser app is what I use since their app sucks. Guess this is why?

  6. C'mon by tthomas48 · · Score: 5, Insightful

    They're having trouble returning a few hundred lines of text and 10 photos. Methinks HTML rendering speed is not even remotely their problem.

    1. Re:C'mon by prgrmr · · Score: 0

      No, they are having trouble getting a proprietary OS to play efficiently with an open standard, in order to communicate with their back-end servers to cooperate efficiently enough to get it all to scale across several million simultaneous users.

    2. Re:C'mon by alen · · Score: 2

      what is proprietary about iOS? it's freebsd for ARM with a GUI and support for proprietary API's. Safari is webkit just like chrome

    3. Re:C'mon by Anonymous Coward · · Score: 4, Informative

      This is about a browser, not a proprietary OS, and the fact that they have to communicate with back-end servers for several million users has nothing to do with HTML5 vs native. Facebook is having trouble, and it's most likely because the programmers assigned to the task weren't good enough.

      There are HTML5 apps that look really good, for example, Fidelity has a nice app that looks sharp and is performant.

      Now, personally, I'd rather write in native code than in HTML5, but that is a personal preference, not because HTML5 can't handle the task on iPhone.

    4. Re:C'mon by tthomas48 · · Score: 2

      I might buy that line of reasoning if I couldn't fire up the Facebook website on my phone and tablet and compare the speed with the app.

    5. Re:C'mon by DdJ · · Score: 1

      Actually, a bunch of the APIs aren't even proprietary. A bunch of it is just an evolution of an openly-developed standard, with two companies behind it, that was deployed on multiple operating systems and multiple hardware platforms, and that has an open source implementation today.

      http://en.wikipedia.org/wiki/OpenStep

      http://www.gnustep.org/

      (Not all, sure. But a bunch.)

    6. Re:C'mon by Anonymous Coward · · Score: 1

      No, they are having trouble getting a proprietary OS to play efficiently with an open standard, in order to communicate with their back-end servers to cooperate efficiently enough to get it all to scale across several million simultaneous users.

      they are having trouble with a company that doesn't care to increase browser rendering or performance, because it will kill their app business along with their walled garden.

    7. Re:C'mon by beelsebob · · Score: 1

      No, they're having problems getting a half baked open standard to support all the features of a proprietry OS, because as per usual, the WORA solution addresses the least common denominator, not the sum of all features.

    8. Re:C'mon by Anonymous Coward · · Score: 0

      I agreed with this post until I saw the word "performant", at which point it was decisioned that the you-associated post was brain non-functionant had necessitation for reversant logic on it before it was assumant into my mentation.

    9. Re:C'mon by zarlino · · Score: 1

      Mod parent funny

      --
      Check out my cross-platform apps
    10. Re:C'mon by BZ · · Score: 1

      Mobile Safari uses a closed-source fork of WebKit which implements certain features that Apple certainly considers "proprietary" (as in, they are unwilling to even submit them to the W3C for standardization, much less disclose how they implement them). See the transcript from a CSS working group meeting at http://lists.w3.org/Archives/Public/www-style/2012Feb/0313.html and search for comments from "smfr", who's the Apple representative.

      But yes, nothing "proprietary" about iOS.

  7. Editing by Anonymous Coward · · Score: 0

    Real editing would allows me to take Slashdot seriously. Slashdot wonks suck at their job.

    1. Re:Editing by xtal · · Score: 1

      New here?

      --
      ..don't panic
    2. Re:Editing by Anonymous Coward · · Score: 0

      New to Slashdot? Hahahahaha. Good joke.

      Now, why people act like they're new here and make comments like the OP... now, that's a damn good question...

  8. Good start by MrEricSir · · Score: 4, Insightful

    That's good, but I don't think it's fair to blame the poor quality of Facebook's app entirely on HTML5. For example, the app will occasionally chew through hundreds of megs of space, crash randomly, or even navigate to the wrong page when you click a link. Pretty glaring bugs that even the greenest QA testers would have noticed.

    At some point you have to blame management for not spending the time for proper testing and bug fixes. It *should* be a fairly straightforward app no matter how it was written.

    --
    There's no -1 for "I don't get it."
    1. Re:Good start by roc97007 · · Score: 1, Insightful

      That's good, but I don't think it's fair to blame the poor quality of Facebook's app entirely on HTML5. For example, the app will occasionally chew through hundreds of megs of space, crash randomly, or even navigate to the wrong page when you click a link. Pretty glaring bugs that even the greenest QA testers would have noticed.

      At some point you have to blame management for not spending the time for proper testing and bug fixes. It *should* be a fairly straightforward app no matter how it was written.

      And (this is the point, really) not just on IOS! Blaming the problems on html 5 and changing to old crufty Objective C sounds like a rationalization. An excuse used by executives to board members who don't know any better.

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    2. Re:Good start by homb · · Score: 2

      The problem is that the Facebook engineers went too far.
      In their hubris (not necessarily generally bad) they thought that they could literally create a very deep interface between their html code and the underlying native APIs. Essentially abstracting the underlying native APIs with a code interpreter that would allow their servers to send the same html to any device, and some additional stuff for those that had other features.
      As usual, they started simple and everything worked, but then over a few months they added more features and the stuff kept growing in complexity and ultimately ate crap. And debugging some kind of virtual machine on a smartphone isn't the easiest thing.
      So they're finally figuring out that it ain't working, and going back to native development on top of their standard JSON (or whatever) server API.

    3. Re:Good start by Dog-Cow · · Score: 1

      Why would anyone use old crufty ObjC when there's a nice modern runtime and language to use instead?

      Oh, I get it... you're stuck in 1995. Hint: NextStep is history!

    4. Re:Good start by beelsebob · · Score: 2

      Because objc *has* a nice modern runtime, and is a nice modern language ;)

    5. Re:Good start by Anonymous Coward · · Score: 0

      I'll tell you the problem with the scientific power you're using here: it didn't require any discipline to attain it. You read what others had done, and you took the next step. You didn't earn the knowledge for yourselves, so you don't take any responsibility for it. You stood on the shoulders of geniuses to accomplish something as fast as you could, and before you even knew what you had, you, you've patented it, and packaged it, you've slapped it on a plastic lunchbox, and now you're selling it.

    6. Re:Good start by Anonymous Coward · · Score: 0

      the app will frequently chew through hundreds of megs of space, crash, and navigate to the wrong page when you click a link

      There, fixed that for you.

  9. Ask any game developer by perpenso · · Score: 1, Insightful

    Re:Ask any grey beard. Native code is _always_ better.

    Ask any game developer, well those working on anything beyond the simple casual game segment.

    1. Re:Ask any game developer by Anonymous Coward · · Score: 1

      As a user, I much prefer an app written on the native platform, be it Objective C on iOS, or Java on Android.

      The interesting thing is that most apps I encounter on the iPhone tend to be native code, while on Android, they are merely front-ends for a mobile browser website.

    2. Re:Ask any game developer by windcask · · Score: 0

      Ask any Web Developer, trying to write JavaScript without JQuery.

      Ask any Mobile Developer, simultaneously writing for iOS and Android.

    3. Re:Ask any game developer by Anonymous Coward · · Score: 0

      I work on a complex, 3D, multi-threaded game engine with complex shaders and AI, and I agree that native code is far superior.

      Native code can be highly portable if written with competence. The only non-portable parts of the engine I work on are a few lines of startup code related to the fact that Windows makes modern OpenGL harder to use than most other platforms do. Otherwise, it's native C++, and highly portable.

    4. Re:Ask any game developer by narcc · · Score: 0

      JQuery is awful. Really awful.

      JavaScript is painless if you know what to avoid, and interacting with the DOM is ridiculously simple. It takes less time to learn how to use JS and work with the DOM that it does to learn how to use the pile of crap that is JQuery!

      Sure, years ago it was a little handy for extremely lazy people dealing with inconsistencies across browsers, but that hasn't been a major problem for a while now. Even then, it was saner just to find a cross-browser solution to whatever problem you were having with IE than to include a gigantic library.

      How many times have you seen JQuery included when all the developer needed was a single function, or to perform some task that is ridiculously simple just because all they knew how to use was that absurd library?

      JQuery adds both bloat and complexity while simplifying virtually no task. That monstrosity needs to die, and die quickly.

      Just learn how to use JS, it's not difficult. Hell, it's easier than learning how to use JQuery!

    5. Re:Ask any game developer by Sark666 · · Score: 1

      It doesn't happen as often, but back in the day id coded games cross-platform, and certainly beyond casual games.

      And valve brought over their games to MAC (and they didn't use opengl on windows so they had to port that to opengl) and now they are releasing their games on linux.

      So I would think a game dodges a lot of the issues of apps (widgets, ui layout etc) as a game is almost 'sandboxed' in it's own environment.

    6. Re:Ask any game developer by Cimexus · · Score: 2

      Yeah that's true. But the iOS Facebook app is an exception, it's really just a frontend for an HTML5 site and it's super-buggy, slow and annoying. So I'm glad they are rewriting it.

    7. Re:Ask any game developer by vasqzr · · Score: 1

      It doesn't happen as often, but back in the day id coded games cross-platform, and certainly beyond casual games.

      Sort of. But really they're just chucking polygons to a graphics card, that's not too big of a deal. It took a while to get Doom and Quake on the Mac. Linux Doom came out pretty quickly but if I rememeber you couldn't even use the mouse, and when you could it sucked.

    8. Re:Ask any game developer by Anonymous Coward · · Score: 0

      JQuery adds both bloat and complexity while simplifying virtually no task. That monstrosity needs to die, and die quickly.

      You're an absolute retard. Go away.

  10. Makes no sense to me by benjfowler · · Score: 5, Insightful

    If it were purely about performance, then they could just use web services to grab the data they needed, style it on the client side and run it in an HTML control. How would drawing content using a native app help performance if the data requirements are the same -- rendering HTML isn't *THAT* slow on iOS, is it?

    And with a web app, they have far more control over QA and the release process, and can potentially turn around minor updates much faster than if they had to jump through the App Store release process.

    OTOH, they think they have a problem, then good for them. The current client has been buggy for me for quite a while, with navigation buttons sending me to random parts of the application -- they clearly have QA issues that aren't going to be helped (and likely will be made worse) by an app rewrite.

    1. Re:Makes no sense to me by Bogtha · · Score: 1

      rendering HTML isn't *THAT* slow on iOS, is it?

      It depends on exactly what it is you are doing, but generally speaking, native is usually noticeably faster. Even when rendering local content with a web view, you can usually see redraws and flickering where there wouldn't be any if you used native controls. You have to remember that these days, rendering a web page is actually a huge task, and this is a mobile platform, not a desktop PC. Mobile computing has come a long way in the past five years, but it's still very limited and the web is rushing along faster than ever.

      --
      Bogtha Bogtha Bogtha
    2. Re:Makes no sense to me by Anonymous Coward · · Score: 0

      Bull.

      Grab your iphone and visit this page:

      http://jquerymobile.com/demos/1.1.0/

      It is straightforward and simple to write an html page that has none of the issues you are implying. You should remember that your phone is nearly as powerful as your desktop was only a few years ago.

      The problems in the facebook app have very little to do with the programming platform used to write it. Rather they have to do with releasing rather obviously untested code and code that doesn't appear to follow with the existing conventions of the rest of the app.

    3. Re:Makes no sense to me by Vellmont · · Score: 1

      I agree, and your first thought was exactly mine.

      My guess is the team who wrote the iOS app either had to deal with a lot of hard to implement features, and had to rely on inefficient slow javascript that ran really fast on modern PCs. but poorly on memory and processor limited phones, then didn't have the time and resources to re-write it and make it fast. Or they were just a shitty team. Impossible to say without an insider, but I absolutely agree there's no reason the client side can't be fast with just HTML and javascript.

      The upper management hears about how shitty and slow the app is, and says "we need to make this faster RIGHT NOW". So someone else in the company sells them on making a native app, which everyone agrees will fix the slowness problem. They don't really care about the maintainability of the thing, since everyone is freaking out about Mobile and the lack of FB presence on mobile (this was one of the big sticking points in the IPO). So they just throw money at it, and probably just outsource the whole thing at the cost of several million dollars to a company who makes iOS apps.

      --
      AccountKiller
    4. Re:Makes no sense to me by Bogtha · · Score: 1

      Grab your iphone and visit this page:

      http://jquerymobile.com/demos/1.1.0/

      Yeah, I visited that page. First thing I noticed was that the scrolling was all wrong. Then I tapped a menu item, the item was highlighted for about a second with no user-visible feedback beyond the selection itself, then the entire screen went white and the new content faded in. I hit the back button, the screen went white again, this time the screen didn't fade in, there was a visible redraw. I went back to the second page, tried the home menu button. Same problem, except this time, it was made worse by the menu bar popping down and then back up again. I tried the search functionality, a loading animation appeared, then there were two visible redraws. I hit the back button, an inexplicable white border appeared around the search page, then again the usual problems.

      Now realise that I did this in Mobile Safari, which has better performance than in-app web views of the kind the Facebook application uses.

      That kind of approach is caught in that horrible uncanny valley where it's trying not to be a website, but it can't do as well as native. Don't get me wrong, it's a good attempt, but it's simply not as good as a native approach. If you've used any native applications at all, you'll know that they do a whole lot better than this sluggish, flickery stuff.

      You should remember that your phone is nearly as powerful as your desktop was only a few years ago.

      And it needs to do a whole lot more than my desktop had to do a "few" (let's be honest, it's more than just a few) years ago. The web didn't stand still while mobile computing caught up.

      --
      Bogtha Bogtha Bogtha
  11. Orkut by Anonymous Coward · · Score: 0, Troll

    Fuck Facebook.

    1. Re:Orkut by DemonGenius · · Score: 0

      Nice, I'm gonna use this one, although most likely in a different context. Thanks for the awesome comeback!

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

      Good, have fun with her... meanwhile I enjoy your sister, and remember: Fuck Facebook.

    3. Re:Orkut by Anonymous Coward · · Score: 0

      Trust me ... she knows...

  12. nails by Anonymous Coward · · Score: 0

    This will be the first nail in the FB coffin.

  13. WODE . . . Write Once . . . by PolygamousRanchKid+ · · Score: 4, Funny

    Debug Everywhere . . .

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    1. Re:WODE . . . Write Once . . . by Anonymous Coward · · Score: 0

      The facebook app is more like WOFAI

      write once, forget about it

  14. Why does FB care about write-once run-anywhere? by Jake73 · · Score: 4, Insightful

    They are a multi-billion dollar company dealing with an app running on one of (if not the) most relevant and widely-used smartphones in the market. They should dedicate a team specifically for the iPhone. And if Apple changes the API every week, they would be wise to rewrite the app every week just to maintain that market.

    I don't care for Facebook and have my issues with Apple, but this is just a business decision on ROI.

    1. Re:Why does FB care about write-once run-anywhere? by Anonymous Coward · · Score: 0

      It is a business decision. But not on ROI. Facebook is getting more chummy with Apple and Microsoft to fight Google.

  15. Does it need to run native? by Anonymous Coward · · Score: 1

    What on earth is their app needing to do that native performance is required?? No thanks, i'll just visit the site.

  16. what what what? by roc97007 · · Score: 1, Insightful

    But... isn't html 5 the latest and coolest thing, and Objective-C some really old thing that Apple inherited from medieval times?

    And and... hang on... wasn't the coolness of html 5 the excuse for Apple not supporting some old and crufty thing called Flash?

    --
    Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    1. Re:what what what? by Dynedain · · Score: 2, Insightful

      This is just Facebook trying to blame their shoddy implementation on someone else.

      None of the bugs and issues reported by users are HTML5 caused problems.

      --
      I'm out of my mind right now, but feel free to leave a message.....
    2. Re:what what what? by roc97007 · · Score: 2

      This is just Facebook trying to blame their shoddy implementation on someone else.

      None of the bugs and issues reported by users are HTML5 caused problems.

      (You are absolutely correct. I was being ironic.)

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    3. Re:what what what? by jbolden · · Score: 1

      The coolness of HTML5 video (h.264), was one of the many reasons. And that works great on the iPhone.

    4. Re:what what what? by Vellmont · · Score: 2

      FB can afford to piss away money on a proprietary app now that they're a multi-billion dollar company. The vast majority of companies can't. I just don't see a huge resurgence of native apps replacing web functionality. Very few companies have the resources to develop for multiple platforms like that, and you really can't afford to just ignore android, or whatever else comes out into the mobile world in 5 years.

      --
      AccountKiller
    5. Re:what what what? by JackAxe · · Score: 1

      Under iOS, HTML5 video is really just Quicktime -- it's one of the reasons Apple was so gung-ho about it, as it allowed them to bypass all 3rd party plug-ins.

      HTML5 video when served up with JavaScript controls though, can be a pretty poor experience, at least on my Mac.

    6. Re:what what what? by Anonymous Coward · · Score: 0

      You mean sarcastic.

    7. Re:what what what? by jbolden · · Score: 1

      Agree on quicktime though the iPhone has parts of Quicktime actually working in custom hardware.

      As far as bypassing that hardware, yep, then video sucks. The iPhone creates the illusion of more power than it has by careful design choice.

  17. Worse problems than HTML5 by cbybear · · Score: 1

    The UIWebView on the iPhone is plenty snappy enough.

    I venture to say their network communications layer is poorly implemented. The app is a memory pig. The app is a battery pig. It is 10.5 MB for what? A portal to browse the FB website. Seems way over-engineered to be that big and have a little functionality as it does.

    1. Re:Worse problems than HTML5 by dgatwood · · Score: 1

      Sounds like they're making the right decision, then. By moving to native code instead of doing most of their communication using XMLHttpRequest (presumably), they'll be in control over their caching behavior, which could make them better able to avoid being a memory pig. Also by using native code, they won't be running interpreted or JIT-compiled code, which means battery life should improve noticeably as well.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    2. Re:Worse problems than HTML5 by cbybear · · Score: 1

      The thing I wonder about though, is the app size. Now that could be a bunch of artwork not being used, but the iPhone app I wrote (Phresheez, a tracking app) is a UIWebView with a few other view controllers and views, is around 750K in size, with the required retina artwork (of which there isn't a lot). So why should the FB be so large if not for overall sloppy design and implementation? At any rate, I think the whole thing smacks of publicity scrounging to let people know the iPhone experience "won't suck much longer". The excuses for the slowness are meager and not even really relevant to the discussion. Does it matter why it is slow, just that it is and they should fix it.

      You can be in control of your caching behavior on iOS. There are delegate methods that let you hook into the HTTP process for doing a variety of interesting thing, including managing your own client-side cache.

  18. Wasn't there some guy behind the app originally? by swb · · Score: 1

    ....and he departed FB or said he was done with iPhone development or some other small-scale hubris?

    Part of me thinks that FB doesn't really *care* if the iOS app works, they just want to know what platforms you use FB on and if they see regular use from an iDevice, they know that you fit in a specific demographic bucket of "iPhone owner".

  19. WORA - Fortran by seyfarth · · Score: 2

    Write once, run anywhere? Didn't they say that about Fortran? Write it all in Fortran and get off my lawn.

    --
    Ray Seyfarth, ray.seyfarth@gmail.com, http://rayseyfarth.blogspot.com
    1. Re:WORA - Fortran by Old97 · · Score: 1

      Oh you kids! I bet you are talking about some fancy modern FORTRAN like FORTRAN 77 or later. When I was a young coding buckaroo all we had was FORTRAN 66. Not that was definitely not portable. It wasn't even complete. Every vendor had to complete the language with their own extensions in order to do any thing with memory or I/O. You had it easy.

      --
      Very often, people confuse simple with simplistic. The nuance is lost on most. - Clement Mok
    2. Re:WORA - Fortran by RogerWilco · · Score: 1

      IMPLICIT NONE

      It's the only FORTRAN I really know, as it lets the compiler figure out what's wrong with the program I'm having trouble with.

      --
      RogerWilco the Adventurous Janitor
  20. the enemy of my enemy is my friend by alen · · Score: 1

    Facebook is google's enemy
    they are frenemies with Apple

    why support HTML5 which also supports your enemy when you could make your frenemie's platform "better" with a native app and hurt your enemy

  21. Show Apple the Money! by Anonymous Coward · · Score: 0

    Will Facebook have to pay Apple if people use the new Facebook App Store?

  22. Yeah but... by Anonymous Coward · · Score: 0

    ...for those of us who choose to accept ad hominem fallacies, isn't switching to ObjectiveC a bad idea just because Facebook programmers think it's a bad idea?

    I kid! I kid! C'mon, I admitted that it's a fallacious argument!

    1. Re:Yeah but... by Anonymous Coward · · Score: 0

      " I admitted that it's a fallacious argument!"

      No, you admitted you don't actually know what the fuck an ad hominem fallacy IS, and that you like to make assertions about things that you have no useful knowledge of.

  23. moldy old C/C++/Objective C live on by Anonymous Coward · · Score: 0

    ...on the desktop and handset.

    Many performance issues with Ruby or PHP can be dealt with by adding more or bigger servers, but you can't throw more hardware into the consumer's handset (s/he can, but you can't).

    1. Re:moldy old C/C++/Objective C live on by TheSkepticalOptimist · · Score: 1

      They are not even talking about PHP or Ruby , this is app development using HTML 5 which can live on as a semi-native app on iOS which has nothing to do with server/network performance. BTW that moldy old C/C++ code is the reason why Ruby and PHP works in the first place.

      --
      I haven't thought of anything clever to put here, but then again most of you haven't either.
    2. Re:moldy old C/C++/Objective C live on by Anonymous Coward · · Score: 0

      You missed the point of my post - I agree with your position.

  24. Android version by gauauu · · Score: 4, Informative

    Does the Android version use HTML5 as well? Because it is beyond horrible. I can't figure out why the app would actually be SLOWER and harder to deal with than viewing their site on a browser, but somehow they have managed it.

    1. Re:Android version by geoffrobinson · · Score: 2

      My guess is that the problem is on Facebook's end and Michael Stonebreaker was on to something when he critiqued Facebook's database architecture: http://gigaom.com/cloud/facebook-trapped-in-mysql-fate-worse-than-death/

      So to compensate for some of those issues, they have to go to a more responsive UI.

      --
      Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
    2. Re:Android version by NormalVisual · · Score: 2

      An unresponsive UI isn't behind stuff like the app's apparent inability to follow outside HTML links without throwing errors, as happens all the time on the Android version for me. It really is one of the poorest excuses for an app that I've ever used.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    3. Re:Android version by ArsonSmith · · Score: 1

      The only reason i have the facebook app installed is it's integration to the share button in gallery/photos. If I'm going to browse the site I use the browser.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    4. Re:Android version by Anonymous Coward · · Score: 0

      Seriously, it is awful, basically unusable on my old Droid. I just went to an iPhone, and I swear half the reason was so that my facebook app would work right.

    5. Re:Android version by Drathos · · Score: 1

      If you just want to share to Facebook from the gallery, you can use a third party app like FriendCaster instead of the Facebook app.

      --
      End of line..
    6. Re:Android version by Zebedeu · · Score: 1

      Yes.
      It's quite well hidden, but there are a few details give it away.

      It actually explains a but the slugishness, and crappy user experience of the app as a whole.
      It's especially bad when compared to the Google+ app.
      -- Well, the old one. In the new version they put in so many flashy animations, it became ubearable to scroll. I thought the google guys were all on Galaxy Nexus (like me). How come nobody noticed this?
      Perhaps it is usable on Jelly Bean. I guess I'll be finding out in two weeks.

  25. No. by Anonymous Coward · · Score: 2, Insightful

    UI Rendering speed is exactly the same for native code and html elements. The reason is, guess what browsers do to show you lists, buttons, drop down boxes, etc?? They use *NATIVE* UI elements. It is plainly obvious you understand nothing on this topic.

    The issue is UI *latency*. HTML based UI cause increased round trips from mobile devices to their data-centers creates a terrible experience for users when compared to native apps. Mobile devices already are worse off when it comes to network latency, and this exaggerates the problem.

    HTML + CSS + JS is the worst "modern" paradigm to base any kind of UI on. Don't get me wrong.. its also a horrible data/text layout language too. It can't even do what layout programs used for producing magazines 50 years ago did. Not to mention the standards themselves are so horrible that nobody in the entire world has ever in the history of standardization been able to produce a reference implementation. And judging by the several hundred KiB sizes of webpages these days, it would be more efficient if you just hosted a damn PDF file, at-least it would look the same everywhere.

    1. Re:No. by Anonymous Coward · · Score: 3, Insightful

      at-least it would look the same everywhere.

      And here we have the problem. Web pages are not supposed to look the same everywhere.
      Yet PHBs trying to achieve that are what cause literally every problem in Web standardization.

      Just serve me the information, and I'll render it how I like.
      Quit obsessing about controlling my user agent!

    2. Re:No. by Anonymous Coward · · Score: 1

      Hear hear. Why is it that decades after the web has become commonplace, websites still more often than not have white bars left and right, or a horizontal scrollbar, or a tiny font that's hard to read?
      I think CSS gives web-designers too much freedom. There are a billion attributes, most of which make a website worse. The width of the page should be left alone, and the same applies to the font and size and colours. Even if someone out there has 30 point green on black courier as his default settings, it's for a reason and you shouldn't mess with it.

    3. Re:No. by dgatwood · · Score: 2

      UI Rendering speed is exactly the same for native code and html elements. The reason is, guess what browsers do to show you lists, buttons, drop down boxes, etc?? They use *NATIVE* UI elements.

      Although that is pedantically true if you did all your own UI drawing using programmatic calls and did all your own layout work using something as complicated as the DOM and CSS, in practice, you're completely and totally wrong. The UI layout engine used for a native app is orders of magnitude faster. And this is why UI latency is so much worse for web-based UIs.

      HTML based UI cause increased round trips from mobile devices to their data-centers creates a terrible experience for users when compared to native apps.

      No, not really. A native UI has to make the exact same requests to the server to get the exact same data. Bear in mind that Facebook's UI is not served by some PHP script returning a page full of data. The server provides a simple HTML page once when you open the app or browser, and everything else is done dynamically by making JSON requests for the raw data, followed by handing that off to JavaScript code that mutates the DOM. Thus, to the extent that the new version they're designing has better latency, the improvement is entirely caused by differences between the insane complexity of the DOM and the relative simplicity of a springs-and-struts layout model (or whatever).

      HTML + CSS + JS is the worst "modern" paradigm to base any kind of UI on.

      No disagreement there. Even with flex boxes, it is just barely starting to approach the level of flexibility that native UI controls have supported for a good two decades. A few weeks ago, it took me three days of CSS monkeying to design a moderately complex UI pane in CSS and HTML that would have taken two or three minutes in Interface Builder. Even simple things like "make this box the same height as that box, make them start X pixels from the top of the window and Y pixels from the bottom of the window, with the contents scrollable, and make the left box contain a series of tabs for the right box, with no right border for the selected tab, and if the contents don't fill the entire left box, fill the remaining area with a given color" turn out to be a royal pain in the backside with CSS because you make one change to fix one problem and it breaks something else.

      HTML/CSS isn't modern at all. It's a pile of hacks on top of a pile of hacks on top of a pile of hacks. It is quite possibly the absolute worst way to design a user interface that any sane person could come up with. But it is the only portable choice when we're designing stuff on the web, and that's the reality you have to live with. That said, if you have to write a native app anyway to gain access to hardware features, you'd be crazy to then say, "I'm going to make my life miserable by designing 99% of the UI using HTML and CSS." :-)

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    4. Re:No. by RogerWilco · · Score: 1

      It's the graphics artists and PR departments that are used to handling printed materials that I think are really to blame here. There are a lot of webpages out there that try to look like a page in a magazine. And usually at the cost of usability and ease of navigation.

      --
      RogerWilco the Adventurous Janitor
    5. Re:No. by UnknownSoldier · · Score: 1

      > UI Rendering speed is exactly the same for native code and html elements.

      That is not entirely true (but mostly correct.)

      Native apps have access to DirectX / OpenGL and you can optimize UI rendering by caching textures and alignment. See this blog on EVE Online about how they changed the UI rendering / compositing back-end
      http://community.eveonline.com/devblog.asp?a=blog&bid=916

  26. They need to share a language by tepples · · Score: 2

    In reality, your logic and communication bits should be abstracted anyway - isn't that the hallmark of good programming practice?

    I agree in principle. However, sharing components among versions of an application for different platforms works only if all the platforms can run programs written in the same language, and in practice, there are a lot of platform pairs that lack a shared language. For example, how do you share a component between an application for Windows Phone 7, which runs only C# and other languages that compile to verifiably type-safe CIL and do not use the DLR, and the corresponding component for iOS, which runs Objective-C++? Xamarin's answer is to let the Windows Phone 7 port dictate the choice of implementation language for all platforms. This way, components shared with an application for WP7 run in Xamarin's CLR reimplementation for non-WP7 platforms, which Facebook can afford but many individual developers cannot.

    1. Re:They need to share a language by PerfectionLost · · Score: 2

      It's called web services, that return a standard format like JSON, or XML. That's how we do it at my work. Currently I'm working on a project where I serialize perl hashes and arrays into XML, and pass them via a REST based web service to a C# system that serializes it into a DataTable for display in some .NET controls. C# can deserialize the DataTables back into XML, post it to the REST based web service to where it gets re-serialized into hashes and arrays for various CRUD type actions.

  27. Android Native Development Kit by perpenso · · Score: 3, Informative

    Ask any Mobile Developer, simultaneously writing for iOS and Android.

    The need for the Android NDK (Native Development Kit) answered that question. Java-like approaches are fine for certain classes of apps but for many classes native is better.

    1. Re:Android Native Development Kit by AuMatar · · Score: 2

      And allows code sharing. The standard way to write a cross-platform app is to write the main logic in C++ or C (which is pretty portable), then to write the UI in whatever the platform is forcing you to. Pretty much all cross platform phone apps are C++ backends with a thin GUI layer in whatever that platform is pushing.

      --
      I still have more fans than freaks. WTF is wrong with you people?
  28. As long as they... by Grizzley9 · · Score: 3, Interesting

    fix what's broken and allow the same functionality as the website. I hate it when apps like Pandora, FB, or even G+ or any others that have an app and a website where the website gives you many more options. They only give you the basic experience on the mobile app and am still tied to a computer for doing anything more than basic.

    1. Re:As long as they... by ShaunC · · Score: 1

      Yes, a thousand times yes! But in my experience it's only the iOS version that's so crippled.

      I've had an iPod Touch (well, 2 different ones) and the Facebook app going on 3 years now, and you still can't "share" posts / links / photos, half the time you can't "like" individual comments in a thread, etc. The Android version has no problem performing these functions. I don't understand what's holding back development and feature implementation on the iOS version, considering that the platform is so popular.

      --
      Thanks to the War on Drugs, it's easier to buy meth than it is to buy cold medicine!
    2. Re:As long as they... by Anonymous Coward · · Score: 0

      Ummm... you do realize most phones are not near as powerful (read: have resources) as most computers. For a phone app OR the phone browser to have the same functionality is an aggressive requirement that I don't think is currently possible. I have one of the first 4G phones released (1 year old) and it is already thirsting for more system RAM. The newer quad core phones (Galaxy 3) have sufficient processor and possible RAM (Galaxy 3 has most I've heard of 2G).

      So, most phones in existence now can NOT do what you say even if the software was there.

  29. But will it help? by FellowConspirator · · Score: 5, Interesting

    It seems to me that the Facebook app's issues are not so much about HTML5 performance, but rather the way that they handle transactions with their servers. The network performance of the app is atrocious. Look at the traffic of the iOS app and compare it to the Facebook mobile website. How many hundreds of XMLHTTPRequests do you think it should take to render a page?

    There's nothing inherently wrong with the HTML5, it's their ludicrous network activity that kills the app.

  30. Nothing wrong with HTML by TheSkepticalOptimist · · Score: 1

    Its just that using HTML to build "native" apps for iOS has been proven to be poor over and over again.

    Apple just does not want ANY competitive technology to shine on iOS. They dropped Flash not due to "performance and battery" issues, but simply put that Flash would eat away at Apple's walled garden. Building HTML apps that can be easily ported to other platforms wasn't going to be something that worked better then native iOS apps built for the walled garden.

    It comes down to whether you want to be cheap and dirty or invest some time and effort into taking advantage of the native platform. There is no reason for Facebook to be cheap and dirty, they can hire a corporation worth of developers for each platform if they wanted to.

    But if you are staring out and want to target all platforms but do not have the technical know-how or man-power to be able to write native apps for each platform, then use HTML, just don't be surprised when it is only an "acceptable" solution.

    --
    I haven't thought of anything clever to put here, but then again most of you haven't either.
    1. Re:Nothing wrong with HTML by 93+Escort+Wagon · · Score: 2

      They dropped Flash not due to "performance and battery" issues, but simply put that Flash would eat away at Apple's walled garden.

      Having experienced Flash on Android, I think you're mistaken. And the fact that Adobe basically gave up on making it useable on mobile devices supports Apple's stated position.

      --
      #DeleteChrome
  31. Their product is inherently crappy. by PeanutButterBreath · · Score: 1

    Sure, many find it useful anyway, but theirs is not a technological problem.

  32. Mobile Devices by TheNinjaroach · · Score: 0

    Mobile devices just don't have the CPU power and battery life to do HTML5 anywhere close to the efficiency of native code. WebOS made this point painfully clear many years ago.

    --
    I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
  33. WP7 only runs CIL by tepples · · Score: 1

    The standard way to write a cross-platform app is to write the main logic in C++ or C (which is pretty portable), then to write the UI in whatever the platform is forcing you to.

    I agree, so long as an application is limited to Windows, Mac OS X, X11/Linux, Android, and iOS. So what's the best practice to introduce Windows Phone 7 into that mix? It only runs C# and other type-safe managed languages that don't use the DLR. C++/CLI doesn't count because any nontrivial C++/CLI code that will compile with /clr:safe is a syntax error in a compiler for Standard C++.

    1. Re:WP7 only runs CIL by Anonymous Coward · · Score: 0

      So what's the best practice to introduce Windows Phone 7 into that mix?

      "Don't do that."

    2. Re:WP7 only runs CIL by ren-n-stimpy · · Score: 1

      that's a short-lived limitation. WinPhone8 (Apollo) supports so-called "hybrid apps" atop WinRT, combining C# components and C++ components. this is exactly how you want it.

      --
      The reason computer chips are so small is computers don't eat much.
    3. Re:WP7 only runs CIL by AuMatar · · Score: 1

      Simple- don't bother. Negligible userbase, and it's making it difficult to port to? Not worth the investment.

      Also, that list is incomplete- it also works for every custom embedded OS out there, which can make a real difference if you can talk an OEM into buying your software. Basically the only OSes it won't work for is Chrome (dead) and Windows Phone 7 (insignificant, and likely to remain so).

      --
      I still have more fans than freaks. WTF is wrong with you people?
    4. Re:WP7 only runs CIL by Anonymous Coward · · Score: 0

      IIRC, WP8 allows native (C++) code development.

    5. Re:WP7 only runs CIL by TrancePhreak · · Score: 1

      MonoTouch / MonoAndroid and possibly MonoGame on top.

      --

      -]Phreak Out[-
    6. Re:WP7 only runs CIL by tepples · · Score: 1

      Facebook can afford MonoTouch and MonoAndroid. I imagine that a lot of individual developers cannot on top of what they already have to pay to buy a Mac as a second computer ($649) and get onto the App Store ($396 over the four-year service life of a device).

    7. Re:WP7 only runs CIL by Kalriath · · Score: 1

      Windows Phone 8 allows sandboxed native code.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    8. Re:WP7 only runs CIL by ceoyoyo · · Score: 1

      Take a pass on Windows Phone until Microsoft supports a standard language?

    9. Re:WP7 only runs CIL by TrancePhreak · · Score: 1

      And yet there's a surprising number of them that buy a Unity3D license ($1500) w/ iPhone support ($400 / $1500).

      I would love to give MonoAndroid a shot, but the price is too high in my opinion (matching your beliefs). Making that money back is also a huge risk. Spreading out the cost over multiple projects may sound good at first, but spending time to support them all can be a big problem.

      --

      -]Phreak Out[-
  34. GL on PS3/360/WP7 by tepples · · Score: 1

    The only non-portable parts of the engine I work on are a few lines of startup code related to the fact that Windows makes modern OpenGL harder to use than most other platforms do.

    Do the game consoles and Windows Phone 7 support OpenGL? I thought Xbox 360 and Windows Phone 7 used DirectX, and PS3 used something way off in left field because the OpenGL ES implementation that ships with the devkit isn't worth an expletive. Or is your game PC-only?

    1. Re:GL on PS3/360/WP7 by Anonymous Coward · · Score: 0

      PC (Windows/OSX/Linux), and Android. No DX supported yet, but we have the graphics API abstracted well enough that DX targets shouldn't be too hard. It's a matter of implementing our abstraction layer on top of DX, and it was designed to allow that.

      WP7 isn't on the radar for us.

    2. Re:GL on PS3/360/WP7 by Kalriath · · Score: 1

      Xbox 360 and Windows Phone 7 used XNA, which is not quite DirectX. Windows Phone 8 will allow DirectX directly. I think I saw OpenGL mentioned as well.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    3. Re:GL on PS3/360/WP7 by UnknownSoldier · · Score: 1

      > and PS3 used something way off in left field because the OpenGL ES implementation that ships with the devkit isn't worth an expletive.

      The majority of games used the GCM library, almost none use PSGL.

  35. Microphone and camera from HTML5 by tepples · · Score: 1

    Can HTML5 applications for PlayBook or BB10 use a device's microphone or camera? If so, what JavaScript API do they use?

    1. Re:Microphone and camera from HTML5 by Anonymous Coward · · Score: 0

      Can HTML5 applications for PlayBook or BB10 use a device's microphone or camera? If so, what JavaScript API do they use?

      That is exactly the case for an API such as PhoneGap.

  36. Re:Wasn't there some guy behind the app originally by Anonymous Coward · · Score: 0

    No, FB went public.

    Ignoring a major mobile platform, no , ignoring the mobile platform with the user base most likely to spend money, is not an option.

  37. Device features unreachable through Safari by tepples · · Score: 1

    what is proprietary about iOS?

    The cryptographic key for verifying what is allowed to run on one's own device.

    support for proprietary API's

    Some features of the device, such as the microphone and camera, can be reached only through these proprietary APIs, not through Safari.

  38. Re:Wasn't there some guy behind the app originally by alen · · Score: 1

    yes, he used to work for Mozilla. explains everything

    he thought he was da sh1t and the app was always buggy

  39. iOS 6 FaceBook support by Dixie_Flatline · · Score: 4, Insightful

    Given that Apple is integrating FaceBook support into iOS 6 (I've got it on my phone right now, and the 'post' button works exactly as advertised), it seems to me that this is probably being done in no small part because Apple is doing a bunch of stuff in Obj-C anyway. I have no idea what the FB API stuff is like (or even if it's available to devs like me) but there's clearly *something* going on under the hood.

    So Apple does some of the heavy lifting, and the FB programmers just piggyback off of it. At that point, why not switch?

  40. The Thin GUI Line by Latent+Heat · · Score: 0
    What is this thin GUI layer you speak of?

    Yeah, yeah, separate the GUI code from the "business logic", but a huge fraction of any GUI app is the GUI. No matter how you slice and dice and refactor your code, a full 50% or more of your modules will have GUI calls in them.

    So what do you, create some kind of application-specific but platform-neutral set of GUI calls, and then you write drivers or plug-in modules for each target GUI OS? Instead of rolling your own, you use wxWindows? You program the front-end in Java and using Java Swing (yup, Matlab is a native-code app that does just that?)

    Or if you roll your own GUI library that only needs to support widgets specific to your app, yeah, yeah, you don't have to implement the kitchen sink. Or do you? You will need menus and buttons and radio buttons and drop lists and scrollable bitmap canvas plots and vector plots, and pretty soon you are mapping the whole GUI. Which is wx does and also Swing, and those were not trivial apps to develop.

    No, I refuse to buy the argument that the GUI logic can be modularized to some small corner of your app that you can rewrite for the different targets. The flavor of your target GUI with respect to the available options and configurations and features will color your entire app.

    1. Re:The Thin GUI Line by Anonymous Coward · · Score: 0

      You have obviously never programmed for iOS/Mac OS X/NeXTstep anytime between 1988 and now.

      It is common for the amount of GUI related code to approach zero. Use of highly reusable frameworks, the Model-View-Controller pattern, and GUI builders eliminates a lot of code and produces a more standard app in the process. This is even try for games that use their own look and feel.

    2. Re:The Thin GUI Line by AuMatar · · Score: 5, Insightful

      If 50% of your modules have GUI calls, you're developing your software wrong. MVC isn't just for webpages. If you have UI specific code in your business logic, you fail.

      If the GUI code is more than a tiny fraction of your overall code, you're working on absolutely trivial software. I can't say I've ever worked on a GUI app where the GUI itself was more than 5-10% of the code.

      Basically, there's two ways of writing cross-platform apps:

      1)Write your main business logic as a library. Then for each platform, write code that runs the UI and calls it as appropriate

      Pros: Can take advantage of all the features of the OS, and make a customized experience for it. Easy to fit in with design standards for the OS. Minimizes bugs due to differences in APIs and capabilities between platforms.

      Cons: May not be possible to write the buisness logic in this way, or may not be easy. May require ugliness in the business logic to do so. May be hard to maintain the line of abstraction between the two halves, depending on how the platform is implemented.

      2)Abstract away the UI and OS specific calls into a library, and implement them for each OS.

      Pros: Easy to do, with a little bit of discipline. It's always possible to do it this way, and *if* you can implement each API call so they act identically on all platforms then maintenance is a breeze and no ugliness in the business logic.

      Cons: Subtle differences between how platforms handle common APIs can cause bugs. Differences between how they handle less common APIs can cause major issues. Cannot take advantage of advanced OS specific features, may not be able to follow UI standards for each platform. You'll end up with features not working on some platforms if they don't provide a needed API.

      It's probably about a 50/50 split between the two paths (and I won't suggest a path, it really depends on your code and target platforms). But this is how it's done. And in either case, in fact in ALL well designed software the GUI is far separated from the business code.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    3. Re:The Thin GUI Line by Anonymous Coward · · Score: 0

      Yes, MVC is a good guideline to work on, as well as code reuse.

      However UI design is different for every platform. What works well under Android may not work under iOS, or Windows 8. Take the presentation of the app. On iOS, you have an icon and a badge. Android, the icon and/or a widget. Totally different mechanisms. On Android it is even worse. You either are forced to lock customers out, or code for every version of Android (1.0, 1.5, 1.6, 2.0, 2.1, 2.2, 2.3, 3.0, 4.0), but you have to be able to deal with a ton of screen resolutions, be it a tablet, phone with a 3" screen, phone with a 3.5" screen, phone with a 4" screen, half tablet with a 7" screen, and so on. Make one mistake, and people will be slamming your app in the reviews, perhaps flagging it as malicious, not to mention the chargebacks and refunds. iOS is a lot better because you have three devices to worry about, the iPad, the iPhone, and the iPod Touch, as opposed to 20+ models and various combinations with new stuff that will break your code coming out daily.

      The UI isn't just the only thing.

      Of course, it can be done to split the app's core versus the UI, but a lot of apps out there tend to be fairly lightweight, so the UI code is pretty much the app.

  41. Why when I was young . . . by Latent+Heat · · Score: 0

    We had to enter FORTRAN II code on punch cards, hunched over a hot keypunch machine. To see the scope of our DO loops or IF statements, we had to rifle the punch card decks until our fingers bled . . . and we liked it!

    1. Re:Why when I was young . . . by 93+Escort+Wagon · · Score: 0

      Ah yes, submitting boxes of cards to the operator and waiting for output - those were the days. I was happy those were being phased out as I was getting started.

      We had those new-fangled teletype-style terminals that also had punched paper tape reader/writers - what an advancement! Until you ripped the paper. I think I've still got a program spool or two from college laying around somewhere.

      --
      #DeleteChrome
    2. Re:Why when I was young . . . by Latent+Heat · · Score: 1

      "Ah yes, submitting boxes of cards to the operator and waiting for output - those were the days." I knew turnaround time for jobs was long, but it took days?

  42. Facebook App was Useless Anyway by TheSpoom · · Score: 1

    Now, I have an Android phone so if it's remarkably different on iOS I could be off base here, but from what I saw of the app, it was exactly the same as the mobile web interface except that it also had access to your GPS and potentially camera. Having an app like Facebook turn on GPS as soon as I logged in was enough for me to limit myself to accessing it through the browser. *tightens tinfoil cap*

    --
    It's better to vote for what you want and not get it than to vote for what you don't want and get it.
    - E. Debs
  43. This is why: by Anonymous Coward · · Score: 0

    Apple broke phonegap style HTML5 apps in the last version of iOS.

    It now clears any websql or localstorage every time you close the app. Persistent storage does not persist. There was a phonegap plugin that passes through to a native sql database, but now they're saying that's against the rules.

    See, the spec doesn't guarantee how long they have to persist the data. So they decided to interpret it as "when the WebView leaves memory, the data is deleted".

    Webapps pinned to the home screen will break in the same way. Running in Safari they will work - since it follows different rules. (Launching from a bookmark on homescreen launches an app with a WebUI widget in it - it doesn't launch mobile Safari).

    Apple forced this decision by being either a) incompetent or b) just plain coder-hating douchebags.

    This also broke the app I was working on. Fortunately, our business solution was "this only runs on Android". We're just sick of the effort, and since it's a biz type thing, this was an acceptable solution.

    Actually, the decision was compounded by the fact that Apples shitty mobile devices (til iPad 3) don't have cameras capable of auto-focus, which means it can't scan barcodes with zebra-xing, and we just didn't want to deal with the people wondering why their iPad 2 doesn't work, but this other guys cheap droid tablet does.

    Apple does something to break HTML5 based apps with each new release of iOS.

    Shitty cameras, shitty hardware, awful software.

    I can't wait to watch them slip back into obscurity. They really are setting the clock back about 10 years with their fucking nonsense.

  44. It was always a pipe dream by viperidaenz · · Score: 0

    Write Once Run Anywhere is a nice concept but it never works out. One big fault in the concept is the different platforms have different user interfaces, styling concepts, input devices, etc... So you end up writing half of it once and the other half you write it over and over again for each platform you want to support. This is coming from a Java developer too.

  45. A fan of Cocoa and Interface Builder may like this by Anonymous Coward · · Score: 1

    http://cappuccino.org/

    "Cappuccino is an open source framework that makes it easy to build desktop-caliber applications that run in a web browser."

    Learn More About Cappuccino & Objective-J http://cappuccino.org/learn/

  46. yay by buddyglass · · Score: 1

    Facebook's iPhone app is so crappy I started just using the mobile version of their website in Safari. It's more responsive, less prone to hanging during I/O, and lets me do everything the app did.

  47. Re:A fan of Cocoa and Interface Builder may like t by dgatwood · · Score: 1

    A web app UI framework that actually integrates with IB? Wow. I may have to play with that.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  48. Re:Javascript vs. Jquery by bobv-pillars-net · · Score: 2

    You should write (or recommend) a tutorial called "JavaScript for Jquery developers" which shows the standard cross-platform-compatible JavaScript equivalent to the major JQuery functions.

    --
    The Web is like Usenet, but
    the elephants are untrained.
  49. Re:Javascript vs. Jquery by narcc · · Score: 1

    Okay, what are the "major JQuery functions" according to you?

  50. When did Flash ever "shine" on ANY platform? by jamrock · · Score: 1

    Apple just does not want ANY competitive technology to shine on iOS. They dropped Flash not due to "performance and battery" issues, but simply put that Flash would eat away at Apple's walled garden.

    Really? Then why did Adobe themselves give up on a mobile version of Flash? Flash has severe performance, battery, and security issues, and Adobe had been unable to produce an acceptable mobile version after years of trying. As Jobs put it in his infamous "Thoughts on Flash" piece, Apple had been waiting for years for Adobe to produce a version with acceptable performance, and was no longer willing to wait after all their promises came to naught.

    And it's not about competition. It's about control. Apple makes no bones about being loath to rely on any critical technology they don't control themselves. Apple's memory is long, and they remember how many years it took Adobe to release an OS X-native version of Photoshop, one of the flagship applications for Macintosh, and as Jobs said, it was unacceptable for Apple to have to depend on the update schedule of a third party in order to add features to their own products. It's about control of the vertical stack in order to deliver an experience they deem acceptable, not competition. Locking out potential competitors isn't their major focus; it's just icing on the cake.

  51. This is exactly what Apple wanted. by tillerman35 · · Score: 4, Interesting

    Apple's formula for success under iOS:
    1. Control the hardware
    2. Control the software
    3. Make others do the work and because (1) and (2), you get to take a BIG cut of their business. No, not BIG... HUGE.

    Part of (2) is to not allow any development that might result in GOOD write-once/run-anywhere software. Backing HTML5 is a perfect example. The amount of effort required to produce a decent product is just plain insane. Even big companies like Facebook can't do it. Little companies don't even try. In the end, damn near everybody who tries to deploy an application that runs on an iOS device comes to the same sad realization: cough up the dough or go home.

    Products that actually worked, and worked well (e.g. Flash, Silverlight, etc.) were killed with feeble excuses like battery consumption and quality control. How the DoJ didn't launch an investigation into anti-competitive practices is a mystery to me. The "browser included in OS" investigation of Microsoft seems a pale shadow of the "you don't run software on iOS devices- despite the fact that their OWNERS want you to- unless you pay us a shiatload of money." /Bitter? You betcha.

    1. Re:This is exactly what Apple wanted. by Truedat · · Score: 1
      You make a fairly reasonable, if slightly paranoid, argument, but then you go and spoil it all by saying something stupid like:

      How the DoJ didn't launch an investigation into anti-competitive practices is a mystery to me. The "browser included in OS" investigation of Microsoft seems a pale shadow of the "you don't run software on iOS devices

      Repeat after me: "Microsoft were targeted because they had a monopoly in the OS market. Apple don't have a monopoly in any market and so the two aren't comparable". Note that I'm fairly sure of my ground on that one because almost every day I see testimony from armchair Android analysts that android is kicking ass against iOS.

  52. Re:Javascript vs. Jquery by bobv-pillars-net · · Score: 1

    The ones with their own documentation page on jquery.com.

    --
    The Web is like Usenet, but
    the elephants are untrained.
  53. Mobile Safari Performance by Anonymous Coward · · Score: 0

    I think a big part of the problem is Mobile Safari. If you look at any applications that integrate a web view on iOS, you'll notice great slowdowns when there is a lot of graphics in the page and scrolling. I see it on my iPhone all the time. (iPhone 4)

    Then consider that Apple hasn't done a serious Safari update on either desktop or mobile for quite some time. Safari on OS X is even slow.. compare it to Chrome or Firefox. It's pathetic. Apple needs to push a new build out to everyone ASAP and I'm not talking Mountain Lion.

  54. Re:Javascript vs. Jquery by narcc · · Score: 2

    Wow, that's lazy. So I guess you didn't have anything specifically in mind then?

    Let's start with the biggest one: selectors. Hey, that was the whole reason jquery was written, right? .querySelector and .querySelectorAll work in all major browsers and has had broad support for years.

    The most common case I see jquery abused is selecting elements by class name. Of course, most of the time it's used instead of a more appropriate solution, still, it's a popular use. .getElementsByClassName() has been around, again, for ages. For older versions of IE there is the ever popular "Ultimate GetElementsByClassName" function.

    Now, in place of these well-supported (yet surprisingly little-known) functions jquery gives you a bit of illegible code:

    Say you want all the elements with a particular tag contained inside another dom element.

    The javascript way, works cross-browser:

    var mystuff = document.getElementById("myform").getElementsByTagName("input");

    The jquery way, requires useless bloated library:

    var mystuff = $.makeArray($("#myid input")); // because $("myid input"); won't give you an array.

    The difference? One is obvious and readable. The other looks like Larry Wall's used TP and requires a bloated poorly-designed library

  55. UI and OS abstraction library by Latent+Heat · · Score: 1
    Let's talk about 2), abstract away the UI and OS specific calls into a library, and implement them for each OS. Yes, there are general purposes libraries for this: Swing, wxWindows, Tk, and Qt+, and maybe some other names I am less familiar with.

    Yes, a general purpose UI and OS abstraction framework is a non-trivial software development undertaking, and one starts out saying, "My app doesn't need the full feature set of Swing, so I will code a UI and OS abstraction library specific to my problem domain, and that won't be too complicated. Start adding features to your GUI and that sentiment starts to feel like Custer's initial assessment regarding a military engagement of Sitting Bull's fighters being no big undertaking.

    I am also saying that if your GUI is below 10 percent of your code, you are working in a problem domain where your GUI doesn't have a high feature count.

    I am also proposing method 3) Write your GUI in Swing (or wx, Tk, Qt, . . ., but don't reinvent the platform-independent abstraction of the GUI widget set) and keep your legacy "business logic" in native code. That is what Matlab, Maple, and Mathematica do.

    1. Re:UI and OS abstraction library by AuMatar · · Score: 4, Interesting

      Nope, I'm going to stick by my original statement. In 11 years of professional development, the majority of which had a GUI in some shape or form- 10% is the highest I've ever seen, the average is probably on the order of 3-5%. GUIs just aren't that hard to write and don't really do that much.

      Using a 3rd party library can work as well- if your platform supports the toolkit you want to use, and supports it well. Swing last I checked was a nightmare that never worked the same on any two platforms. I'm going to assume it's been fixed, as it's been years since I've used it, but trust me, it was shit. Tk looks like shit on all platforms, it's an ugly UI. It's good for a quick one off, but you'll never see it in professional software.

      Then there's the question of what OSes you target. If you ever want to target a proprietary hardware OS, all of those get thrown out. They won't work, and porting them would take more time than rewriting by orders of magnitude. Nor would an OEM selling your stuff ever want to bloat the ROM with a whole QT library. And don't forget, until about a year ago the phone market was dominated by proprietary OSes, until Android came.

      Then there are the smartphone OSes- Android, iOS. They don't support any of those. So once again, you're back to not using them.

      And in the end, that's why you don't use them- because they aren't truly universal. Because you can't count on them being available on the next port. And the tiny cost to encapsulate the small amount of functionality you actually need is well spent to have the flexibility to say yes when an opportunity to port to a device for a few million comes up.

      Now if you're only porting to Windows, Mac, and Linux you're probably good with one of those libraries. Which are all those 3 run on.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    2. Re:UI and OS abstraction library by Bryan+Ischo · · Score: 1

      In my experience, GUIs are the messiest and most difficult part of an application to get right. All that stuff that's just slinging bits around memory under the covers? That's the easy part. The part that faces the user and has to deal with thousands and thousands of possible user actions? Very hard to get right.

      You can go and read a Wikipedia article on just about any "complex" algorithm and understand and implement it in the nice safe vaccuum of non-user-facing code quite easily. But providing a consistent, coherent, complete, and bug-free user experience? That is freaking hard.

      Or do you think that there is some other reason that free operating systems like Linux are wonderful at everything except GUIs?

    3. Re:UI and OS abstraction library by AuMatar · · Score: 1

      Designing a GUI is hard to get right. The code to implement it tends to be trivial, and almost all handled by the OS.

      --
      I still have more fans than freaks. WTF is wrong with you people?
  56. Offline by tepples · · Score: 1

    It's called web services, that return a standard format like JSON, or XML.

    How well do they work with zero bars? Or must all offline logic be rewritten from scratch for each platform? That'd violate Don't Repeat Yourself.

    1. Re:Offline by PerfectionLost · · Score: 1

      My assumption is that you have software that is in a client/server architecture, which is often the case with collaboration software like facebook.

      If you are making an application that doesn't know about the rest of the world, you can either have your application cache it's static data--which is not that hard. Beyond that, your application can save your data for transit later when you have connection. For example, facebook does this currently when it fails to upload an image. The progress is saved, and the upload is completed at a later time.

      If you want facebook to be an application that does status updates of your imaginary friends I'm sure that'd not be that hard to make, as long as you wanted them to have a limited set of things they were doing.

  57. Logic to interact with cached data by tepples · · Score: 0

    If you are making an application that doesn't know about the rest of the world, you can either have your application cache it's static data--which is not that hard.

    But if platforms don't share a language, all the logic to interact with the cached data has to be rewritten (which is an error prone process) for each platform.

    If you want facebook to be an application that does status updates of your imaginary friends I'm sure that'd not be that hard to make, as long as you wanted them to have a limited set of things they were doing.

    Wait a minute: are you talking about Animal Crossing?

    1. Re:Logic to interact with cached data by PerfectionLost · · Score: 1

      Usually caching data is 1-2 lines of code in the programming languages I work with. Not sure about what you are referencing. If you had to manually program a cache in every programing language you would be right. But that is one of the problems that is typically solved for you. It's like serializing data to XML or JSON. I am not personally writing code to do that, but there is a library that does that.

    2. Re:Logic to interact with cached data by tepples · · Score: 0

      Not sure about what you are referencing.

      I'm talking about applying logic to interpret the cached data. For example, something that lets one download messages from Facebook Groups, prepare messages to post, and then post them next time the user is online, not unlike how e-mail and Usenet worked before always-on Internet. Or something that lets one download the status of a virtual farm, water the crops while offline, and sync later.

      If you had to manually program a cache in every programing language you would be right.

      Even if you have a cache, you still have to program enough logic to let the user interact with the data in the cache.

    3. Re:Logic to interact with cached data by PerfectionLost · · Score: 1

      In reality, your logic and communication bits should be abstracted anyway - isn't that the hallmark of good programming practice? ..and even then there's performance tradeoffs.

      Yes. That is called "Client side programing". Which if you look at the original post that was what we were talking about. Accessing data is effectively the same if it's cached or not.

  58. Not the issue by Anonymous Coward · · Score: 0

    That native vs web app debate was never about performance, it was always about politics. Of course native client side is a million times better but politicians don't like you running anything on your own computer and are trying to push the cloud. What they're effectively trying to do is put farms on top of clouds in some magical pixie fantasy where the farms float so elegantly like castles in the sky - politics I'm afraid.

  59. Re:Javascript vs. Jquery by bobv-pillars-net · · Score: 2

    In jquery, if I wanted to do something with each element with a particular tag contained inside another dom element, I'd do something like this:

    $("#myid input").each(doSomething);

    Or perhaps like this:

    $("#myid input").each(function(){$(this).doSomething();});

    In bare javascript I'd have to write a loop, either recursively or iteratively.

    Anyway, I don't see javascript libraries going away anytime soon. Bloated? Maybe. Useless? Depends on your point of view. If you're really dedicated to luring programmers away from jQuery, I suggest you write (or recommend) a reference such as I suggested. Otherwise, you're just making noise in an inappropriate forum.

    --
    The Web is like Usenet, but
    the elephants are untrained.
  60. "Native Code" has two interpretations ... by perpenso · · Score: 1

    It doesn't happen as often, but back in the day id coded games cross-platform, and certainly beyond casual games.

    "Native code" has two interpretations. One is native code from the CPU's perspective, as opposed to Java-like code which targets a virtual machine not the actual CPU(1). Such native code is a necessity for many non-casual games. This is the perspective I was mostly commenting on.

    The other interpretation is from the Operating System / Platform API perspective. Here too native code has an advantage. When used appropriately in your user interface code you get the expected look and behavior for the platform. This makes users happy. This sort of native code is not used in the bulk of the game's code, at least when games are properly written(2), hence the ease of porting. BTW, I am quite familiar with the porting process. I have also seen reviews improved by relatively small and modest appearances of platform native things in the UI. It really does help when used judiciously.

    (1) Yes there can be another conversion from the VM to the CPU's binary but this does not yield the full efficiency of compiling from source code directly to the CPU's binary as is done in the native code scenario.

    (2) This gets complicated. Sometimes it is best to included code for multiple platforms. For example you might target both Direct3D and OpenGL. Today even the folks at id admit that modern Direct3D has its advantages.

  61. Re:Javascript vs. Jquery by narcc · · Score: 1

    $("#myid input").each(function(){$(this).doSomething();});

    In bare javascript I'd have to write a loop, either recursively or iteratively

    (Oh, no! Not a loop! The horror! Someone might be able to read and understand your code -- then they won't recognize your genius. It's always best to make sure your code looks as much like obfuscated perl as you can manage. jquery is great for that!)

    So ... how is the jquery version superior in any way to the plain vanilla javascript version?

    var myStuff = document.getElementById("myForm").getElementsByTagName("input");
    for (var i=0;i<myStuff.length;i++) { myStuff[i].doSomething(); }

    In vanilla version is much easier to read and understand, easier to write, and doesn't require a gigantic library.

    What's REALLY funny, however, is that the vanilla version actually requires you to know less about JS than the jquery version!

    Sorry, there is absolutely no reason to use that poorly-written pile of garbage.

    . If you're really dedicated to luring programmers away from jQuery, I suggest you write (or recommend) a reference such as I suggested.

    If you're really dedicated to promoting that useless abomination, I suggest you find some way to justify its use. As for a reference, you might start with JavaScript: The Good Parts. It won't take long before you find out how much time and effort you've wasted learning and using that bloated corpse.

  62. Xbox 360 is not so Osborned by tepples · · Score: 1

    What you, ren-n-stimpy, and AuMatar have recommended may work for Windows Phone, which has already been Osborned, but not for Xbox 360. Xbox Live Indie Games is still just as CLR-only as WP7, and Microsoft has announced nothing about the Xbox 360's successor. Xbox Live Arcade allows native code, but only a few specific publishers are allowed in. Should a video game developer just release a game for Windows, Mac, and X11/Linux, despite it obviously having been intended to run on an Xbox 360, and then later release the sequel for the PC and Xbox Live Arcade once the developer has built a reputation for itself?

    1. Re:Xbox 360 is not so Osborned by ceoyoyo · · Score: 1

      If that's what the developer can afford, then yes. I really don't understand this "we must support every platform even though we can't afford it!" attitude.

      If you're a little developer/publisher with not many resources, concentrate on making a great game for a well supported platform. As you say, you can cross develop for Windows/Mac/Linux without too much trouble. If you're successful, port to the difficult platforms, or release the sequel for more. If XBox is always getting great games late, Microsoft will change their tune about only allowing special friends to write native code. Otherwise... why should they?

  63. A shitty workman blames his tools. by Anonymous Coward · · Score: 0

    You could stoke the native vs. portable debate all you want, but you can also conclude that Facebook's IOS app was just a piece of shit to begin with.

  64. Harder-to-afford platforms are where the market is by tepples · · Score: 1

    I really don't understand this "we must support every platform even though we can't afford it!" attitude.

    Because for some genres, the harder-to-afford platforms are where the market is. Some genres, such as fighting games and party games, are strongly associated with consoles and rarely if ever ported to PCs. Though a few token fighting games such as Street Fighter IV are ported to PCs, most such as Mortal Kombat are not. The traditional PC mindset is solitary: one PC, monitor, mouse, and keyboard per player, as opposed to the console mindset of two to four players having fun together in one room. Despite that the PC can easily support an HDTV monitor and gamepads, nobody actually does that. Apart from Slashdot's geek demographic, almost nobody uses a television as a PC monitor. So instead of starting one's own company in one's own home town to make PC games, one is expected to move to another state, work for a household-name console game developer for several years, and then years later, finally produce the game that one wanted to make in the first place.

  65. Re:Javascript vs. Jquery by bobv-pillars-net · · Score: 1

    So ... how is the jquery version superior in any way to the plain vanilla javascript version?

    It's shorter, both in original code size and in the number of documentation pages required to understand it.

    Sorry, there is absolutely no reason to use that poorly-written pile of garbage.

    I disagree. So do most of the posters in the thread you referenced.

    As for a reference, you might start with JavaScript: The Good Parts.

    Thanks. I assume you mean this one. I'll check it out.

    --
    The Web is like Usenet, but
    the elephants are untrained.
  66. 16 years GUI experience trumps 11 years? by Latent+Heat · · Score: 1
    Whether a GUI is hard or easy to write and takes up only 3-5% of the code really depends on your application domain.

    You might think Swing is the "stuff", but there are a lot of major apps in scientific computing and scientific data display that are using it -- the Figure windows and Command window in Matlab are JFrames.

    Let's set aside domain-specific widgets that do fancy graphical stuff. Let's just talk about an app that has a bunch of configuration dialogs.

    The dialog has OK-Cancel and maybe some other buttons, radio buttons to make some simple multiple-choice selections, drop lists to make some longer multiple-choice selections, edit boxes where the user enters decimal or integer numeric values over a wide range of possible values, clickers for making a selection from a small range of numeric values, maybe some combination of a clicker with text-entry override. So you are going to have a lot of code simply creating all of the widgets, configuring them, laying them out, and hooking them to event handlers. Yes Swing is verbose, but Windows isn't any better.

    Then you have code for data validation and for on-the-fly reconfiguration of the dialog contingent on selections. For example, this drop list is only activated if a particular radio button selection is made. Yeah, yeah, the rules for the data validation and for what happens when you select Cancel are "business logic" and should go into some kind of Model or Controller object rather than being rolled up into the View. So then for every action on a widget, you have an event handler in a GUI portion of the code because event handlers are GUI-specific, a call out to the model to update, and a callback or some response from the model, where you have to do the actual housekeeping of updating widget configurations, again in the GUI-specific code.

    So you separate the View and Model, having one module that does all of the GUI configuration and all of the event handling too as event handling is GUI specific and another module handling all of the logic of data validation and keeping track of the modal state of the dialog -- which buttons are pressed and which other widgets need to be grayed out. The Model and the View are tightly coupled in exposing long lists of methods to each other to make this work, which bulks up the code and also goes against modern object-oriented programming practice where objects should be self-contained and "know" how to perform the methods that are invoke on them.

    By the time you are done, you have a baroque edifice making use of every Gang-of-Four Design Pattern that puts much of the Swing codebase to shame. And by the time you are done, you say, "Aw, heck, let's just use Java/Swing as the front end where he call into our native app using JNI." And that is what Matlab does -- are those dudes stoopid?

  67. Can't share the client-side programming by tepples · · Score: 1

    The problem, again, is that one can't share any of the client-side programming between a platform supporting only verifiably type-safe, Emit-free CIL and a platform that doesn't support the CLR.

    1. Re:Can't share the client-side programming by PerfectionLost · · Score: 1

      Yes, but what you get is the ability to run Native code, which is _alway_ better according to the original poster. I think this conversation was lost on you. I recommend reading up on some n-tier application design. http://en.wikipedia.org/wiki/Multitier_architecture

  68. Re:Harder-to-afford platforms are where the market by ceoyoyo · · Score: 1

    Then you develop for XBox, Playstation OR Wii. Whatever you can afford and is the best market. If the game is a success, you port to the next best market. It's nice if your code is easy to port, but if that's not the reality of the platforms you've decided you want to support then suck it up.

  69. Face the music by Anonymous Coward · · Score: 0

    Isn't it about time to admit that HTML (any version) is NOT a development platform? It's great for making web pages, but that's about it. It is limited in scope and performance. Always has been, always will be, and that's fine. Use it for what it's good for, and stop trying to use it to build applications.

  70. Re:Javascript vs. Jquery by narcc · · Score: 1

    It's shorter, both in original code size and in the number of documentation pages required to understand it.

    Code size, yes and no. Yes in what you typed, no in what your page needs to function.

    Absolutely No to "number of documentation pages required to understand it" As I pointed out, you need to know more about javascript to understand the jquery version than you do the plain js version. You also need to understand css selectors and jquery. I'm not buying it.

    Further, the jquery version is harder to read and debug than the plain js version. Sure, it only takes a few extra seconds to parse out the jquery version, but multiply the number of cryptic lines of jquery (you know, by using it in practice) and start the inevitable chaining and you've got a maintenance nightmare!

    To save a few seconds of typing you've traded efficiency, readability, maintainability, and bloated the page with a fat library.

    Thanks. I assume you mean this one [amazon.com]. I'll check it out.

    Yep, that's the one. A few pages you might also find of interest:
      Slides from Estelle Weyl's presentation at OReilly's Fluent Conference
    JQuery without JQuery

  71. It was never going to be best the way to do it by Anonymous Coward · · Score: 0

    I think a lot of people talk about html5/CSS and JavaScript running in the context of their own pc, which is likely to be at least a dual core 2.4ghz x86 machine. Something of that spec is going to tear through any HTML based UI and make everything look lovely. The minute you go to a low power device (iPhone 4 is a single core ARM processor running at 933hz) whatever whizzy HTML/Js you have written will work way slower.

    Apple get over there slow Processor issues by using things like CORE graphics that utilise the GPU to draw to the screen. They've spent a lot of time smoothing things over at OS level to make things look smooth. But most of that is not available to the web renderer in the UIView that apps have to use to draw HTML and execute JS in.

    I just think FB thought they were flogging a dead horse either trying to wait for apple to improve HTML rendering speeds for UIView and felt they might as well go native. If HTML was really the best solution for apps companies like Path would be using that already. The fact that they don't and companies like FB and Google have tried in vain shows more about politics and the desire for them to be in control of their platforms rather than HTML/Js is best for GUI development.

  72. All tiers still have to run on the local machine by tepples · · Score: 1

    I'm aware of multitier architecture. But when an application is running offline, all tiers still have to run on the local machine, and the logic and data tiers can't be shared between platforms that do not share a language.

  73. Re:All tiers still have to run on the local machin by PerfectionLost · · Score: 1

    And you want to run Facebook in offline mode because...?

  74. E-mail and Usenet worked in offline mode by tepples · · Score: 1

    Because I want something to do for an hour on public transit without having to pay $600 a year for mobile broadband. Back when e-mail and Usenet were still popular, a user would download all new messages from a POP3 or IMAP server and download new posts in the groups to which he subscribes. Then he would read the messages while offline, compose new messages while offline, and schedule them to be sent next time he connects to the Internet.

    1. Re:E-mail and Usenet worked in offline mode by Anonymous Coward · · Score: 0

      Back when e-mail and Usenet were still popular, a user would download all new messages from a POP3 or IMAP server and download new posts in the groups to which he subscribes. Then he would read the messages while offline, compose new messages while offline, and schedule them to be sent next time he connects to the Internet.

      Yes back in the old days this was useful, these days just about every kid with a mobile phone is always connected to the net, get with the times.

  75. Re:Harder-to-afford platforms are where the market by tepples · · Score: 1

    Then you develop for XBox, Playstation OR Wii.

    All three of those platforms are hard to afford. As far as I can tell from how I interpret the developer qualifications of the three big console makers, a company's first game must be for either PC or mobile before the console maker will even talk to the company, and a lot of genres aren't practical on either PC or mobile.

  76. Re:Javascript vs. Jquery by Anonymous Coward · · Score: 0

    It's shorter, both in original code size and in the number of documentation pages required to understand it.

    Code size, yes and no. Yes in what you typed ...

    Most of the time, that's all I really care about.

    Absolutely No to "number of documentation pages required to understand it"

    I disagree. I only had to reference two jQuery doc pages to write my version. I'd have a harder time finding the two doc pages needed for your version, plus I'd probably glance over the reference for Javascript looping constructs since I don't write in that language every day.

    As I pointed out, you need to know more about javascript to understand the jquery version than you do the plain js version.

    Again, we'll have to "agree to disagree". I may never know enough about Javascript to understand (and/or replicate) the entirety of jQuery, but I know how to use it. To the casual driver, an automatic transmission is simpler to use. Most mechanics prefer a clutch because more efficient and easier to repair. I'm a casual driver, not a mechanic.

    A few pages you might also find of interest:
      Slides from Estelle Weyl's presentation at OReilly's Fluent Conference

    IE9 won't show the third and subsequent slides, and my Linux box is in the shop for repairs, so I'll have to check that one out later.

    JQuery without JQuery

    Precisely the reference I was requesting several comments earlier. Thanks.

  77. All I care is... by Anonymous Coward · · Score: 0

    ...that it runs faster in the end.

    I know absolutely nothing about coding in either HTML5 or Objective C but I do know as a user that the Facebook app for iPhone is terribly slow and laggy and from people I've asked, this is typical.

    Please, tell me, will this mean Bette performance?

  78. Details Matter by danwesnor · · Score: 1

    It's not ObjectiveC, nor Objective C. It is Objective-C. Congrats to the two of you who got that right. The rest of you, please don't code in any C-based languages, your lack of attention to details would be disasterous.

  79. Can't pay smartphone bill with your allowance by tepples · · Score: 1

    these days just about every kid with a mobile phone is always connected to the net, get with the times.

    Some kids have rich parents. Other kids have working class parents who can't afford the monthly bill for a smartphone, so they buy dumbphones instead.