Developing for the Web
The Web is undoubtedly a powerful platform for application development. However it must be noted that the fact that it is a powerful platform does not mean that every Tom, Dick and Harry of an application is best suited for the Web (if no application comes to mind, think of your favourite 3D game and mine is Need For Speed).
Developing on the Web is fraught with many challenges. A lot has been written about the difficulties involved with developing for the Web. Many of the challenges stem from the fact that the Web was built for displaying mere text documents. Another reason is that the web applications are distributed applications and distributed applications carry with them their own challenges such as sending data across the layers of the application, security and so on. To make matters worse, Web standards implementations are not always the same.
Approaches to Web Development
Two main approaches are dominant in the Web Development landscape. The first being, the Native Web Applications (Client and Server-side Scripting) and the other being Rich Internet Applications.
Native Web Applications use technologies like PHP, JSP and others have been used to quite successfully in many implementations. They involve using some server-side technology to spit out HTML, CSS, Javascript dynamically that the browser as the client can understand. The development model is quite like Web design rather than application development.
RIA frameworks like GWT, Silverlight and Flex attempt to provide a programming model that programmers are used to and avoid browser quirks. The idea is to provide a higher abstraction and a model that programmers have been accustomed to through desktop application development.
In my next post, I will explore the foundations that are required to develop web applications.