Tuesday, November 24, 2009

Web Developers Are Stupid and Arrogant

The past couple of days has seen an amusing rant by PPK, that then turned into a retraction and call to action. The original rant included a condemnation of iPhone developers as being stupid and arrogant. Others have adequately refuted PPK, so I won't bother with any of that. His post made me realize that it is in fact web developers who are mostly commonly guilty of stupidity and arrogance. Here's what I mean.

It's easy to look at the world today and say that web applications have won. This is web developer arrogance. Stupidity is to think that web applications have won because web applications are superior to desktop applications. Smarter, but probably still arrogant developers would point to web applications as disruptive technologies. This involves admitting that web applications are inferior, but good enough, and present enough other "cheaper" advantages to compensate for their inferiority.

To understand why the "web apps have won" claim is dubious. There are definitely a lot of awesome web applications out there. Many of them were created back in the mid/late 90's, The "features" of these applications were the key to applications, not the user interface. Now these days, most of these web applications offer APIs/web services/RESTful interfaces/whatever you want to call them. In many cases it is possible to build desktop applications that tap into the same features as these web applications. However, this was certainly not the case 10-15 years ago.

So if APIs make it possible to build desktop apps that offer the same features as popular web applications, why haven't people switched? The first most obvious answer is inertia. If you are used to accessing Google or Amazon on the web, that's probably the way that you will always use it. Something else to consider is that for many web applications, it does not make sense for them to offer all of their features through APIs because it hurts their core business. This is most obviously true for advertising based companies like Google, Yahoo, and Facebook. Their web applications not only provide very useful features to end users, but they serve ads that make money for the companies. If all of their users switched to using desktop applications that only offered the features with no ads, then the companies would lose their revenue streams. Their business is connected at the hip with their UI, so it is in their best interest to make sure people use their UI -- which is a web application.

However, there are other very successful web applications whose main revenue does not come from ads. Their business is distinct from their UI. E-commerce companies like Amazon and my employer, eBay are obvious examples. For example, eBay offers trading APIs that provide almost all of the trading features of eBay. This is particularly true for selling on eBay. This makes sense, as eBay does not need a seller to use the eBay UI to sell something, as the UI is not what makes money for eBay. As a result, around 50% of all items for sale on eBay come through 3rd party applications built on top of the eBay trading APIs. The vast majority of these (especially the popular ones) are desktop applications. Give people a choice, and a lot of people choose desktop applications.

For another interesting example, just look at Twitter. This is a company that came into an existence after web APIs had become the norm. So Twitter has provided a comprehensive set of APIs since early in its existence. Further, they have not pursued an advertising model that would marry their web based UI to any revenue streams. So they have kept their APIs in sync with their features. For example, they recently added list and retweet features to their site, and added them to the APIs at the same time. As a result, there are a huge number of desktop applications for accessing Twitter. Indeed, Twitter says that 80% of their traffic is from APIs -- either desktop or mobile applications. For most Twitter users, there have always been feature-equivalent desktop alternatives to Twitter's web based UI, so many users chose desktop applications over the web.

Finally, let's look at one more example: existing desktop apps. There has been an incredible amount of money spent on creating web applications that provide similar functionality to traditional desktop applications: email, word processing, etc. Heck, Google has spent a lot in this space just by itself. These are useful applications, but it is rare for people to choose these apps over their desktop equivalents. In most cases these apps try to go the disruptive route, i.e. don't try to be as good, but good enough and cheaper. They have had little success so far. Of course, inertia is a valid argument here, too. The one case where there has been success is GMail. In my opinion its success is not because people like it's web UI over a desktop UI, or even that the web UI is "good enough" and cheaper. No, it's success is because it has offered innovative features over other web and desktop based alternatives: fast search, stars/labels, threaded conversations, etc. Even give all of that, many people still choose to use desktop clients to access their GMail (I'm definitely not one of them.) Anyways, once again it's the features, not the UI.

I am not going to sit here and claim that desktop wins over web all the time. I'm not arrogant or stupid enough to make such claims. However, be wary of claims that web apps win over desktop apps. One could argue that with the preponderance of APIs (especially spurned on by mobile apps) and the popping of the advertising based web 2.0 bubble, that the future will hold even more opportunities for desktop alternatives to web applications. Maybe web applications have jumped the shark. So don't put up with web developers who insist that web applications have won (especially if they try to extrapolate this flawed argument to the mobile world). They can go on and on about technology, standards, interoperability, etc. Just remind them that it's the users who matter, and when given a choice, the users do not always choose web applications. Time to polish off your MFC and Cocoa skills!


will said...

Twitter has a relatively simple number of things you can do to interact with it so it makes sense that it has proliferated across many technologies. The "tweet" is by definition simple, so to make a program that tweets via an api is simple as well.

you're also forgetting that in being "cheap but good enough" (a point i don't agree with either - another battle), the web is extremely cheap and easy to develop for, and most importantly cross platform (can be accessed from mac, pc, linux, android, iphone etc. etc. etc.) vs. a windows app, that cannot.

