Sunday, July 11, 2010

Web Sites vs. Web Applications

ASP.NET programmers tend to be an uppity bunch. I'm only joking, but they do seem to think that their web applications are superior to other platforms, such as PHP. You will hardly ever hear an ASP.NET developer say that they are writing a web site. They will almost always say they are writing a web application.

I'm not disagreeing with them in the slightest. ASP.NET is great for writing web applications, but so is Java, PHP, Python, and Perl. The language doesn't really make it a web application. ASP.NET developers also like to state that their applications are compiled. I won't argue that either. ASP.NET does get compiled.

Now I'll talk describe how these descriptions of ASP.NET are unnecessary.

Let's start with the difference between a web site and a web application. Web sites have been around a long time. To some extent, so have web applications. There are three core languages that go into making a web page. These are HTML, CSS, and Javascript. These are the only languages that all standard browsers can do anything with. All web sites and web applications MUST USE these three languages to offer much functionality in the browser. All client side rendering happens through these three languages.

That is the client side of things. Someone visiting your domain, will only be able to see what their browser shows them. The browser can only handle HTML, CSS, Javascript. I've said this a few times in different ways for a reason. There are the core languages everyone should know. Not only should you know each, but you should learn how each is handled by every major browser.

Start off by writing web sites, which can be written with just these three languages. Web sites are mostly static. In fact, that is the defining characteristic of a web site vs a web application. Web sites are static, while web applications are dynamic. Web sites are simple to make, and one should feel comfortable making them before trying to write dynamic sites.

Dynamic simply means that the user can interact with the site and the site will change depending upon the user's action. Dynamic sites are sites like Facebook, while static sites are sites like RefDesk. Other terms used to describe these two are Web1.0 and Web2.0. Web2.0 is based around social sites and interactive sites, while Web1.0 is the older static web sites. I feel there will always be a need for Web1.0 sites, but I'm glad that there are also good Web2.0 sites. I wonder what Web3.0 will include...perhaps an interactive AI.

Web Applications require a few things that normal web sites don't. They typically use a database, server-side programming language, and usually incorporate AJAX, which is just a fancy name for Javascript sending and receiving information from the server on the fly. These things are what make a web application, not ASP.NET. ASP.NET is simply one of the programming platforms that can be used for building web applications.

ASP.NET compiles server-side code, but that server-side code still has to run using the .NET framework. So there is added bloat to the application. Client side code is translated to HTML, CSS, and Javascript.

I went through all of that to tell you this. ASP.NET is a great way to build a web application, but so is PHP. The major difference is that PHP developers spend more time dealing with HTML, CSS, and Javascript in their raw forms. Also it is easier and cheaper to find a PHP host. One of the most popular web content management systems is Wordpress, and it is written in PHP. It is probably THE most popular and most used web applications and it isn't written in ASP.NET.

Most PHP developers are busy writing web applications, but they aren't bragging about how superior their web applications are to normal web sites. You may hear them simply say that they are developing something.

Can you tell that I'm in a ASP.NET class? This is one of my last classes before I finally get my BS. It's an advanced web development class. During the intro to web development class (also an ASP.NET class), I argued with the professor because he had this very bad attitude about ASP.NET's superiority to everything else. I was reminded of these arguments today, and thought that it would be a great subject for my blog, though I may have been a bit hostile in this post. Whether you program in ASP.NET, PHP, Python, or whatever, they all do the same thing in the end. Just program in whichever one feels best to you. Personally, I can program in ASP.NET, Java, PHP, and quite a few others, but I prefer to use PHP for my server-side code because I'm used to that platform and it feels comfortable for me.

No comments:

Post a Comment