exit-popup-close
We can write it better! Just try!

Choose your writer among 300 professionals!

close

Which Programming Language Developers Prefer For The Development? A Study Using Stackoverflow

Download PDF

Stack Overflow is the most popular Q&A website which is used by developers and programmers for many developments and programming purposes. Stack Overflow commits are occur based on various types of programming languages. But among all the languages which are more reliable and helpful for programmers is a burning question. We researched over Stack Overflow commits and reached in a conclusion. Our main target was to analyze over Stack Overflow commits and give a result which can raise the confidence level of a programmer. In this research, we will show which language and platform are better for developers and programmers. We used 1139 Stack Overflow related commits, analyzed them and came to an end that in “JavaScript” language programmers involve most and in “Java”, response time is less than other languages. We also found that in “Python”, programmers have a large probability to get an answer. We also analyzed different platforms in Stack Overflow and found that “Web Design” is the most helpful platform among all the platforms. From our research developers and programmers can now understand which platform and language they should choose.

Essay due? We'll write it for you!

- any subject

- min. 3-hour delivery

- pay if satisfied

Get your price

Introduction

We all heard the name of Stack Overflow. A well-known term for the programmers and developers. It is an online Q&A site. People crowd there when they face any problem related to programming, development, API usage and for other purposes. Asked a question and get answers from well and experienced programmers, developers and people related to technical subjects. As a beginner, developers and programmers face some problems like which platforms are trending, which programming language programmers should select, for which platform stack overflow is most helpful etc. These are the burning questions for all. Our work is about considering the facts. Our work is to find out which platforms are preferable for a developer as a beginner and which programming languages are used most and among them which one is popular. We used a Stack Overflow dataset. In our work, we found out some interesting things about Stack Overflow. We calculated numbers of commit occurs, minimum response time needed for any type of questions, vote according to accepted answers and we also kept track on programming languages programmers mostly used and all the calculation happened on the basis of different types of platforms.

Background

We have done a survey on some well-experienced developers and programmers and found out the helpfulness of stack overflow. 90 percent said that when they faced any problem in programming, developing and a problem occurs in any API use they were trying to solve it using stack overflow. They depend on stack overflow. Another 5 percent don’t have any idea about any Q&A sites. When they faced any problem they just googled it and get the solution from any Q&A sites and apply it. Sometimes they took help from stack overflow, but we didn’t consider them as a regular stack overflow user. Rest 5 percent solved their problems by their experience or they needed someone help to solve their problem.

We were motivated by some other studies. For example, Abdalkareem, Shihab, Rilling qualitatively analyzed over Stack Overflow related commits and their research purposes were to find out what reasons developers resort to stack overflow, what areas crowds are most helpful for developers and what areas have the longest response time. However, the basic differences in our study were that we researched programming languages and development platforms. This research gives us confidence in some issues. First, Stack Overflow helps programmers and developers over particular code commit of crowds. Second, this research helps us to analyze a large dataset. Third, this research was over both language and platform which is helpful for all kinds of programmers and developers about their career.

Related work

We read some papers published in different types of conferences or journals. We mentioned some papers related to our work. Abdalkareem, Shihab, Rilling mentioned how developers use crowds for their development purpose. They also found out [3] how developers reuse code over Android from Stack Overflow. Barua, Thomas, Hassan found that web and mobile development are most popular in Stack Overflow and they also proposed a semi-automatic approach to study general topics. Rosen and Shihab shows how mobile developers get helps from Stack Overflow. Vasilescu, Filkov, Serebrenik shows how Stack Overflow effect on developers. Zagalsky, Teshima, German, Storey, Poo-Caamano analyze on the use and effect of Stack Overflow over the programmers.

We motivated to research over Stack Overflow after reading these papers. Our research had some kinds of similar goals for developing purposes. But there were many differences between these research and ours. We decided to find out which language should a programmer choose for different purposes. Moreover, we give a decision over their career by analyzing over the platforms.

Study design & Approach

Our goal was to give a decision to programmers and developers about their learning programming and developing careers. We analyzed Stack Overflow related commits and determined which platform is most helpful, which platform has more commits, in which language programmers are more involved, which language is most helpful. To determine this we first collected Stack Overflow related commits, analyzed them and found out helpfulness and response time.

