## 6 Discussion  
In this section, we delve into the findings and implications of our study, addressing each research question (RQ) in turn. We first explore the current state-of-the-art in the field of intelligent source code completion assistants (RQ1). Subsequently, we discuss the available intelligent assistants and their functionalities (RQ2). Finally, we examine how developers rated the usefulness of these intelligent assistants (RQ3). **RQ1**: _What is the current state-of-the-art in the field of intelligent source code completion assistants?_  
Our systematic literature review clarified the concept and primary functions of intelligent assistants. These assistants outperform traditional ones by using machine learning to detect patterns in extensive source code databases [4]. By analysing diverse code from various sources, they recognise common patterns and understand developer intent better, offering more effective assistance. Some intelligent assistants interpret natural language, allowing them to leverage comments and variable names in code continuation. Consequently, they offer developers more pertinent and precise suggestions [7; 36]. We pinpointed the key functionalities of intelligent assistants. The most common is the **generation of program continuation suggestions based on context**[25; 38], aligning with the essence of source code completion. Assistants provide developers primarily with program continuation suggestions, reducing development time [7; 29]. In addition to faster development, they promise quicker API searches [23] and enhanced code quality [7]. The essential functionalities include word completion [21], API exploration [2], and suggestion [28]. However, automatic variable naming [1] and natural language-based code generation [7] remain uncommon. **RQ2**: _What intelligent source code completion assistants are currently available, and what functionalities do they offer?_  
Many authors develop source code-completion approaches, but few concretise them and use them to create one of the intelligent assistants. When we set about testing and describing the intelligent assistants mentioned in Table 3, we realised that some were still in the testing phase or unavailable to the general public, so we could not test them. Therefore, we included four intelligent assistants in the comparison. **GitHub Copilot** turned out to be the **most advanced**, as it supports even the most demanding functionalities, such as generating entire sections of source code, naming variables, and generating source code based on natural language. However, it does not support some basic functionalities, such as displaying all the accessible attributes and methods of an object. Regarding capabilities, it is followed by **Tabnine**, which is inferior in that it can suggest an entire line but not name variables. However, it allows API exploration and is available for most IDEs. **Kite** is similar in capability to Tabnine, except that it does not support natural language source code generation. **IntelliCode** was the least capable, generating only one-word suggestions. \begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline \multicolumn{6}{c}{**Less Experienced N = 21**} & \multicolumn{6}{c}{**Experienced N = 47**} \\ \hline  & Mean & Standard Deviation & Shapiro–Wilk & Mean & Standard Deviation & Shapiro–Wilk & t(51) & p & d \\ SUS & 58.46 & 11.57 & 0.611 & **68.31** & 16.62 & 0.175 & \(-\)1.98 & 0.053 & 0.67 \\ UEQ-s & 0.63 & 1.04 & 0.737 & **1.08** & 1.14 & 0.299 & \(-\)1.27 & 0.21 & 0.41 \\ UEQ-p & 0.23 & 1.01 & 0.806 & **1.04** & 1.12 & 0.269 & \(-\)2.33 & 0.024 & 0.76 \\ UEQ-h & 1.04 & 1.3 & 0.98 & 1.11 & 1.41 & 0.045 & \(-\)0.15 & 0.879 & 0.05 \\ NPS & 6.77 & 2.62 & 0.09 & 6.83 & 2.58 & 0.004 & \(-\)0.07 & 0.946 & 0.02 \\ \hline \hline \end{tabular}
\end{table} 
Table 9: Descriptive statistics, Shapiro–Wilk test, and \(t\)-test results for independent samples and effect sizes according to knowledge of intelligent assistants.