also the web apps have won claim i think means more "we can do whats possible on a desktop app on the web - awesome, its the new OS and its cross platform." of course we are a bit ways off on gaming, video editing, etc. - sure those things need a proper OS, and will continue to be programmed for higher end computers for a while.

right now with the emergence of netbooks and other small, cheap ways to access the web through browsers, and the increasing ability of those browsers to support complex javascript, you start seeing the emergence of the most universal platform we have accessible from all these different devices but hitting one app - not an OS specific app for each one.

Chris said...

both platforms demand knowledge of a wide variety of concepts -- thread scheduling, tcp/ip, dns, event handlers, etc. to call web developers arrogant and stupid is hyperbole. it presupposes a platform war that simply doesn't exist. no one worth listening to would claim that the web > native or vice versa, because they both have their place. it's as pointless as pitting one programming language against another.

in time a gentle balance will be struck between developers and the approval gods. being a relatively new platform and having generated more than a few horror stories, developers are voicing their frustrations with apple, and again, rightfully so. no one is saying that ALL developers are frustrated. but it's clear that a few are. and as far as i know, it's not all web developers.

good read btw.

Claus said...

I get the impression that you understand web applications in the narrow terms of "what goes on in a browser"..

As a web developer, little of what I do is directly related to UI rendered in a browser.

I don't care if my application is used in a browser window or through a desktop UI. The reason why "web applications" has won over traditional "desktop applications", is that they are network enabled.

So yeah, go ahead an make a desktop twitter app, what you are doing is just extending a web app :)

James E. Ervin, IV said...

I think you make very valid comments in this blog entry, still I think you ignored mentioning the 900 lb gorilla in the room about why Web apps are currently ascendant. The 900 lb gorilla would be installation and updates. Those problems really just don't exist in the world of web applications like they do for standalone applications. Even though Eclipse RCP has made some (very very bumbling) steps forward with P2, it is not nearly what is needed. This to me is the number one reason people fight with web frameworks, templating technologies and hybrid setups like Flex w/Java.

Michael Galpin said...

@will -- Cross platform is overrated and only a consideration for technology people. Sure sounds like you are drinking the Chrome OS kool-aid.

@Chris -- The title was a reference to PPK's post. Glad you liked my post though.

@Claus -- I view network enabled as a given. The reason for the post was the argument that in the mobile space web apps (i.e. apps whose UI runs in a browser) should be favored over native apps. One of the arguments for this is that web apps have won over native apps on the desktop. I don't think this is a given.

@James -- That is a good point, but I intentionally tried to stay away from a feature comparison. Instead of arguing one way or another, I am simply observing what kind of choices that users make in situations where they have a choice.

Lunatic said...

We all know what a web application or desktop client is. The way I see web applications is as a magic bowl, where facebook changes to twitter with one flick of weblink. The UI interface transforms with minimal action, unlike desktop clients like word or outlook. Gmail or google docs are not even close to the kind of features and flexibility that outlook or word is giving us.

This can be a popular argument from web application world that your browser is the Operating system where nothing has to be installed the same functionality can work on super computer or mobile devices. If that's the case there is no reason buying high end smart phones and more powerful laptops, the Computing world would have crunch down to netbook. But that's not what is happening in current world. Even portable devices like smart phones are much powerful than a desktop a decade ago, this made new market for mobile applications. Mobile phone will become more and more sophisticated and there will be a time we will reach a yielding point where managing Apps on a mobile phone would become challenging, may not be now but three four years from now. That is when the web applications going to rule them. Already we see that change in Enterprise web application. Visionary companies like google realized this fact and trying to build their application infrastructure on browser as OS.

grace said...

Adding simple application from web to mobile is easily to apply,some flash designer programmer develop web apps such as themes,gif,wallpapers, and images.

patrick said...

Nice template! application development

michaelvk said...
This comment has been removed by the author.
fundoo said...

Thanks for the information, we will add this story to our blog, as we have a audience in this sector that loves reading like this” web development

joseph said...

Hey, nice site you have here! Keep up the excellent work!

Web Developers in Melbourne

web design company said...

But i don't hope so.They are helpful in making the effective website designs.But all are not in the same way Ofcourse.But u have made good points on that.

Website developers said...

Superb quality content. The web developers discussion is quite better and is effective

Web developers India said...

It has been reported in the post tat web developers are stupid and arrogant. Read the post to know more

lee woo said...

Memory is a fascinating trickster. Words and images have enormous power and can easily displace actual experience over the years. See the link below for more info.


Jack Son said...

This information is impressive..I am inspired with your post writing style & how continuously you describe this topic.
Web Development

Zinavo Bangalore said...

Thanks for taking time for sharing this article, it was excellent and very informative. Its really very useful of all of users. I found a lot of informative stuff in your article. Keep it up.Website Designing Company Bangalore | Website Designing Company Bangalore

Mike Flower said...

Thanks for sharing about "Web Developers Are Stupid and Arrogant"...............