Google needs to eat their own dog food

Google needs to eat their own dog food

Summary: Google developers face a bleak future trying to maintain several different code bases of obscure custom JavaScript code for Google Docs & Spreadsheets, GMail, and their other popular web applications. It's time for them to eat their own dog food and use Java and the Google Web Toolkit instead.

SHARE:
TOPICS: Google
12

I'm sure you've heard by now about Google Docs & Spreadsheets, Google's combination of Writely and Google Spreadsheets. If not, go give it a try, I'll wait....

Ok. Now you probably had one of two reactions. If you were thinking "Wow, that is so cool", you can stop reading now and go back and simply enjoy the tools. I don't want to spoil the experience for you.

For the rest of you, what is wrong with this application? Why should you care? And what should be done to fix it? I'll get to that, but first: what's wrong with it.

For one thing it's not a single application. It looks like all Google did was try and synchronize the look and feel of the two applications, but it's just skin deep. What you have here is different applications, written by different people in different styles, trying but not quite succeeding in an effort to appear as one. How do I know that?

The first clue is that the applications are served from different hosts using wildly different URLs. Another is that if you look carefully at the main page, the word processor page, and the spreadsheet page, they all use slightly different text styles and spacing across the top, and margins around the edges. Some icons (such as the cut icon) are shared, but some of the buttons are different. One has "Collaborate/Publish" and one has "Discuss/Collaborate". One says "Sign Out" and another says "Sign out". Etc..

Beyond these superficial items, the real proof is in the source code. The main page and the word processor appear to be based on the Writely (or as the code says, "leftly") code base. You can tell because at the top it says "////Copyright 2005, Upstartle LLC" (Upstartle was the company that did Writely). The spreadsheets part is something else entirely. It's magic obfuscated JavaScript for the most part, except for some bootstrap script in the main document.  The style looks closer to the GMail code, but there are big differences.

So why should you care? As a user of Google applications you should care because Google is trying to maintain (at least) three different code bases using very hard to maintain JavaScript. You should care because the applications are slower than they could be. For example the code is littered with browser checks and special cases, and in some cases comments and whitespace that only takes up bandwidth.

The solution? Google should be using their own open source development framework, Google Web Toolkit (GWT). GWT "takes the pain out of Ajax" by letting you write and debug Ajax apps in portable Java and compile them into JavaScript. Rewriting Writely, Spreadsheet, and GMail with GWT would have many benefits including:

  • One code base (part of GWT) for all those tricky browser specific tests.
  • Google programmers could code in Java and use all the great tools that go with it.
  • Shared Java components would help ensure look-n-feel congruence between the different apps.
  • With the proper run-time, it would be possible to migrate these apps to the desktop for offline use.
  • GWT's compiler builds cacheable modules ahead of time for the permutations of browsers and languages that the user actually uses (and you load only what you use).
  • It takes care of obfuscation and compression of the code for the minimal payload going to the user's browser.
  • Using GWT for these high profile production apps would help the GWT community by forcing GWT to improve and mature quickly.
Currently the only Google app that uses GWT (that I know about) is the Google Image Labeler. C'mon guys, I know this would be a lot of work, but so is the bleak future of trying to maintain all that magic JavaScript code. You've shown us the future of Ajax development with GWT, now take your own advice and use it for your own web apps. Your users, not to mention all the programmers using GWT, will thank you for it.

Topic: Google

Ed Burnette

About Ed Burnette

Ed Burnette is a software industry veteran with more than 25 years of experience as a programmer, author, and speaker. He has written numerous technical articles and books, most recently "Hello, Android: Introducing Google's Mobile Development Platform" from the Pragmatic Programmers.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

