forked from software-engineering-amsterdam/latex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ch-eval.tex
100 lines (85 loc) · 4.8 KB
/
ch-eval.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
% !TEX root = thesis.tex
\chapter{Evaluating the Need for CSS Code Conventions}
\label{sec:evaluating}
This chapter focuses on the question whether CSS is still handcrafted. In the
Research Method section the used research approach is presented. The Results
section contains a summary of the obtained data. The Analysis section
comprises a discussion of possible issues with the research method and
an interpretation of the results.
\section{Research Method}
Despite the new features added in the second~\cite{CSS2} and third~\cite{CSS3}
versions of CSS, the language has obvious limitations, for example, lack of
variables. A number of preprocessors have evolved to tackle the downsides of
CSS. Solutions such as SASS~\cite{SASS}, LESS~\cite{LESS} and
Stylus~\cite{Stylus} offer enhanced or even different syntax and translate it
to CSS. Preprocessors are not only ubiquitously recommended, but also widely
adopted in practice. The presence of such solutions poses the question whether
conventions for CSS are required at all. If nowadays CSS is generated and not
maintained, the need for CSS conventions is substituted with need for
preprocessor conventions.
To determine whether CSS is still handcrafted, all commits to open source
repositories hosted on GitHub for the period Jan--Apr 2015 were analyzed. To
differentiate between plain CSS and preprocessor code, the extensions of all
files in the commits were inspected. In case the commit contains a file with
extension \texttt{.scss}, \texttt{.sass}, \texttt{.less} or \texttt{.styl}, it
is considered preprocessor maintenance. In case the commit contains files with
the \texttt{.css} extension and no preprocessor extensions, it is considered
maintenance of plain CSS. Since the main objective of the search is finding
maintained files, only files that have been modified are taken into
consideration. Files that have been added are excluded from the results, since
developers often add third-party CSS libraries to their repositories.
\section{Results}
To find repositories that contain a commit in the time internal January--April
2015, GitHub's public dataset available on Google
BigData\footnote{\url{https://bigquery.cloud.google.com/}} was used. As a result, a
total of 2,331,864 public repositories were found. While the majority of these
repositories were analyzed successfully, 13\% of the cases could not be
processed. Specifically, 253,611 repositories have been made private since
April and are no longer available for download. Additionally, 41,274
repositories were of extremely large size and could not be handled due to
memory constraints. As a result, 87.4\% of the repositories were analyzed
successfully, 10.9\% are no longer in the public space, and 1.8\% are
extremely large (\autoref{repositories}).
\begin{figure}
\centering
\caption{
\label{repositories}
Number of analyzed repositories}
\begin{tikzpicture}
\pie[rotate=90, text=legend]{1.8/Unprocessed, 10.9/Gone Private, 87.4/Processed}
\end{tikzpicture}
\end{figure}
In the period from January to April 2015, a total of 2,282,788 commits that maintain
any form of CSS were made to the successfully analyzed repositories. The
number includes commits that contain both preprocessors and plain CSS. More
than half of them, specifically 1,340,217 of these commits maintain plain CSS,
while the rest of the commits contain at least one preprocessor file. As a
result, 58.7\% of all CSS related commits are still maintenance of plain CSS
(\autoref{commits}).
\begin{figure}
\centering
\caption{
\label{commits}
Number of analyzed commits}
\begin{tikzpicture}
\pie[rotate=90, text=legend]{41.3/Preprocessors, 58.7/Plain CSS}
\end{tikzpicture}
\end{figure}
\section{Analysis}
There are a number of limitations that need to be considered before
interpreting the results of the conducted research. First, the search is
conducted on a single hosting platform --- GitHub. That said, currently GitHub
reports having over 10 million users and 24 million
repositories~\cite{GitHub}, which makes it the largest code host in the
world~\cite{gousios2014lean}. Second, the search is narrowed to the publicly
available repositories. Thus, it lies on the premise that there is not a
significant difference between the public and private repositories hosted on
the platform. Third, the search detects only the four most popular
preprocessor extensions and omits other preprocessors. It is possible that a
number of custom preprocessors are used in practice. However, it is assumed
that the number of such commits would not increase the number of total CSS
commits to the extent at which the percentage of plain CSS commits is
significantly diminished.
Having the above limitations in mind, the search provides evidence to conclude
that despite of the popularity of preprocessors, plain CSS is still
handcrafted on GitHub in the beginning of 2015.