Rich web apps, GMail, and Suggest get bashed like none other, for good reason.
By: Charlie Hayes
People frequently ask me “OMG! Have you seen Google suggest?” or “do you use GMail? IT’S AWSOME!”
My immediate reply is “no, it sucks.” To which the reply-reply is always something along the lines of “WHAT ARE YOU TALKING ABOUT?” Obviously Google services bring out the caps lock screamer in all of us. The Google screamer phenomenon is not what I’m writing about, however, but it would make a nice study for those people interested in psychology (and have the time to care about it). What I am going to write about is how “rich” web applications are worse than non web applications using GMail and Google Suggest as examples and ThunderBird, Outlook, and Mail.app as counter examples. Wherever ThunderBird is mentioned (including the previous sentence), I think it’s safe to assume that the mail client part of the Mozilla package can do the same thing.
I believe that web mail clients should only be used when you absolutely must access your email from somewhere else and HTTP is the only method of communication. The point of this article is not, however, to bash all web mail clients. The point is to explain why rich web applications are bad by using the two most high-profile web applications as of this writing.
I will frequently mention Keith Lea; you can visit his website or read his GoogleBash. I read over his to make sure I got all the things that he got too, just to be thorough. In fact, he was my inspiration for this bash. Look what you made me do Keith!
Here is a list of reasons common users claim they love GMail:
- The ability to star messages
- Built in spell checker
- Web based so you can send and get mail from anywhere on the internet
- It’s clean and simple interface
- The ability to search through all their email using Google’s “great” search technology
- (This is where I look at Keith’s post so see if I’m missing anything)
- The ability to use conversation style reading
- You don’t have to delete message because there is so much disk space
- You can apply filters that automatically do things to your email such as color them
- Built in spam filtering
List of things Google just can’t do:
- Drag and drop attachments and easy attachment viewing
- Integrate with the system address book and other system services
- Look and feel like native applications
- No ads
Actual good reason to use GMail:
- Your mail is safe from disk failure
The real reason people use GMail:
- It’s “cool”
Now let's go over these one at a time comparing to native apps, and then other web mail clients just for shits and giggles. We will score a loss for Google if it can be done with current and/or older native clients.
Claimed Reasons:
Number one, you can star messages. This has basically been in every email program ever, but they are called flags instead of stars. Take a look at newer versions of Outlook. They even have many different colored flags. So as far as I can tell, the only difference is that they are stars instead of flags, and we all know that stars are more exciting than flags. You don’t go around Mario 64 collecting Flags, you go around collecting stars. Flags don’t make you invincible (they actually attract people to kill you since they don’t want you to capture the flag), but stars do make you invincible. So maybe I should make an extension for ThunderBird and Outlook that change all the flags to stars. I can call it the “Super Exciting Start Extension” (See Mr. Fields, I DO know what alliteration is, and I still hope you die and go to hell). Many other web mail clients can do this as well. Because Outlook, ThunderBird, and Mail.app can all do this, GMail loses.
Number two, GMail has a built in spell checker. Wow, cool! An inline, online spellchecker, in a browser window, that is amazing. Comparison time! Thunderbird has a spell checker. Outlook and Mail.app both inline, real-time spell checkers. Beat that GMail! Because all other desktop clients I am using for comparison all have this, that’s is another loss = (
Three: Web based greatness. GMail is better than Yahoo, Hotmail, etc. But it’s not that much better. It’s a little more responsive, and a little cleaner, but it’s no more useful than the others. But one can always use Remote Desktop or VNC to access one’s email from anywhere on the internet. Well, not anywhere, but most places. GMail works on a few specific browsers. VNC has a build in Java based web client so that requires a browser with Java. All browsers that GMail works with have Java, and pretty much every other browser that GMail does not support supports Java, so I would say VNC is more compatible, but it would require a LOT more bandwidth. There are many web-based POP-based web mail clients too. Chances are your ISP or mail server already has one of these running. You could just use one of those while you’re away. Another part of being web based is that it’s only on the web. What if tomorrow the whole internet goes down or just Google? Well, your shit out of luck. Your email is gone forever. Sucks. Even if the internet doesn’t go down, you still can’t access your email away from an internet connection. You can read your email on a desktop client at any time, internet connection not required. This is close; maybe even a tie, at least before the internet goes down. Since ThunderBird, Outlook, and Mail.app are all unaffected by an outage, GMail loses.
Four: Clean and simple interface. Google may beat over other web mail clients here, but that’s about it. Desktop apps definitely prevail here. ThunderBird, Outlook, and Mail.app all have essentially the same clean and simple interface. Once you learn one, you learn them all. All these native apps also use the standard Look and Feel of the platform they are running on. GMail does not. Google loses.
The fifth reason people use to claim GMail’s superiority is its search feature. This is definitely not unique. It may be a little better than other web mail clients, but nowhere near as powerful as full desktop clients. Poorly written clients would be slower than GMail, but you get a lot more power. Well written clients like Mail.app have speed and power. Thunderbird and Mail.app even have live search results, beat that GMail! Google loses again because Thunderbird, Mail.app, and Outlook all support an even better type of searching. Bummer.
Six err... Seven: The ability to use conversation style message view. Maybe the name is what draws people to it. Conversation… Yeah that seems better than thread view, but guess what, IT’S THE SAME THING! Every client does this. In fact, Outlook and some other apps can do this even better; they have a hierarchical view. Forwarded and such emails that frequently have > all over them are quite numerous. Mail.app and Outlook do a pretty good job of fixing these up and making them look all nice and pretty so that they don’t look like shit. GMail doesn’t. Google loses big time here Because not only do ThunderBird, Outlook, and Mail.app do this, they do it better. Plus they fix up all the crap you get when you receive a forwarded email or reply..
Eight: You don’t have to delete, there’s just so much space! If this were just a web mail comparison, GMail would win here, however, its not. My desktop PC has over a hundred Gigabytes free. That’s 100 GMail accounts. Do you have 100 invites for me? I seriously doubt that anyone has less than a Gig free. Even if they did, you can go out and buy a new hard disk whenever you want, but you can’t call up Google and ask for more space. Hell, if you had a native client, you could even backup your email to a DVD, that’s 4.7 Gig and 4.7 times what you can use for GMail. Since Outlook, ThunderBird, and Mail.app are all based on the local file system, they have way more storage than GMail could ever dream of. GMail loses.
Nine: Filters! Yup, GMail has filters. So does every client ever. Clients like Outlook, ThunderBird, and Mail.app actually have some pretty sophisticated ones too, fantastically better in every way over GMail’s. Awe, another loss.
Ten: Built in spam filtering. Unfortunately, I can’t vow for the greatness of GMail’s spam filtering. However, you don’t have much control over how GMail filters spam. But pretty much all clients have spam filtering built in. I’ll assume that Google’s is pretty good and declare this a tie.
Google Mail lost eight of the arguments and tied in one; mark up zero wins for GMail, and we have a pretty one sided game here.
Now here are the things that GMail (or any other rich web app for that matter) just can’t do at all.
First, you can’t drag and drop files to attach them. You’re bound to the single file browse button and accompanying text box. Unless you resort to a Java applet or a mighty secure ActiveX control, drag-and-drop attachments is completely imposable in a rich web app. The HTML spec only has that one upload method. Sorry. Thunderbird, Outlook, and Mail.app all have drag-and-drop attachments.
Second, you have to use the shitty web based address book. It doesn’t have many fields ether. It’s like Name, email, comments. Where’s address, phone number, picture? There are none. The MacOS X address book is amazing, plus it integrates right into Mail.app. You can not right click a file and say “send as attachment” for Google. You can not “Send To GMail” from Word or Excel. You can not send new mail from your system address book. Sorry on all accounts. Outlook, Mail.app, and ThunderBird allow all of these.
Third, GMail doesn’t look like native apps in Windows, Linux, Mac, or anything I can think of. I suppose somewhere you may be able to find a poor imitation skin/theme/look-and-feel to make everything look like GMail. But that’s far from native, therefore, it’s inconsistent and hard to use. Unless you enjoy learning new user interfaces, you’re not going to like the learning curve GMail has attached. (Get it? It’s an email joke!) Outlook, ThunderBird, and Mail.app all look and feel like the rest of the platform.
Fourth, and finally, you’re forced to see ads with GMail. No other client, except maybe Juno (man, how old am I?) and other web based clients have this “feature”. ThunderBird, Outlook, and Mail.app don’t have any ads.
That brings the score to zero and Twelve. Lousy.
The valid reason (notice it's like 2 sentences)
Ok, here is the only valid reason why you can like GMail. Ready? It stores your email on a global and redundant network, and you never have to worry about it. That IS pretty nice. Permission to use any other excuse to like GMail denied. I can’t thing of a native client that offers this.
But it’s so cool!
Now why do people really use GMail? Because it’s cool of course! I guess this can only be attributed to its exclusiveness. You need to be invited! HOW COOL! Well, the only reason I have an account is because Keith got one, and then he invited me. He doesn’t even use it! In fact he bashes it like I do. I think he got it because he knows some one at Google, however I could be wrong. Ether way, not every one can use it, and most people that want to use it at least know some one who has an account by now and they just get an invite from them. So the exclusiveness is definitely not what it used to be. Keep in mind folks, the reason people smoke and do drugs is because it’s “cool”.
I was thinking of making a huge table comparing GMail with other desktop clients and web mail clients, but I decided that I would probably get a ton of flame mails. “But Eudora DOES have feature XYZ!” You know what? I don’t give a shit about Eudora; however, what I do give a shit about is GMail bashing, which I think I’m doing a pretty good job of. Also, it would take a lot of time to get all the data, and I don’t want to download a million apps to test against GMail.
Suggest
So that’s GMail. Let’s talk about Google Suggest for a moment. The first time I tried Suggest, it didn’t work as I expected it to. I even tried to make it suggest things that I thought it should, but it didn’t, all I got was junk that I could care less about. In fact, the other day I tried it again. I typed in “this is a test” and left the cursor there at the end of test right after the ‘t’. What was the first item in the list? Well, it was “this is a london” (What IS a london anyway?) and it was highlighted. A few lines down I got “this is a test” and it was NOT highlighted. That’s just dumb. Plus, by the time I find something worth looking at in the seemingly-live-but-not-really list of pre-queried results stored in a table in memory on Google’s servers, I could have typed in an entire query, pressed enter, seen some results, then hit back and changed my query or just edited it on the results page. The only good thing that could come out of something like this is an actual live query results. Every new character you type in would be like pressing enter. This would obviously reduce the efficiency of the Google network dramatically, so that’s unlikely to happen.
I think Keith did quite a nice job bashing Suggest, short and sweet:
People like Google Suggest because it has that dropdown menu of popular searches. That’s all it does, so it must be why people like it. People say “I was blown away with it” “Google did amazing JavaScript again” “another search engine innovation” “just when you think search couldn’t have gotten any better”
Web browsers have had dropdown menus of recent / frequently used URL’s, for years. IE’s is even resizable. Would it be amazing if Firefox or IE requested the top 50 URL’s from some website, to fill that dropdown menu with URL’s as you typed? I don’t think so. We all know that applications can connect to the internet and get information, and show it to you. This doesn’t amaze us, or at least, it doesn’t amaze me.
So here we are on page four (heh, now its half way down five!), at least in this fantastic Word document, and the score is like 1 and at least 14. So let’s just declare the winner. And the winner is …. (Drum roll)… Not Google!
Rich web apps in general
Now that we have compared the rich web app version of applications to their native counterparts, Lets take a look at rich web apps in general. Why do most if not all rich web apps suck you don’t ask? Well let’s find out! How about a journey into the land of JavaScript and proprietary goodness? RIGHT ON!
GMail, Suggest, and other rich web apps make fantastic proofs-of-concept. It’s simply amazing what the folks at Google managed to get JavaScript to do. Although, any nerd can attest: JavaScript sucks nuts. You have all seen the SNL skit about some nerd and he’s like “JavaScript sucks.” He was actually right that one time! The skit sucked otherwise, but he did let the whole world know, including the non nerdy type, that JavaScript sucked.
Every browser does JavaScript differently. There are a million scripts on the internet to detect the user’s browser just to work around this stuff. It’s not just to ban IE users from your nerd-only site; it’s to make sure your JavaScripts work. Google no doubt had to individually program GMail and Suggest for every supported browser. When a new browser comes out, it probably won’t work. What about old browsers that support JavaScript? They probably won’t work ether. It may be because they don’t support DOM or maybe because they don’t have the right User Agent string, or maybe some other obscure thing, but whatever it is, that’s not the point. Point is: unless a browser was specifically designed to work exactly like Mozilla or IE (God forbid they were to work like IE) or Google wrote scripts to detect and change to the appropriate JavaScript, it won’t work. We all know this type of profiling is the dumbest idea ever; why are all these people accepting it?
I suppose you could do a lot with JavaScript to get it to do amazing native-like things. Heck, you may even get close to what MacOS X Does with Quartz or Windows with GDI+ or Avalon. You may get somewhat intimate with Windows using scripting host. You may be able to get hardware acceleration using some fantastic new integration technology (read: security hole). You most likely won’t be able to integrate into the OS like you can with a native app by using a language that supports that platform’s API calls. Hell, you may be able to get your app off the web and onto the user’s desktop for offline execution. If you some how manage to get your JavaScript powered app to this super saturated platform sniffing and adapting state, no doubt You’ll have some seriously crazy spaghetti code. Your app will be impossible to maintain, and all hell will break loose when you need to support a new browser or platform. But you’ll have your pretty website running inside a browser, won’t you? You’ll always be fighting an uphill battle with JavaScript. Is this the way you would want to spend your time writing code? Here, I’ll answer for you. No, it’s not.
You could, however, use Java. This is exactly what the Java platform was designed for, embedded rich client apps on any host platform. You’ll never be able to achieve perfect nativeness unless you write your app using the native API of the target platform, but you can get much closer to native with Java then with JavaScript, a crappy web browser, and some a ton of extra work. You’ll also have the added benefit of using the best programming language ever designed! (Okay, well maybe not, I guess that’s pretty subjective, but ill be the first person to say that Java beats JavaScript any day, and you wouldn’t want to go messing around with a ShitFest ® like C++, would you?)
Let me provide an alternative to GMail. Google could have used Java and done absolutely everything they have done with GMail. They would have more power to make things look pretty and act better. They could have made a Google Look-And-Feel and allowed the user to select it or the native L&F. They would not have had to write multiple code paths. It would have taken a fraction of the time. It would have been faster, more stable, and easier to debug.
Conclusion
The web is for hyperlinked documents, collections of information, and maybe some cool videos and pictures. The web, however, is not meant for HackCrappy code. I sure hope this is just a little hiccup of the DHTML craze from the late nineties. No one uses this crap any more except 13 year-olds who want to impress people, and apparently Google. Again, Keith put it nicely:
Maybe the Web needs to change, maybe developers need to change, but to me, widespread amazement over a dropdown menu shows that something is wrong.
If things like this start popping up all over, we're headed for a DHTML Disaster. Every application will have an entirely different method of interaction. All for the sake of cool. This will lead to developers fealing obligated to use JavaScript to make their applications more dynamic. Would you ever design a web page without using CSS? No, you wouldn’t. If this JavaScript thing catches on, developers are going to have nightmares and long for the good old days where no one touched this sort of thing because it was such a mess.
Don’t get me wrong, Google’s search engine is pretty good (although I wouldn’t say it’s by far the best). I like that Google is showing what the web can do, it’s cool. They are thinking outside the-- They have original ideas. We need more people with original ideas. But since most people don’t have original ideas, they are going to do what Google’s doing since Google is “cool”. This is where Google has failed me.
Google became cool, and not just to the nerdy folk, but to the “users”. Since that’s the driving force for most websites, JavaScript may take over like Flash, animated gifs, pop-up ads, or Google Bombing has. Every thing that has been, is, or ever will be cool always falls to the same problem. They are discovered and twisted by the assholes that make up the world into what help make the internet the revenue-generating, ad infested, and spam-piled-high hellhole it is today.
I hope I’ve made a disbeliever out of you. I’m sure I have left things out that I’ll probably remember about 3 seconds after I post this, and I don’t know if I’ll care enough to add them at that later date, but we will see. Enjoy impressing your friends with your new-found knowledge of how much rich web apps suck.
Thanks again to Keith, his help and suggestions improved this little (big?) thing greatly.
UPDATE: Well, I did leave some things out. And it appears that people didn’t like the way I presented things. I have reworded things, clarified things, and have explained the goal of this article.