There are three programming models for web applications. One is creating purely static HTML / CSS pages that live on a server somewhere. Returning static pages is extremely fast and will create a great user experience from a hosting perspective. But most applications also need to have some code (logic) running.
A second method is used when you need dynamic applications, which requires you to layer in some code. The way this was done for years was with some server-side code where each page view ran some custom code on the server that changed the HTML returned by the server. This is still probably the fastest way to develop a dynamic web application.
Web development is a large portion of the projects we do at Don’t Panic Labs. Some developers love web development, some developers…not so much.
Why do some developers dislike web development? A common pain of web development is that it is a good amount different than traditional client software development. In traditional client development, everything lives in a single process. This is more familiar to many developers. Also, traditional client development is often in languages people are more familiar with, such as C# or VB.NET.
But you may be wondering why use web technologies? Why not just make everything a native application? There are three good reasons to use a web application:
- Easy deployment. Web development solves many of the deployment issues associated with other projects.
- Talent pool. There are a lot of web developers out there, and these necessary skills are usually easier to come by.
- Freedom. Web application development offers a ton of freedom. There are few limits to web development.
Are there some situations when you don’t want to use web technologies? You bet.
- Web applications won’t be found in the iOS App Store or in the Google Play Store.
- If you need access to native device features, such as the camera or GPS. You can use those features on a web page, but you often get better access when building a truly native app.
Web applications are not a silver bullet for all solutions, but they can be used to solve a number of problems.
If you have more questions about web development, hit me up on Twitter or respond in the comments below.