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!

51 comments:

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

    ReplyDelete
  2. Anonymous10:18 PM

    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.

    ReplyDelete
  3. 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 :)

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

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

    ReplyDelete
  6. 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.

    ReplyDelete
  7. Anonymous6:08 PM

    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.

    ReplyDelete
  8. This comment has been removed by the author.

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


    Web Developers in Melbourne

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

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

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

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

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

    ReplyDelete
  15. Anonymous5:11 AM

    Web Design Bangalore If you want to develop techniques, CSS effects or new kinds of transition, for example, do it as a sandbox project.

    ReplyDelete
  16. Amazing blog! It was such a valuable information. Thank you for sharing.
    software companies in Hubli Dharwad | Hubli It companies | It companies in Hubli

    ReplyDelete
  17. I love all the posts, I really enjoyed, I would like more information about this, because it is very nice., Thanks for sharing.
    Yasir Jamal

    ReplyDelete
  18. We are a third party technical support service. Avast Customer Support is here to help you out with the whole procedure to Download Avast Antivirus online, We not only fix your Avast Support related issues but will guide with how to get started with your new Avast product once it gets installed successfully.We at Avast Tech Support provides service to protect your PC from potential online threats and external attacks like viruses, Trojans, malwares, spywares and phishing scams. And Avast Refund. Call on our Avast Phone Number.

    Gmail Customer service is a third party technical support service for Gmail users when they face any technical issue or error in their Gmail account. Our Gmail Customer Support team solves issues like forgot Gmail account password, Gmail configuration or Sync issues, recover deleted emails and many more. Toll Free number (800) 986-9271
    How you install or reinstall Office 365 or Office 2016 depends on whether your Office product is part of an Office for home or Office for business plan. If you're not sure what you have, see what office com setup products are included in each plan and then follow the steps for your product. The steps below also apply if you're installing a single, stand-alone Office application such as Access 2016 or Visio 2016. Need Help with office setup Enter Product Key? Call 1-800-000-0000 Toll Free
    Norton Tech Support is a third party service provider and not in any way associated with Norton or any of its partner companies. We offer support for Norton products and sell subscription based additional warranty on computer and other peripheral devices. Call our Toll Free number 1 855 966 3855
    Other Services

    ReplyDelete
  19. Amazing blog! It was such a valuable information. Thank you for sharing.
    Yasir Jamal

    ReplyDelete
  20. Wonderful blog & good post.Its really helpful for me, awaiting for more new post. Keep Blogging! Web Design And Development Company In Dubai

    ReplyDelete
  21. This comment has been removed by the author.

    ReplyDelete
  22. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog.
    Really very informative post you shared here. Kindly keep blogging.
    If anyone wants to become a Front end developer learn from Javascript Online Training from India .
    or learn thru JavaScript Online Training from India.
    Nowadays JavaScript has tons of job opportunities on various vertical industry. ES6 Training in Chennai

    ReplyDelete
  23. Anonymous8:01 AM

    I really like your writing style, great information, thankyou for posting. web development kuala lumpur

    ReplyDelete
  24. Anonymous6:04 PM

    Is it okay to post part of this on my website basically post a hyperlink to this webpage?mobile marketing agency

    ReplyDelete
  25. I came to your site and have analyzed your post. There is excellent details you posted here. I enjoyed reading your blog, and it is both instructional and enjoyable. web designers sydney

    ReplyDelete
  26. Your posts are always a source of new information for me. Thanks for sharing great posts with us.
    SEO Dubai

    ReplyDelete
  27. Your blog is wonderful. It provides me with the information I was searching for. Thank you.
    PR Dubai

    ReplyDelete
  28. This wonderful post and it helps to improve my online business. so Thanks for sharing this informative information with us. I really like your article you focused on all the important Technologies.

    ReplyDelete
  29. We're living in an era where if you don't have a business online, then you don't have a lot of audience. We should try working as a team for creating wonderful environment for our future. Red Spider

    ReplyDelete
  30. Thank you for your article. I have read through some similar topics! However, your article gave me a very special impression, unlike other articles. I hope you continue to have valuable articles like this or more to share with everyone!
    send cake to mysore
    online cake delivery to mysore
    send flowers to mysore
    online gifts delivery to mysore

    ReplyDelete
  31. Thanks for this article. I work as a developer at IT Plus.

    ReplyDelete
  32. Great Article it its really informative and innovative keep us posted with new updates. its was really valuable. thanks a lot. startup brand company

    ReplyDelete
  33. Thanks for sharing this information SEO Guys

    ReplyDelete
  34. Anonymous10:50 AM

    The growth of web applications is pretty strong and the trend is all set to continue for the next few years. As websites are the face of the businesses, the role of websites and web applications can’t be taken lightly. We at Hakuna Matata Solutions as an experienced web application development company, focus on scalability and security of the applications as we have built more than 100 apps over the last 15 years

    ReplyDelete
  35. Noteworthy post, you have called attention to some mind-blowing center interests. Appreciate your uncommon show about displaying and I concur with your association.
    Freelance Web Designer Dubai

    ReplyDelete
  36. Apply for slot xo with finslot
    Of course, if any player is interested. Or want to come to apply for xo slots games
    slotxo
    slotpg

    ReplyDelete
  37. Nowadays, consumers access websites and web applications on a wide variety of devices, operating systems, and browsers. Hence, developers have to focus extensively on website's user interface (UI) to make it easy to access, use, and navigate. As a robust client-side programming language, JavaScript helps developers to build rich web user interfaces (UIs). python os path join

    ReplyDelete
  38. Good To Read. Thanks for sharing

    ReplyDelete


  39. Hey friend, it is very well written article, thank you for the valuable and useful information you provide in this post. Keep up the good work! FYI, Pet Care adda
    Sita Warrior Of Mithila Pdf Download , IDFC First Select Credit Card Benefits,Poem on Green and Clean Energy

    ReplyDelete
  40. Thanks for sharing such an amazing article. It is very informative.

    How to become a millionaire
    App Ideas
    hire php developers

    ReplyDelete
  41. I am very thankful for this blog helped me lot to understand one of the most important part of digital marketing eCommerce web design Dubai and also found the professional service at best price.

    ReplyDelete

  42. Creative Solutions is web development company saudi arabia and expert in developing responsive website with browser compatibility and user friendly to match .

    ReplyDelete
  43. Buying an office chair in Pakistan from Lunar Furniture is advised if you spend a lot of time in front of a computer. Their chairs are ergonomically designed to promote good posture and have height, tilt, and armrest adjustments.

    ReplyDelete