• No results found

7.4.1 Introduction

Django has already been assessed earlier in the project when it was assessed against Ruby on Rails and Struts using a number of criteria. The purpose of this section is to evaluate Django differently as the author will use his personal experiences (in developing the prototype) of using the web development framework to validate the many claims made about Django in online sources.

Presentation Tier Business Logic Tier Database Tier

1. The comments form

Database 2. Preview comments page

3. Acknowledgement page

4. View Comment page

PREVIEW POST POST GET VIEW SEND SEND SEND

7.4.2 Validating claims made about Django

As mentioned earlier, Django has a wealth of documentation and articles online that provide insights to people’s views about the web development framework. There a very few books available about Django, so carrying out an evaluation based on online sources needs to be done carefully. Extracting comments and views from people who have posted on a discussion forum is bad practice as the source’s reliability and trustworthiness can not be assured. The Django website and published articles about Django were searched and examined to find claims made about Django. The author will use his personal experience of using Django to agree or disagree with the claims that have been made. It is difficult for the author to validate every claim that is made about Django online because of the time limitations on this project. So therefore a selection of the most common claims is described below;

(i) “Rapid Development”

Holovaty & Kaplan-Moss (2006), state that Django “encourages rapid development”. Django was developed so that it can be used by a fast moving news co-operation. This meant that breaking news stories had to be quickly updated onto the web application.

The author agrees and believes that Django does encourage rapid development as they provide a developer with a wide range of tools and features that make developing a system fun rather then tedious. For example, the administrative interface (AAI) that is provided is excellent as it reduces the tedious task of creating interfaces for people to manage content. Another example of where Django encourages rapid development is in the administrative forms which are validated and if errors occur they are highlighted. This is important if a large number of forms need to be created. The validation of these forms is carried out by Django.

(ii) “Django’s documentation is great”

Puliatti (2005) declares the Django’s documentation as great because it is easily understandable for beginners and expert developers. The online book provided by the developers of Django is an excellent tool for developers to use and it is free.

The author agrees that the Django documentation is a valuable tool. The author used the numerous tutorials available on the website along with the online Django book which guides a developer through a number of crucial Django concepts in a straightforward and easy manner. The documentation also clearly states how to get Django up and running on the developers PC. Another valuable tool described by Puliatti (2005) is Django’s ticketing system where developers can post issues and errors for the Django developers

to have a look at. This helped the author immensely when the prototype was being developed. The strengths of the documentation are advantageous especially for someone who has not used Django before.

(iii) “Python makes Django attractive to use”

Holovaty & Kaplan-Moss (2006) state that “a web development framework is worthless if it doesn’t save you time”. They go on to exclaim that Django achieves this mainly due to Python. Python makes Django attractive to use for a number of reasons. Firstly, the language is interpreted which means that each time a change is made to the code, it doesn’t need to be complied before the application is run. Simply clicking reload in the web browser would show the latest results of the changes made in the code. Secondly, Holovaty & Kaplan-Moss (2006) state that python is “concise yet expressive”. Studies have shown that a program can be developed in python in fewer lines of code then in other programming languages. (The “hello world” program mentioned in section 3.2.3 is an example). This means that if there are fewer lines of code, there will be fewer errors and bugs in the code (Holovaty & Kaplan-Moss, 2006).

The author agrees with this claim as python had a very important role to play in the development of the prototype system. The author’s previous experience with python helped throughout development as he was familiar with coding practices and other concepts of python. Keeping things simple and concise was advantageous for the author as it allowed the code to remain maintainable. If a change was required in the prototype, the author knew exactly where the change needed to be made (in models.py, views.py or in the templates) as the Django allowed the code to be organised and managed in a straightforward manner. A drawback is that if a developer wants to use Django and has not had previous experience with python, then they will need to understand python before moving onto Django. So therefore, Django may not be attractive for them as it would take a longer time to develop an application as they don’t know python yet.

In summary, Django is very popular development tool and widely received so the claims made above about Django all stress the benefits. As the author has had experience of using Django, he is in a good position to validate these claims and say if they are true or false. Using the experience gained in developing with Django, the author believes that the positive claims made above are true.