Choosing suitable tools

If you want to develop quality applications, you need suitable tools. Tools, of course, do not guarantee quality, but they can make life a lot easier. When developing web applications, there are two kinds of tools you need to consider: the ones you use to design, build, test, and deploy your application, like editors, version management systems, test frameworks, and maybe a package tool, and the tools that deliver your application to the end user. That last set of tools consists of a whole chain of components, from server operating system, web server, and database engine, all the way to the web browser and the JavaScript libraries used to display and interact with the application.

When we start a project, we have to know which tools we need and have to understand the capabilities and limitations of the many variations of these tools. There are, for example, quite a few JavaScript libraries that may be used to provide cross-browser compatible user interaction.

The trick is to make an informed choice. These choices are not necessarily limited to open source tools. If budget permits, it might be worthwhile to have the benefit of the special features many commercial development tools and libraries offer, but in this book, we limit ourselves to open source and/or free resources. This makes sense as the cost of tooling and licenses in small projects can make a significant dent in a budget.

The opportunity to use free tools might not exist for the deployment environment. You may well develop your application on your own Linux box, but test and deploy it on a Windows server. The latter needs a license that will not be free, but even open source options are not always free. Many companies nowadays shift to deploying their applications to the cloud and even though these machines might be running an open source operating system, you pay not only for CPU power and bandwidth but also for support, the latter being crucial in applications that will lose you money if they are not running. However, using open source tools in general gives you a much wider choice because many tools run equally well on any platform.

In the following sections, we will look at the many components that make up the tool chain and will try to show what arguments were used for the choices made for developing the applications in this book and what (if any) viable alternatives are there. Note that some arguments are quite subjective and the choice finally made does not necessarily indicate that the alternative is bad; we certainly are not attempting to start flame wars over which tool is better. We simply list requirements for application development as we see it and try to find the tools suitable for the task. In some situations, another tool might be better, but for this book, we try to find a matching toolset that can be used for all sample applications that are free (as in beer) and easy to learn and use.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.221.179.220