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:
- Desktop languages are more difficult than those used for the web
- Web applications aren’t as complex as desktop applications
- 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.