Hello, Guilherme. First, let me briefly answer your questions: a) yes b) no c) As Alex said, there is a large clojure community. Also, there are a significant number of companies using clojure for production software. I think that would ensure that clojure stayed alive (but maybe not thriving).
I also have some concerns about your methodology. I think the main thing skewing your results for clojure is the emphasis on first authorship. Almost all the files in the clojure repo will have Rich Hickey as the original author. However, inferring from "X is the original author" that "only X understands this code well enough to change it" is a logical leap that I think is unfounded. I think the correct measure for maintainability is not "degree of authorship", but "code understanding." Unfortunately, this is harder to measure, because some 1-line changes require you to understand a whole codebase, and some only require you to understand a couple methods or functions. Some simple measures I tested (files changed, lines changed) don't predict this very well. For instance, Ambrose, Nicola, and tbaldridge score fairly low, even though it's clear from their other projects that they understand a significant fraction of the clojure codebase. It's the same for some of the primary authors of clojurescript. Unfortunately, I can't immediately think of a good measure, but I believe it would contain 1) recency (if A originally writes a file, and B completely rewrites it, who understands it better now?) 2) code dependencies (if you have some low-level code that lots of other code depends on, you usually have to understand a good fraction of its dependents before you are confident enough to change it) 3) activity (if a file isn't touched very often, it's probable that no one really needs to understand it right now for the project to move forward.) 4) popularity (if enough 3rd party code depends on a project, someone will take it over) Reading this list, it occurs to me that recency is related to activity, and popularity is an indicator of 3rd-party code dependencies. Many projects that you currently assign TF=1 I think have no chance of being incapacitated, which I think is because you ignore popularity, and you picked the most popular projects. All that said, I think your project is interesting: I think lots of companies / open source orgs would like to know which portions of their codebase need the most cross-training. Good luck on your research, Leif On Friday, August 7, 2015 at 12:21:40 PM UTC-4, Guilherme Avelino wrote: > > As part of my PhD research on code authorship, we calculated the Truck > Factor (TF) of some popular GitHub repositories. > > As you probably know, the Truck (or Bus) Factor designates the minimal > number of developers that have to be hit by a truck (or quit) before a > project is incapacitated. In our work, we consider that a system is in > trouble if more than 50% of its files become orphan (i.e., without a main > author). > > More details on our work in this preprint: > https://peerj.com/preprints/1233 > > We calculated the TF for *Clojure* and obtained a value of *2*. > > The developers responsible for this TF are: > > Rich Hickey - author of 58% of the files > Stuart Halloway - author of 27% of the files > > To validate our results, we would like to ask *Clojure* developers the > following three brief questions: > > (a) Do you agree that the listed developers are the main developers of > *Clojure*? > > (b) Do you agree that *Clojure* will be in trouble if the listed > developers leave the project (e.g., if they win in the lottery, to be less > morbid)? > > (c) Does *Clojure* have some characteristics that would attenuate the > loss of the listed developers (e.g., detailed documentation)? > > Thanks in advance for your collaboration, > > Guilherme Avelino > PhD Student > Applied Software Engineering Group (ASERG) > UFMG, Brazil > http://aserg.labsoft.dcc.ufmg.br/ > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.