Is web application development less challenging than desktop application development?

June 16, 2008 – 10:39 am Tags: ,

I have heard several times that what I do is not “real programming” – web application development is supposedly less challenging than “proper” desktop application development. But is it really so?

Argumentation

The arguments are usually as follows:

  1. Desktop languages are more difficult than those used for the web
  2. Web applications aren’t as complex as desktop applications
  3. It’s easier to do a web-based user interface than a desktop UI, because HTML is easy

Not to offend anyone, but I think saying any of the above three only shows that you are ignorant of what’s going on in todays web-development world. Sure, it might’ve been a couple of quickly hacked together Perl-scripts and some HTML back in the day, but it’s a different story today.

Let’s look at the arguments.

#1: Desktop apps can be written in C++ which is definitely a more complex language than what you’d typically use for web development, but in todays desktop world there are other alternatives, like C# and Java – both of which you can use for web development as well. You could use C++ for web too, but is it really suited for that?

#2: This point really depends on the size of the application. A simple website is not very complex, just like a simple desktop application is not complex, but I think some desktop developers don’t realize that many web-developers work on complex sites too. This argument might’ve been true a while ago, though. A lot of things like unit-testing, n-tier architechture etc. was not very common in web-development not so long ago, while they’ve been around on the desktop for a much longer time.

#3: Do you need to test a desktop application with at least 4 different Windows (or some other OS) versions to make sure it displays things the same in each? No? In the web-world, if you’re serious about your website, you want it to work correctly on at least Internet Explorer 6 and 7, Firefox, Safari and probably Opera too, despite its smaller user-base. In the desktop-world, you can also use a WYSIWYG editor to lay out your UI with much less problems than what you’d encounter on the web when doing that.

In addition to these, it should be considered that today to make a website you’re going to need at least four different languages! HTML, CSS, JavaScript and some server-side language, and SQL if you want a database. Do a desktop application, and you’ll need maybe one or two. Granted, HTML and CSS are not very complex, but you have to understand how to do things with them efficiently, how to work around browser bugs, and things like semantic markup etc.

Also, while discussing this with Jason Eisen, he mentioned that web applications have to be built with high performance on the mind, as they will have a lot of concurrent users.

So is it really so?

I’ve recently witnessed a very important web-based application developed by a big company with big money halt and crash because of too many concurrent users. I’m not sure of the exact numbers, but the estimates I heard were quite small for a web site. The application itself was written in JSP, and was basically for doing queries to an Oracle DB and producing different looking results from that.

If anything, the big company should’ve been able to push out an excellent web-based system, especially if web-development was so easy… but seeing how the app was late to begin with…

As far as I know, this company is very well versed in more traditional desktop client-server solutions and database applications. So seeing this, they should’ve aced the web application too, right?

Well, guess it isn’t as easy to develop a web application as you might think.

Share this:

RSS feed Subscribe to my RSS feed

About the author

Jani is a 15 year veteran of the software industry. He's currently available for consulting

  1. 11 Responses to “Is web application development less challenging than desktop application development?”

  2. Fantastic article. Good arguments.

    By T-Enterprise on Jun 16, 2008

  3. I think it’s like comparing apples and pears.. it’s both fruit but not the same.

    I think java applets are somewhere in between (a mango? ;) ) you have some good and some bad from both worlds.

    By Harro on Jun 16, 2008

  4. I think a lot of people have that impression about web development because you CAN do it crude, fast and sloppy and still end up with a working application. As you scale up to “enterprise” applications though (I know, I hate that buzzword too), developing for the web can be a lot more challenging, because nearly everything your application does is more expensive in a web-based environment. And whoever said creating interfaces in HTML/JS is easier than in a desktop GUI designer is frelling insane.

    By Sean on Jun 20, 2008

  5. “Do you need to test a desktop application with at least 4 different Windows”

    Yes, we currently test on Win95, Win98, Win2k, WinMe, WinXP, WinNT and Vista.

    I don’t think that web development is less challenging though, just wanted to make the point :)

    By Stuart on Jun 24, 2008

  6. “It’s easier to do a web-based user interface than a desktop UI, because HTML is easy”. Yup this is very incorect comment. I’ve been programming with Java for long time. Based on my experience I can tell you that web programming is harder and frustating than desktop based esp very complex web application. To do web programming u need many things to learn not only just Java namely JavaScript,HTML,CSS,JSP,JSTL,Struts,Servlet,ORMs,etc while in desktop all GUI programming done in Java. The learning curve is obviously higher for web app. Furthermore, before AJAX is invented in 2005 developing Rich Client Application in same Screen like that of desktop’s is not possible unless you use java applet. Otherwise you will see the GUI is rendered again (flickering) and that is just ugly. But the craziest part is how to make it work for different browsers just like the author said.

    By Gary Purnomosidi on Jun 24, 2008

  7. Just consider Software Engineering: the Web Software Engineering is also known as Complex Software Engineering or even Adaptive Hypermedia Software Engineering. This is because the structure of the code is more heterogeneous and less sequential than “desktop apps”. I think wikipedia could be more precise on the definition :)

    By The Peach on Jun 24, 2008

  8. I think we would be celebrating if web dev WERE simpler than desktop development; IMO it’s just way too ‘hacky’ to ever be clean. Naturally, the core platform (HTML, the web) wasn’t really built with all the ‘richness’ (read:complexity) we desire/require these days in mind.

    I’ve done mostly ‘web app development’ in my career, and weep with joy when I get to do a desktop app; I just find the alternate MUCH more clean and predictable, even if I need to test under multiple OS versions (made a snap with VMs). The current ‘solution’ to (non-Flash/silverlight) RIA is ajax, a morass of just more complexity.

    By Ron on Jun 24, 2008

  9. Yes, we currently test on Win95, Win98, Win2k, WinMe, WinXP, WinNT and Vista.

    Yeah, there are probably some legacy apps that have to be maintained. I’d be quite surprised though if a new app would need to work all the way back to Win 95, or even 98 or Me… it probably would make life harder in ways unimaginable :)

    Naturally, the core platform (HTML, the web) wasn’t really built with all the ‘richness’ (read:complexity) we desire/require these days in mind.

    Yep, that’s definitely a factor today. The technologies (HTML, CSS, JS) probably never were even designed to work together from the start, not on a very complete level at least.

    By Jani Hartikainen on Jun 24, 2008

  10. Well, I guess that’s a misconception people bring from the HTML-static-only days of the web till now (that’s why you mention the argument “HTML is easy”). As we find more and more applications for the Internet, development can range from very simple (HTML-only) to very complex (a bunch of languages, HTML, JavaScript, RoR, SQL). Plus, Web vs. Win argument is mostly about the front-end, just one tier of most system.

    By Buu Nguyen on Jun 25, 2008

  11. A lot depends on what API you use for the windows in a desktop app. I recently coded an editor with wxRuby. After the initial headaches of learning the API everything flowed pretty smoothly and the application works just fine in both Windows and Linux. So no in general I don’t think there is much difference if you choose a nice window API.

    By Henrik Sarvell on Jun 27, 2008

  12. @Gary Purnomosidi – the Ajax design pattern has been around for a while. It really only came into light over the past couple of years.

    By Miles on Jun 27, 2008

Post a Comment

You can use some HTML (a, em, strong, etc.). If you want to post code, use <pre lang="PHP">code here</pre> (you can replace PHP with the language you are posting)