Web Development – Executive Summary
Web development often involves a few components. First is developing the markup (HTML) that runs in a web browser. Second is developing the application style, which is often done using CSS. Third is some client-side application logic, possibly written in JavaScript. Fourth is a backend running on a server somewhere.
One interesting aspect of web development is that the client is a web browser. This is both good and bad. The good is that it’s a known programming model and a known hosting model. The bad is that each browser is a little unique and working with many different browsers often requires some custom HTML / CSS / JavaScript.
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.
Today, a third method that many applications are moving toward is often called a single page application (SPA). With an SPA, all of the HTML / CSS / JavaScript is returned to the client when the site first loads. From that point on, small amounts of data are sent back and forth between the client and the server. The SPA model can provide the best user experience, but it puts a lot more demands upon the browser.
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.
Why do some developers love web development? It offers an extremely quick return on investment – call it quicker gratification. Many web development workflows involve updating the HTML and refreshing the page in a browser. That quick return on effort is extremely appealing. Web development is also incredibly open. Anyone can do it, most of the tools are free (often open source), and there are a ton of great resources for learning. And there is JavaScript (which some developers love while others…not so much).
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.