Write Once, Run Everywhere
Posted: January 2nd, 2012 | Author: Michael | Filed under: Android, iOS, Java, Tech | 1 Comment »How Facebook Mobile Was Designed to Write Once, Run Everywhere.
I recently read the above article on ReadWriteWeb.com. The article describes the technical architecture of the Facebook mobile applications and the direction they are heading. The article is based on a presentation that a Facebook engineering manager gave. He seems proud of the architecture and the so-called progress of the application. In reality, the Facebook application gets worse every day and has gone from being one of the best apps to one of the worst. It isn’t coincidental that as Facebook has moved from a native app to a more web-based app wrapped as a native app that the user experience has diminished. The app use to feel native, was virtually bug free, responsive, and accurate. Now, the app barely works. Bugs are littered throughout the application from pictures being un-viewable to some friends having profile pictures that are of a different Facebook friend. It’s classic that this article has “Write Once, Run Everywhere” in the title. Java, which is also slow and unresponsive, has used this slogan for years. Writing something once, and running it everywhere often comes with a price and when that price is user experience, it often isn’t worth it. Is it worth having millions of users pissed off at your unusable product just so you can cut a few developers or so your developers can feel better about having non-redundant code? Facebook can easily afford to have a small team of iOS developers, a small team of Android developers, and a web team for dumb phones. This would have allowed them to keep the best user experience for each operating system until HTML5 was ready enough to support an equal or better user experience.










I agree with some parts of your analysis but disagree with others. Coming from what I work on now and we have to support multiple setups (xp, win 7, 32, 64) .. now break it out, sp3, sp1, different versions of windows and you have tons of combinations. Now try to test all those before releasing. And test upgrades, etc, etc. It turns into a nightmare. Making it web based takes all that out of the equation. Support 3-4 browsers and move on.