dataesr/scientific-paragraphs-categorization huggingface dataset:
IV. EMPIRICAL EVALUATION In this section, we investigate the research questions described in Section I to assess the popularity of programming languages. We investigate beforehand the dataset to ensure that most of the projects are non toy projects of substantial sizes. To this end we count the total lines of source code (LOC) in each project. Fig. 1  plots the percentages of projects with different numbers of lines of source code. Over 70% of the projects contain more than 1,000 LOC. Around 35% of the projects include more than 5,000 LOC, while more than 20% contain more than 10,000 LOC. Finally, over 600 projects contain more than 1,000,000 LOC. This distribution suggests that a significant number of the projects in the dataset are of substantial sizes. % of Projects 0 20 40 60 > 1,000 > 5,000 > 10,000 > 50,000 > 100,000 > 500,000 > 1,000,000.
A. RQ1: Popular Programming Languages To provide insights into the first research question, we investigate the popularity of the 30 programming languages in terms of the number of lines of code in the 100,000 software projects that are written in each particular language, the number of projects that contain code in each particular language, and the number of developers that are involved in a project that contain code in each particular language. We describe the results of our study in the following paragraphs. Table  II  shows the ranking of various programming languages in terms of total lines of code written in each language. C code dominates with 1. 6 billion lines of code (60. 83% of all LOC that we analyze). Next to C code is JavaScript and C++ code, which have 296 (11. 18%) and 217 (8.
19%) millions lines of code respectively. PHP and Java follow with 6. 31% and 3. 74% of all LOC respectively. Other well-known languages, such as Ruby, Python, and C#, only account for 2. 26%, 2. 03%, and 1. 19% of all LOC. Functional languages, such as ML and Haskell, appear in more than 1. 5 (0. 06%) millions and 1 million (0. 04%) LOC. The least popular programming languages in terms of LOC are C-Shell, Sed, and Modula3. Figure  2  represents the distribution of LOC for the topranked languages. The predominance of C can be related to the fact that many operating system kernels, including the Linux kernel (10,064,207 lines of C code as of June 2012) and its device-specific flavors, are among the projects with the largest code bases and are written in C. Language popularity can also be measured in terms of its adoption by the number of software projects using the language.
Thus, for each programming language, we count We also note that the Haskell functional language has gained popularity with 1,071 projects (1. 07%) containing Haskell code. Based on this metric, Haskell outranks ML, its counterpart functional language. Finally, the least popular programming languages are VHDL, Modula3, and Cobol, which, even when combined, are found in less than 1% of all projects. Table  IV  details the distribution of the top-10 main languages in the projects. In this study, we consider a language to be the main language for a project when it is the language with the most lines of code. The top ranks are still held by scripting languages. However, when we compare the numbers of projects in Table IV with those in Table  III , we can see that scripting languages are often used 8 http://redmonk.
com/sogrady/2012/09/12/language-rankings-9-12/ as supporting languages. For example, although JavaScript appears in almost 28 thousands projects, it is the main language in only about 9 thousands (34. 50% of all projects with some JavaScript code); The Shell scripting language appears in over 14 thousands projects, but it is the main language in only 3 thousands (22%) projects. Compiled programming languages, such as Java, C, and C++ are used more often as main languages (> 50%) in projects. Another metric that we use to investigate the popularity of a language is the number of developers using it in their projects. For computing the ranking, we assume that all developers in a project are knowledgeable in the main language of the project. Figure  3  illustrates the distribution of developers for the top ranked languages.
Overall, C appears to be the most popular language among developers, followed by Ruby, Python, Java, and C++. JavaScript and C# are only used by 8. 97% and 3. 42% of the developers. The detailed results for all languages are shown in Table  V. Languages such as C-Shell, Modula3, and Cobol appear to be used by relatively insignificant numbers of developers. Ansi C, JavaScript and C++ top our ranking in terms of LOC. Most of the projects in our dataset contain code in JavaScript, Ruby in Python. Finally, Ansi C, Ruby and Python are used in projects with the largest developer pools. These findings suggest that these languages should be learned.
55% and 0. 18% of the projects. The least interoperable languages are VHDL, modula3, and Cobol which, together, appear in less than 1% of multi-language projects. We further survey the interoperability of languages by detailing the relationships among them to establish how languages interoperate and which ones are mostly used together. The relationship graph in Figure  4  gives an overview of how languages interoperate within projects. The thicker the edge between two nodes in the graph, the more projects contain code in the two corresponding languages. We observe that all languages interoperate with one another, though with different degrees of interoperability. Shell is the language that interoperates the most with other languages. Shell is indeed a scripting language that is used in many projects to write automation scripts for compilation, install, launch, etc.
A subset of languages that consists of shell, ansi c, ruby, php, java, c++, c#, perl, javaScript, and python, are used together more often than the others. Objective C appears    I. The thicker a line between two languages, the more projects contain code written in these two languages. Figure  5  focuses on the interoperability of a subset of mainstream languages. The graph shows that JavaScript interoperates well with php and ruby, two other common languages used in web programming. Finally, in Figure  6 , we explore the relationships between ANSI C and all other languages. The graph reveals that C interoperates well with many languages. This is possibly related to the fact that mainstream languages, such as C++, Java, Objective C, and C# are derivatives of C. Furthermore, we note that C and C++ interoperate the best with each other.
C. RQ3: Programming Languages and Success In the third research question, we investigate the languages used by successful projects. To estimate the success of a project, we rely on the amount of interest shown to the project that could be measured based on social coding features of GitHub. 1) Watchers: A project is found successful user-wise if many GitHub users watch its development. Table VII details the average numbers of watchers per project containing code in each programming languages. In this scenario, we consider only one main language per project to reduce outliers in multi-language projects. Objective-C is thus the language of the most number of watched projects: on average 91 watchers per project. The median number of watchers, i. e. , 5, is also the highest. Erlang has the same median number of watchers as Objective-C, but there are 6 times more Objective-C projects than Erlang's.
D. RQ4: Programming Languages and Issues To investigate the correlation between programming languages and issues, we compute the mean and median numbers of issues per project for each language. Since many projects do not enable its issue tracker on GitHub as their development activities occur in their own websites where they have their own issue/bug tracking systems, we only consider those projects with at least 1 issue reported in GitHub. The results are presented in Table  IX. C++ is the language used in projects with the most issues reported (64 issues per project on average, and a median value of 6). ML and C# follow in the ranking with an average of 55 and 50 issues per project. Figure  7  shows the distribution of the number of issues for the top-10 languages drawn as boxplots. Each boxplot presents 5 vertical lines.
E. RQ5: Programming Languages and Teams Finally, we investigate the constitution of development teams based on the used language, so as to identify languages that are more "collaboration friendly". We compute the average and median numbers of developers per project for each programming language. Table X details the results on the average team size for each programming language. The C programming language is the top-1 language with an average of 46 developers per project but a median value of 1. Once again, this average is likely pulled up by operating system projects, such as the Linux kernel (9395 contributors as of June 2012), which usually involve a large number of developers. C++ ranks the second; Ruby, another "popular language" in terms of appearance in projects, is ranked the 5th. Tcl, Erlang, Yacc, Expect, and C-Shell have a high median of 2, but are used in a small set of projects (Cf.
Origin of datasets: Our empirical findings are based on open source projects found on GitHub which lead to results that may not generalize to the universe of software projects produced by developers. We have not considered legacy projects that are still in use but not actively developed on GitHub either. Other practices behind the corporate wall may lead to a different popularity ranking of the languages that programmers are paid to work with. Nonetheless, our findings remain relevant as many companies, such as Facebook and Google, release some of their software as open source and invest in open source projects that appear on GitHub. Furthermore, companies are likely to hire developers based on the skills they can justify and that can be leveraged, implying that languages used for open source development are unlikely unrelated to those used in corporations.
Size of datasets: This study is limited to 100,000 projects. Though a sizeable sample, it cannot equate the millions of software programs whose code can be retrieved from the World Wide Web  [1]. GitHub alone contains over 1 million public repositories. It is to be noted however that our findings on 100,000 projects, in the case of language appearance in projects, are inline with the ranking provided by GitHub 10. This suggests that our sample dataset is representative of the universe of GitHub projects.
VI. RELATED WORK The history, the fundamentals, the trends, and the evolution of programming languages have been the subject of numerous studies in the literature. As early as 1963, the proliferation of programming languages has lead Rosen Saul to produce a "historical" survey of programming languages  [9]. That study was then enriched in 1966 to account for further developments  [10] , and the author has proposed a 10-year summary in times where Cobol and Fortran were the languages used in most of the world production systems and were believed to remain so into "the foreseeable future"  [12]. Sammet has also discussed in this epoch the fundamentals 10 https://github. com/languages of programming languages, addressing both used languages and unimplemented concepts  [13]. A number of research work has also gone into defining what makes a programming language popular while others have proposed explanations to how some languages have outlived community expectations and others were early abandoned.
Thus the popularity of these languages appears to be high, despite common critics on different aspects of the languages. Listing programming languages is relatively easy. Many websites, such as Wikipedia, enumerate hundreds of languages. Ranking languages in terms of popularity is however more challenging. Most attempts have indirectly inferred the popularity of languages by using different non-programming indicators: what languages are most sought in the job market; which ones are most referred to in fora; etc. Ranking based on search engines' hits: The TIOBE software research firm, based in the Netherlands, publishes every month the TIOBE programming community index  [15]  where they provide the trends for Turing Complete  [14]  programming languages that have entries in Wikipedia. They base their index on the number of hits from Alexa's 11  top web sites with search facilities, including known search engines such as Google, Bing, Yahoo! and Baidu, and others: Blogger, wikipedia, Amazon, Youtube, etc.
In their June 2012 report, TIOBE's analysts confirm the increase in trend for the Haskell programming language that they have been observing for some time. Nonetheless, it is to be noted that the TIOBE index is not about the best programming language or the language in which most lines of code have been written. Instead, TIOBE's index is an indication of the buzz surrounding a programming language. Ranking based on real usage: The above depicted websites indirectly investigate the popularity of programming languages supposedly because it is impossible to "look over programmers shoulders and note what languages they're coding in"  [6]. Yet, the momentum of Open Source software has flooded the world wide web with all-size, all-type and all-purpose software projects in repositories that track information on every aspect of the development.
GitHub is one example of hosting platform where such studies can be conducted on real-world projects. To the best of our knowledge, Drew Conway was the first to exploit information from GitHub to investigate the popularity of programming languages  [2]. He directly relied on GitHub's language popularity ranking which is based on the number of projects they appear in, and compares  12  it with data on developer questions on StackOverflow. In our study however, we investigate beyond the appearance in projects. We consider the actual usage of the language in the code base compared to other the languages.
VII. CONCLUSION AND FUTURE WORK Programming languages come and go. Only a few are adopted and thrive. While many scientific studies have discussed how to create a good programming language and why some languages become popular, less attention has been paid to the actual popularity of languages. In this paper, we describe the findings of our empirical study on a sizeable dataset of 100,000 projects. This study corroborates different assumptions made in the literature on the popularity of programming languages. We have found that earlier popular languages, such as C, are still current with a large code base, while the rush in web development has made JavaScript and Ruby pervasive. Finally, Objective-C, a language tightly related to the products of a successful vendor, namely Apple, has also been gaining much attention.
e, 25 % of data points are on the left side of this line. The third line is the MEDIAN, the middle of the dataset. The fourth line indicates the UPPER QUARTILE, i. e. , 25% of data points are on the right side of this line. Finally, the fifth line indicates the MAXIMUM, i. e. , the greatest value, excluding outliers (determined by the tool). All data points on the right side of this line are outliers.
0001 s,  = 300 K, and  = 10 -6. The welding tool is considered rigid with radius   = 1. 5 mm. In the proposed work, we consider only the dwell phase and the following boundary and initial conditions:  (, , ) = 0 for  2 +  2 =  2  ∀ ≥ 0, 𝑢 (𝑥, 𝑦, 𝑡) = -𝑟 𝑡 𝜔 cos (𝜔𝑡) for 𝑥 2 + 𝑦 2 = 𝑟 2 𝑡 ∀𝑡 ≥ 0, V (𝑥, 𝑦, 𝑡) = 𝑟 𝑡 𝜔 sin (𝜔𝑡) for 𝑥 2 + 𝑦 2 = 𝑟 2 𝑡 ∀𝑡 ≥ 0, V (𝑥, 𝑦, 𝑡) = 0 for 𝑥 2 + 𝑦 2 = 𝑟 2 𝑝 ∀𝑡 ≥ 0, 𝑢 (𝑥, 𝑦, 𝑡) = 0 for 𝑟 2 𝑡 < 𝑥 2 + 𝑦 2 < 𝑟 2 𝑝 , 𝑡 = 0, V (𝑥, 𝑦, 𝑡) = 0 for 𝑟 2 𝑡 < 𝑥 2 + 𝑦 2 < 𝑟 2 𝑝 , 𝑡 = 0, (27) where  = 100 rad s -1 is the rotation speed. Results of our approach are compared with those obtained using Fluent software. This code is based on an Eulerian formulation and a finite volume discretization. To validate the results of our algorithm, we choose two equivalent configurations between the two formulations update Lagrangian and Eulerian.
Validation of the Implicit Algorithm Using the Industrial Code Fluent. In the present section, we propose a comparative and qualitative study of our algorithm with the industrial code Fluent using the optimum choices. Figure  7  shows the geometry and the space distribution of the material points. Two colors are used to differentiate the two plates to be welded. Figure  8  presents different configurations of material mixing at different times. One can observe the high deformation level around the welding tool. This result, which is difficult to achieve using finite element method, shows the potential of meshless techniques for modeling FSW process. The distributions of  and V components of the velocity vector are shown in Figures  9  and 10 , respectively. Figures  12  and 13  show the evolution of  and V along the horizontal and vertical sections and the comparison between CMLS and Fluent results (see Figure  11 ).
Conclusion In the present work, we have proposed an implicit iterative algorithm to simulate material mixing observed in friction stir welding which is very difficult to achieve using finite element method. It is based on the combination of continuous moving least square spatial discretization, an Euler implicit scheme time discretization, and an iterative method. The performance of this implicit algorithm has been tested on the viscoplastic problem. Results of the proposed algorithm are compared with those obtained by the industrial code Fluent. The test carried out on the considered example establishes that the proposed algorithm is robust and efficient. In this work, we considered sticking conditions between tool and plates to be welded. The contact conditions between shoulder and plates are the next challenges to solve before this algorithm can be applied to FSW.
Background: Increasingly, similarity networks are being used for evolutionary analyses of molecular datasets. These networks are very useful, in particular for the analysis of gene sharing, lateral gene transfer and for the detection of distant homologs. Currently, such analyses require some computer programming skills due to the limited availability of user-friendly freely distributed software. Consequently, although appealing, the construction and analyses of these networks remain less familiar to biologists than do phylogenetic approaches. Results: In order to ease the use of similarity networks in the community of evolutionary biologists, we introduce a software program, EGN, that runs under Linux or MacOSX. EGN automates the reconstruction of gene and genome networks from nucleic and proteic sequences.
EGN also implements statistics describing genetic diversity in these samples, for various user-defined thresholds of similarities. In the interest of studying the complexity of evolutionary processes affecting microbial evolution, we applied EGN to a dataset of 571,044 proteic sequences from the three domains of life and from mobile elements. We observed that, in Borrelia, plasmids play a different role than in most other eubacteria. Rather than being genetic couriers involved in lateral gene transfer, Borrelia' s plasmids and their genes act as private genetic goods, that contribute to the creation of genetic diversity within their parasitic hosts. Conclusion: EGN can be used for constructing, analyzing, and mining molecular datasets in evolutionary studies. The program can help increase our knowledge of the processes through which genes from distinct sources and/or from multiple genomes co-evolve in lineages of cellular organisms.
In general terms, we describe an evolutionary (or similarity) network (to distinguish it from phylogenetic networks) as any graph connecting nodes representing individual sequences, individual genomes or metagenomes, by edges, when these objects present some similarity according to various combinations of operational criteria (e. g. a significant level of similarity between two sequences, as indicated by a BLAST score and/or percentage of similarity; the presence of shared gene families between two genomes; the presence of identical sequences between metagenomes). For the moment, due to the lack of user-friendly freely distributed dedicated software, the construction and analysis of sequence similarity networks requires a certain amount of computer programming skills, and remain less accessible (and therefore less familiar) to biologists than standard phylogenetic approaches.
Here, we introduce a simple but powerful software program, EGN (for Evolutionnary gene and genome network), for the reconstruction of similarity networks from large molecular datasets that may expand the toolkit of evolutionary biologists. EGN is programmed in Perl v5. 10. 1, it is fast, portable, and runs on Linux and OSX systems. EGN automates the construction of gene and genome networks from nucleic and proteic sequences, coupled to simple statistics describing genetic diversity in these samples, for various user-defined thresholds of similarities. We illustrate some of the options available in EGN, and the novel type of data it exploits. Then, as a proof of concept, we show how EGN can be used to study the complexity of evolutionary processes affecting microbial evolution. We tested whether plasmids were always used as genetic couriers, moving DNA from one lineage to another.
Our null hypothesis was therefore that plasmids should always connect to more than one lineage in a gene sharing network in our dataset of 571,044proteic sequences, sampled in genomes from the three domains of life and mobile genetic elements. Our network approaches were able to reject this null hypothesis by identifying a set of plasmids in Borrelia that is not being used as such couriers. In this case, plasmids appear to have a different functionthat of "evolutionary sandbox"-that contributes to the creation of genetic diversity within their bacterial host lineage.
Implementation EGN is implemented in Perl. v5. 10. 1. The script and a user guide are freely available under the GNU GPL license as Additional file 1 or at http://evol-net. fr. Network construction steps are presented in a simple contextual menu. EGN handles massive datasets of nucleic and/or proteic sequences from FASTA files in DEFLINE format. It automates the identification of homologous sequences using user-defined homology search software (BLAST  [30]  or BLAT  [31] ). In short, the identification of similar sequences relies on parameters defining relevant hits (based on e-value, identity thresholds in the aligned regions, minimal hit length), and on parameters tagging the hit quality (such as bestreciprocal hit, minimal length coverage represented by this hit over each of the compared sequences).
e G reaches 1 when nodes in the component are maximally connected to one another, forming a clique). The distribution of these connected components in each species/samples is also compiled in a tabulated text outfile. Moreover, EGN produces files that are importable in the popular Cytoscape  [34]  and Gephi  [35]  network visualization software programs, in which gene and genomes networks can be further analyzed. EGN also generates FASTA files of sequences in each connected component. These files can be used to generate alignments and standard analyses of selection or phylogenetic analyses. For details, we refer to the User Guide.