-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfinal_report.tex
134 lines (109 loc) · 4.87 KB
/
final_report.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
\documentclass[a4paper,11pt,abstract=on,thesis,twoside]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{mathptmx}
\usepackage[toc,page]{appendix}
\usepackage{listings}
\usepackage{color}
\usepackage{pdfpages}
\usepackage{lipsum}
\usepackage{float}
\usepackage{textcomp}
\usepackage{bookmark}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{fancyhdr}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage[head=15mm,inner=35mm,outer=20mm]{geometry}
\usepackage[style=apa,citestyle=apa,backend=biber,hyperref=true,apabackref=true]{biblatex}
\usepackage{hyperref}
\usepackage{doi}
\DeclareLanguageMapping{english}{english-apa}
\addbibresource{final_report/bibliography.bib}
% \setkomafont{disposition}{\normalfont\bfseries}
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\lstset{frame=tb,
aboveskip=3mm,
belowskip=3mm,
backgroundcolor=\color{white}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}; should come as last argument
basicstyle={\footnotesize\ttfamily}, % the size of the fonts that are used for the code
breaklines=true, % sets automatic line breaking
captionpos=b, % sets the caption-position to bottom
commentstyle=\color{mygreen}, % comment style
columns=flexible,
keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
keywordstyle=\color{blue}, % keyword style
language=Python, % the language of the code
numbers=left, % where to put the line-numbers; possible values are (none, left, right)
numberstyle=\tiny\color{mygray}, % the style that is used for the line-numbers
numbersep=0pt,
rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
showstringspaces=false, % underline spaces within strings only
showtabs=false, % show tabs within strings adding particular underscores
stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered
stringstyle=\color{mymauve}, % string literal style
tabsize=2, % sets default tabsize to 2 spaces
postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space}, % line breaks with arrows
}
\renewcommand{\lstlistingname}{Code}
\renewcommand{\lstlistlistingname}{List of Code Blocks}
\raggedbottom
\title{
{Evaluation of a Haskell Web Framework}\\
{\large Aston University}\\
{\large BSC Computer Science}
}
\author{Junaid Ali Rasheed}
\begin{document}
\pagenumbering{roman}
\maketitle
\includepdf[pages=-]{pdf_documents/Final_Year_Project_Definition_Form_Signed.pdf}
\tableofcontents
\listoffigures
\lstlistoflistings
\begin{abstract}
In this report, we have evaluated a Haskell web framework. We did this by comparing
two websites, one made in a Haskell web framework called Yesod, and another made
in a Python web framework in Django. These websites were functionally identical
and were used to support our evaluation by running various experiments including
page load speeds and load tests. We also compared the documentation and community
support available for both frameworks. After evaluating all of our data, we came
to a conclusion that Yesod is a web framework that is ready to be used in a production
environment. Yesod is already being used on websites that have millions of users,
and has outperformed Django in the various tests that we performed. We found that the
type safety of the Haskell language will catch various bugs that may occur when
developing a website, but we also acknowledge that some developers prefer the dynamic
typing of a language like Python. In conclusion, we would recommend Yesod to
developers who are looking for a new web framework and are either experienced
in Haskell or are willing to dedicate time to learn the language.
\end{abstract}
\cleardoublepage
\pagenumbering{arabic}
\pagestyle{fancy}
\include{final_report/1_introduction}
\include{final_report/2_background}
\include{final_report/3_preparation}
\include{final_report/4_deliverable}
\include{final_report/5_evaluation}
\include{final_report/6_conclusion}
\printbibliography[heading=bibintoc,title={References}]
\begin{refsection}
\nocite{*}
\printbibliography[heading=bibintoc,title={Bibliography}]
\end{refsection}
\begin{appendices}
\include{final_report/experiments}
\include{final_report/instructions}
\chapter{Project Diary}
\input{project_diary_content.tex}
\chapter{Ethics Form}
\includepdf[pages=1]{pdf_documents/seas-ethics-student-project-CS-FYP.pdf}
\end{appendices}
\end{document}