Dataset Collection

First, we needed a huge number of data to research over Stack Overflow related commits. It was important to analyze a huge number of data in order to improve the efficiency of our research results. The larger the number of data, more accuracy of the result. For selecting a huge number of data, we studied on the GHTorrent dataset and its tool suite. We collected data commits from GHTorrent up to 2015. These commits were related to different kinds of popular programming languages. Such as JavaScript, Java, Python, C, C++, C#, Ruby and so on. Considering our selecting criteria, we selected about 1,048,576 commits. In the next step, we isolated the required data and moved forward to our work.

Extracting Stack Overflow Related Commits

From all selected commits, we had to isolate Stack Overflow commits. To do so, we performed a string pattern matching technique. According to this technique, we searched all the commits which consist of the term ‘stackoverflow’. After performing the string pattern matching technique, we found 1418 Stack Overflow related commits. We removed duplicate, irrelevant, inconsistent and noisy data through manual inspection over all Stack Overflow related commits. After removing these inappropriate data, we got 1139 commits. All of these commits contained Stack Overflow commit link. Every commit represents a query of users.

Classifying Stack Overflow Related Commits

After collecting all the Stack Overflow related commits, we inspected all the links from these commits. We analyzed every commit iteratively and it helped us to categorize which type of question it is. We read every Stack Overflow commits and it helped us to decide, how to categorize them. This categorization based on ‘platform’ where developers are mostly involved. We ended up with 10 different types of platforms, in which a programmer or developer can step forward to his future movement.

We also categorized these commits based on different programming languages. We inspected every commit link and categorized these commits based on the languages that the user asked. We identified languages from tags related to each question. Among all the commits we got about 656 commits related to programming languages. Table I shows all the programming languages and their corresponding commits.

In human nature, they give the biased opinion. We wanted to check the validity and accuracy of this classification. For that, we followed a reliable statistical method to find out the inter-rater agreement for qualitative items. We used Cohen’s Kappa coefficient to evaluate the level of agreement between the two annotators. To examine the validity and accuracy of this classification, we got one Ph.D. student and one BSc (Honors) student. We took their perception of the classification and evaluated Cohen’s Kappa coefficient on the basis of their perception. The measuring coefficient is scaled to -1.0, 0, + 1.0. Here -1 represents lower than chance agreement, 0 represents the exact chance agreement and +1 represents higher than the chance agreement. We got the value of Cohen’s Kappa coefficient is +0.84, which is the level of agreement between the two annotators. This result considered as excellent agreement.

Measuring the Helpfulness and Delay of Stack Overflow Posts

Our next target was to measure the helpfulness and response time of individual platforms and programming languages to find out the best one. The votes (signed by a green mark) of the accepted answer denotes the helpfulness of a commit. Our intuition is that if an accepted answer is helpful to a developer or a programmer then they will give it an upvote, which means that this accepted answer is helpful. When an accepted answer gets more vote, we can consider it more helpful. After measuring individual post’s votes, we divided them into different platforms and languages. We calculated the median of the votes of individual’s platforms and languages.

The delay time was calculated by the difference between the asking time and the time of accepted answer. The delay time to get an answer of a commit was calculated in the hour as a unit. The larger response time means a larger delay time and it is negatively perceived. After collecting the delay time to get an answer of a commit, we separated the commits in the same type of language and platform. The median of delay time was calculated for each language and platform.

Results

To determine which platform and language developers or programmers should choose according to Stack Overflow, we divided our research into some main parts. We associate a question for each part of our research:

RQ1.What are the main platform developers involved to Stack Overflow?

RQ2.Which platforms are most helpful to developers in? What platforms has the longest response time to attain answers from the crowd?

RQ3.What languages have less response time to achieve answers from the crowd?

RQ4.Which language has more probability to get an accepted answer?

Answering

RQ1 helps us to determine which platform developers are more involved so that we can understand that, these platforms are now on trending. Answering RQ2 helps us to understand for which platform crowd is more helpful to developers. We can understand which platform is more responsive and which one can be easily developed by getting help from Stack Overflow. Answering RQ3 helps us to understand which language has less delay time. Answering RQ4 we can find out which language has more probability to achieve the accepted answer. It helps us to understand, on which language programmers have more probability to get a solution to their faced problem.

