<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 2, 2013 at 4:18 PM, Frank Shearar <span dir="ltr"><<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><a href="http://blog.datomic.com/2012/10/codeq.html" target="_blank">http://blog.datomic.com/2012/10/codeq.html</a><br>
<br>
Executive summary:<br>
* Git gives version control over files<br>
* Clojure code typically has lots of functions or other chunks of code<br>
in one file<br>
* This means you can't ask for the version of a single unit of code<br>
* Static analyses over the files as they vary through time, dumped<br>
into a database, yields interesting stuff<br>
<br>
What they're calling "codeqs" ("code quantum") filetree folks would<br>
call a file, because filetree already splits everything (I think?)<br>
into bits, and versions everything at the "codeq" level by virtue of<br>
storing each bit in its own file: class definition, comment, method<br>
definition, etc.<br>
<br>
So we already have most of this stuff already - I couldn't live<br>
without my in-image method versions - but I'm wondering if anyone else<br>
can spot anything worth copying?<br></blockquote><div><br></div><div style>Nah. They're basically figuring out how to extract the semantic changes from git, since git just treats the source code as opaque text. That gets them to what Monticello has now. I guess there's a bit of "imagine what you could do then!" that's unspecified.</div>
<div style><br></div><div style>Which is not to say that it's a bad idea. I'd love to create a huge database of, say, the update stream going back to the beginning, or the entire contents of squeaksource. But... then what?<br>
</div><div style><br></div><div style>Things that spring to mind immediately:</div><div style><br></div><div style>- universal senders and implementors</div><div style>- metrics like message sends per method or methods per class</div>
<div style>- detection of package dependencies</div><div style>- analysis of how long-lived packages change over time</div><div style>- analysis of contribution and collaboration between coders</div><div style><br></div><div style>
and so on.</div><div style><br></div><div style>But, what good is it? Might be interesting, maybe there's some research papers to be written, but would it do us any good as a community? Would there be useful tools that came out of it? Would it be worth the effort? Hard to say.</div>
<div style><br></div><div style>Colin</div></div></div></div>