12 comments
Log in or register to join the discussion
  • Sounds horrid

    But changing the programming language won't help.

    Oh how good it would be to have an office package that had actually been designed from the ground up to be integrated and not as a set of discrete applications patched together in a hurry after the event.

    Innovation in the software industry seems to consist of making all the same mistakes but on a different platform, or ecosystem as I believe they call it these days (the word ecosystem always puts me in mind of what you find when you turn a large stone over).
    jorwell
  • Message has been deleted.

    opensourcepro
  • Bad decisions

    The dog doesn't like the dogfood. Continuinmg to push products people don't like is not the wisest financial decision. Could it be a new trend?

    And buying uTUBE? A company based heavily on infringing on other's intellectual property?

    What are they thinking?
    rmkeeler@...
  • Running low on things to complain about?

    Though i would agree it would make sense to use their own code, I don't care as long as it works for me. Seems like a nonissue this early in the Office 2.0 game. Give em some time
    washworth@...
    • As long as it works for you?

      The Docs part is kind of slow for me, possibly because of the size of the JavaScript. The Spreadsheet part loads slowly for me too. Neither is as fine tuned as GMail. If Google concentrated their brainpower for a little while on using and improving open source GWT, my point is all their apps would benefit, and so would all our apps that we built with GWT.
      Ed Burnette
  • True, but must give them time ...

    It is true that Google should eat its own dog food. Otherwise it will be like Microsoft: Asking people to use Managed C++ etc but not themselves using it for Windows/Office. Its a credibility problem.

    I am, however, willing to cut Google some slack at present. They just bought Writley and will need time to integrate it with the rest of its offerring.

    I think Google will eventually use a common tool set for all its offering, as it make sense to do so. The companies they bought are young companies, hence the code-base to convert is not as large as what Microsoft face with Windows/Office. It also simplify management of Google-branded software and allow lessons learned, useful modification done in one software to be available to another software, not to mention strengthening the basic software used to built these applications.

    Whether the basic software in question is GWT is however, yet to be seen. It is a strong candidate, given the noise Google made for GWT.
    sinleeh@...
    • Was buying Writely a good idea?

      Often companies are faced with a build-vs-buy decision and Google decided to buy Writely. But here we see some consequences. Did they buy them because of the good technology, because of the good people, or were they just buying brand name/mindshare/marketshare and time to market? If it wasn't the technology, then maybe they'd have been better off keeping the name but starting over using a unified architecture. If it was time to market, then what they're doing makes sense only if another team is working on the "real" version now.
      Ed Burnette
  • Try OpenOffice for offline use

    It does everything MS Office does, it's components are tightly integrated and it's free. I've been using it for years. In many ways it is the best office package available.
    robert_rowe@...
    • OpenOffice

      Not to knock OpenOffice but we're talking online no-install access-from-anywhere apps here. And, I have used OpenOffice in the past but at the time it couldn't run Word macros so the templates and macros my publisher required wouldn't run so I had to go back to regular Word. Do you know if they've improved compatability with macros recently?
      Ed Burnette
      • Feature-Thin

        OpenOffice Is Not Web-Based, a point oft missed by OpenOffice
        fans.

        My problem with the Google offering is how feature-thin it is.

        ThinkFree's word-processing, spreadsheets, and presentations
        blow Google out of the water, with MUCH stronger
        features than any other web-based office products i've seen.
        They look like, feel like, and are nearly as robust as Microsoft
        Office.

        And let's admit it-- Microsoft, as much we love to hate
        them, has set the bar higher than anyone.

        Zoho is another serious contender.

        My other problem with Google Documents and Spreadsheets is that,
        like Zoho, they have that "i'm on a web-page" feel. ThinkFree
        feels much more like a solid desktop app.

        But the Google and Zoho products load instantly; ThinkFree takes
        minutes.

        I'd love to see the best of both worlds. Would GWT provide?
        johnywhy@...
  • What part of Beta don't you understand?

    I know Google puts everything out as Beta and pretty much leaves the label on permanently. But I'd rather use a product that's still in the works, getting user feedback, and being improved NOW as opposed to waiting for the fully polished product. Let me use it and help weathere with the interaction of a variety of users and their feedback.
    kpdriscoll
    • Cutting slack for beta

      I don't disagree with you, but the future direction I think they should go in is to unify the application framework that all these apps use under the covers. That will have benefits both for Google, the users of the apps, and the users of the application framework.
      Ed Burnette