<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Earlier I wrote:<o:p></o:p></p>
<p class="MsoPlainText">Or, this is probably a manifestation of the people who have the domain expertise not coming from a background that is software rich.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">If you looked at, say, numerical codes for finite element analysis, the people doing that have been using computers for decades, so there's a goodly number of people who have gone through the learning curve of "roll your own" vs "use
 the library".. Or, even if they're not actually doing it, they're working with other people who are doing it, so they pick up "good design" by osmosis if nothing else.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">The other thing is that a lot of codes (I don't know about the biology space, but certainly in engineering) are rarely from scratch.  It starts as someone else's code that you modify, and then someone else modifies, etc.  Over time,
 I think that process also leads to better design: the nasty ones tend to die out, the good ones persist and are reused.<o:p></o:p></p>
<p class="MsoPlainText">…<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">I also occurs to me that there’s another factor here.. I learned to code in the late 60s and early 70s, when FORTRAN was king, and IBM’s Scientific Subroutine Package (e.g.
<a href="http://media.ibm1130.org/1130-106-ocr.pdf">http://media.ibm1130.org/1130-106-ocr.pdf</a>)  was an essential part of doing things (who wants to code up a version for SIN() every time).  As I understand it, This was something that IBM basically almost
 gave away (did it originate within SHARE?).  So you were in the habit of using libraries to do things you needed.  Likewise, I’ll bet a lot of people used the source code published in the IEEE journals for FFTs  (I know I sure did.. that early simple non-optimized
 radix-2 FORTRAN code that’s about 20-30 lines long, for one thing).  And you may have done this out of sheer laziness by borrowing the deck from a colleague or friend (who wants to punch all those cards).  Burroughs had a similar thing for their mainframe
 machines. And there was tons of stuff available from DECUS. In fact, those documents and code were a fairly decent education in numerical algorithms (and of course, grist for subsequent discussions of poor algorithms.. random number generation is notorious)<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">In an academic environment in the 70s, there wasn’t any particular reason NOT to share your code. If you were working under a government grant or funding, it was basically public domain anyway.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">For big FEM codes (NASTRAN for mechanical stuff, NEC for electromagnetics) the source codes were published, with documentation on how they worked, and a lively commentary on the quality of implementation.
<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">So there’s an enormous number of fairly well written examples (for the time) out there to look at and use and modify, so the culture evolved that way.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">In the biology area though, computers are a latecomer.  There’s also a recognition that those codes might be “valuable intellectual property” no matter how poorly coded and designed they are.  A well-engineered and efficient code would
 be especially valuable, and provide a competitive advantage.  AND, because of the Bayh-Dole act, even government funded development within the academic environment (traditionally open and sharing)  can be proprietary.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">James Lux, P.E.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Task Manager, FINDER – Finding Individuals for Disaster and Emergency Response<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Co-Principal Investigator, SCaN Testbed (</span><i>née</i><span style="color:#1F497D"> CoNNeCT) Project<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Jet Propulsion Laboratory<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">4800 Oak Grove Drive, MS 161-213<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Pasadena CA 91109<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">+(818)354-2075<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>