RQ1. What are the main platform developers involved to Stack Overflow?

We mentioned earlier that, we examined each commit post and classified them into different platforms. We read every commit and understood, which platform it was. We incremented the value of the count for each platform when we got a new commit related to the corresponding platform. Then we grouped them according to their platform name.

We made 10 different platforms for these commits. We have grouped these platforms into 4 high-level categories, like ‘Mobile Application’, ‘Web’, ‘Database’, ‘Desktop Application’. Among all the commits, some commits were platform related and some were non-platform commits. We considered the platform related commits for our purpose. Table-II shows that individual platforms commit percentage among all the platform related commits. From Table-II we found that developers resort to the crowd on Stack Overflow mainly for ‘Web’ purpose. In ‘Web’ section ‘Web development’ has 32.2%, ‘Web framework’ has 27.37%, ‘Web design’ has 7.87% and ‘Web server’ has 1.61% of platform related commits.

Also, we found that ‘Mobile Application’ gets the 2nd highest platform related commits. In ‘Mobile Application’ section ‘Android’ has 8.77% and ‘iOS’ has 5.37% of platform related commits. Developers also involve to ‘Desktop Application’ platform, where both ‘Windows’ and ‘Linux’ has 4.83% and ‘MAC’ has 2.69% of platform related commits. ‘Database’ related commits are 4.47% of the platform related commits.

RQ2. Which platforms are most helpful to developers in? What platforms have the longest response time to attain answers from the crowd?

We identified different platforms where developers asked their questions to the crowd. We calculated the helpfulness and the response of these platforms. Table-III shows the number of questions, the median number of votes, the number of accepted answers and median of response time (hours) to obtain an accepted answer for each platform. From this table, we can see the ranks of platforms, according to the votes and response time. Here, we considered voting as helpfulness. Ranking of helpfulness is in ascending order based on the median of the votes. The raking of delay is based on the median of response time (hours).From Table-III, we can say that web design, web development, MAC, etc. platforms have a maximum median number of votes. Web server, windows application, android, etc. have less number of the median of the votes. So, web design is more helpful for developers. Web design, Database, Linux, etc. platforms have less number of the median response time. So, web design is more responsive to the developers. Web server, iOS, web framework has a huge median of response time.so, they have a long delay to give an answer.

We combine ranking of both helpfulness and response time of platforms in Figure 1. We use bubble plot in Figure 1, that plot the rank of helpfulness vs. rank of response time for each platform of Stack Overflow. The size of the bubble represents the total number of commits for a particular platform. From this plot, we can say that ‘Web Design’ is better, according to both helpfulness and response time. From Figure 1 we also can see ‘Web Development’ has the most number of commits and good helpfulness. ‘Web Server’ has very less number of helpfulness and also very high delay. ‘Windows’ and ‘iOS’ has respectively less helpfulness and high delay. In such situations, developers can search for answers to their questions in other resources because the crowd on Stack Overflow may not be the right resource. The x-axis of the plot shows the ranking of helpfulness (median of the votes) and the y-axis shows the ranking of the median of response time (hour) of all platforms. The size of the bubble represents the number of commits.

RQ3. What languages have less response time to achieve answers from the crowd?

When we examined every commit, we noticed that the maximum of the commits were related to different types of programming languages. We separated them and grouped them according to their corresponding languages. We collected response time (hour) of each commit. Then we calculated the median of the response time of every programming language. Figure 2 shows that ‘Java’ is the most responsive language. ‘C++’, ‘C’ have also comparatively lesser response time than other languages. ‘Scala’ has a huge delay time. In such a case, programmers can get help from other resources because the crowd on Stack Overflow take more time to answer in this sector.

RQ4. Which language has more probability to get an accepted answer?

Our next goal was to find out which language has more probability to get an accepted answer. These findings helped us to determine what experts are more involved in that language and gathering knowledge in this language becomes more beneficial for the programmers. We collected a number of accepted answers for all languages. We considered those languages which have 40 or more commits. For increasing the efficiency rate, we discarded languages which have a small number of commits and sometimes we could see its magnitude is quite high. Also, we considered 40 commits as a standard, languages which are mostly used and more popular than others.

