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."

20 of 240 comments (clear)

  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 prgrmr · · Score: 4, Funny

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

    4. 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 ...

    5. 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.

  2. 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 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.

  3. 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."
  4. 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.

  5. 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!
  6. 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.

  7. 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."
  8. 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.

  9. 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.

  10. 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.

  11. 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?

  12. 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?
  13. 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.

  14. 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?