From Figure 3 we can make a decision that ‘Python’, ‘C++’ have more probability to get an accepted answer than others. All of these languages have similar kinds of probability because these languages have almost the same popularity level and programmers are more engaged in these languages.

Observation

At the end of our research, we discovered three key observations which will impact on developers and programmers career decisions based on Q&A websites. The first observation may be helpful for developers to take their decisions about career according to the Q&A website. The second observation can help the developers with the reasons they can get a proper solution to their question. From the third observation, programmers can get the exact knowledge about different programming languages.

Observation 1. Making developer’s career decisions using the crowd

Our research result shows that ‘Web Development’ has the most number of commits and a large number of accepted answers. So, if a developer wants to make his career in web development, then crowds on Stack Overflow turns into a big helping hand for him. Because a large number of commits are related to web development means a huge number of developers engaged in it. From our research, ‘Web Design’ covers a strong area where helpfulness is high and it takes very less response time. If anyone feels an interest in web design, then it takes a very short time to become a complete web designer through Stack Overflow.

Observation 2. Using the crowd for more than Just platform or language

In Stack Overflow, there is not only commits related to platforms and programming languages, but also a huge number of commits related to non-platform. Areas like API usage, development tools, etc. have a huge number of commits. Stack Overflow is equally helpful for the platform and non-platform region. So, a developer can use the crowds on Stack overflow to gain knowledge about some areas which are not related to any platforms or languages and we consider Stack Overflow informative for these kinds of areas.

Observation 3. Getting much knowledge about different programming languages

In our research, we found ‘Java’, ‘C’, ‘C++’ languages have very less response time. Thus, if any programmer wants to learn about these languages, then they will get a fast response from the crowds. ‘C++’ has advantages in both response time and the probability of getting an accepted answer. So, in ‘C++’ Stack Overflow crowds take a huge part in giving a perfect answer in less time. Some other scripting languages like ‘JavaScript’, ‘PHP’ have similar helpfulness as others. If anyone is eager to learn any of them, he or she will be able to learn about web and server related tasks in a short time. ‘Python’ has a big accepted answer probability. Programmers have a great possibility to get an accurate answer to their corresponding question about python.

Limitations

The working procedure of this research has some lacks. We worked with the 2015 GHTorrent dataset, it is our research drawback. If we work with the latest dataset, there may be a certain change in our research result. As a human, for some reason, we gave the biased opinion. Sometimes in our research, we made a biased decision in some fact where it is difficult to determine. We used GHTorrent dataset because it is free and available. If we used another dataset, there could be some change in our research result.

Conclusion

In this research, we investigated the most helpful language for a programmer and the most helpful platform for a developer. Nowadays the importance of the Stack overflow is increasing more and more. Most of the cases, our research seems very helpful for those users who are attached to technical tasks like programming and developing. Our research result will lead to the new Stack Overflow users to determine, what they should learn. It provides a better way to take the decision to build an efficient and bright career opportunity.

Disclaimer: This essay has been submitted by a student. This is not an example of the work written by our professional essay writers. You can order our professional work here.

paper Download essay
74 writers online and ready to help you with your essay
close

Sorry, copying is not allowed on our website. If you’d like this or any other sample, we’ll happily email it to you.

By clicking “Send”, you agree to our Terms of service and Privacy statement. We will occasionally send you account related emails.

close

Thanks!

Your essay sample has been sent.

Want us to write one just for you? We can custom edit this essay into an original, 100% plagiarism free essay.

thanks-icon Order now

More Essay Samples on Topic

Eduzaurus.com uses cookies to offer you the best service possible.By continuing we’ll assume you board with our cookie policy.

Do not miss your deadline waiting for inspiration! Our writers will handle essay of any difficulty in no time. Want to get a custom essay from scratch?
Do not miss your deadline waiting for inspiration! Our writers will handle essay of any difficulty in no time. Want to get a custom essay from scratch?
Do not miss your deadline waiting for inspiration! Our writers will handle essay of any difficulty in no time. Want to get a custom essay from scratch?