<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>At LAD'12 we proposed a plan for improving the Lustre test framework as an important part of the Lustre quality story.  One of the discussion points there was that the bash language of the current tests was lacking in a variety of areas.  We're moving forward with this work but need community agreement on the best course.  </div><div><br></div><div>Given the requirements and language options below, the reasonable choices rapidly diminish to a showdown between perl and python.  I think we're leaning at this point toward perl, based on it's superior speed and inter-version compatibility.  The final piece of the puzzle is the knowledge of existing Lustre test writers, so please chime in.  (But note that "popularity" is the reason we chose bash the first time, and look where that got us...)</div><div><br></div><div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 13px; font-family: Arial; color: rgb(81, 6, 0); "><span class="Apple-tab-span" style="white-space:pre"> </span>requirements</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">          </span>1. easy to use</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">           </span>2. strict structure</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">              </span>3. universally available</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">         </span>4. widely maintained</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">             </span>5. widely understood</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">             </span>6. good filesystem interface: posix API</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">          </span>7. fast - replace e.g. createmany with embedded function</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">         </span>8. operate remote instances</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">              </span>9. inter-version compatibility</div><div style="margin: 0px 0px 0px 12px; text-indent: -12px; font-size: 13px; font-family: Arial; color: rgb(81, 6, 0); "><span class="Apple-tab-span" style="white-space:pre">   </span>options</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">               </span>bash - capable, but too flexible, easy to abuse</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">               </span>perl - forward compatible, universal, more widely understood, xperior, compact; hard to read later</div><div style="margin: 0px 0px 0px 48px; text-indent: -48px; font-size: 13px; font-family: Arial; color: rgb(0, 105, 107); "><span class="Apple-tab-span" style="white-space:pre">                    </span>posix::open, opendir, lseek, etc.</div><div style="margin: 0px 0px 0px 66px; font-size: 11px; color: rgb(103, 103, 103); "><span class="Apple-tab-span" style="color: rgb(0, 105, 107); font-family: Arial; font-size: 13px; text-indent: -48px; white-space: pre; ">      </span><span style="color: rgb(0, 105, 107); font-family: Arial; font-size: 13px; text-indent: -48px; ">parallel::MPI</span></div><div style="margin: 0px 0px 0px 48px; text-indent: -48px; font-size: 13px; font-family: Arial; color: rgb(0, 105, 107); "><span class="Apple-tab-span" style="white-space:pre">                   </span>~2x faster than python</div><div style="margin: 0px 0px 0px 48px; text-indent: -48px; font-size: 13px; font-family: Arial; color: rgb(0, 105, 107); "><span class="Apple-tab-span" style="white-space:pre">                        </span>more version compatible</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">               </span>python - very clear structure, swig module for c inclusion; non-standard installations, support</div><div style="margin: 0px 0px 0px 48px; text-indent: -48px; font-size: 13px; font-family: Arial; color: rgb(0, 105, 107); "><span class="Apple-tab-span" style="white-space:pre">                       </span>os.open: all c flags<span class="Apple-tab-span" style="white-space: pre; ">     </span></div><div style="margin: 0px 0px 0px 48px; text-indent: -48px; font-size: 13px; font-family: Arial; color: rgb(0, 105, 107); "><span class="Apple-tab-span" style="white-space: pre; ">                   </span>MPI bindings</div><div style="margin: 0px 0px 0px 48px; text-indent: -48px; font-size: 13px; font-family: Arial; color: rgb(0, 105, 107); "><span class="Apple-tab-span" style="white-space:pre">                  </span>tab/space requirements make remote editing more difficult</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">             </span>cucumber - ruby based, difficult deployment</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">           </span>java - easy deployment, dev environ, debugger, fast; must compile</div><div style="margin: 0px 0px 0px 30px; text-indent: -30px; font-size: 13px; font-family: Arial; color: rgb(108, 103, 1); "><span class="Apple-tab-span" style="white-space:pre">             </span>ruby - compact</div></div><div><br></div><div><br></div><div><div><a href="http://silicainsilico.wordpress.com/2012/03/26/switching-from-perl-to-python-speed/">http://silicainsilico.wordpress.com/2012/03/26/switching-from-perl-to-python-speed/</a></div><div><a href="http://tenser.typepad.com/tenser_said_the_tensor/2006/08/python_vs_perl_.html">http://tenser.typepad.com/tenser_said_the_tensor/2006/08/python_vs_perl_.html</a></div><div><a href="http://opennomad.com/content/performance-different-scripting-languages-shell-v-perl-v-python-v-ruby">http://opennomad.com/content/performance-different-scripting-languages-shell-v-perl-v-python-v-ruby</a></div><div><a href="http://hentenaar.com/serendipity/index.php?/archives/27-Benchmark-PHP-vs.-Python-vs.-Perl-vs.-Ruby.html">http://hentenaar.com/serendipity/index.php?/archives/27-Benchmark-PHP-vs.-Python-vs.-Perl-vs.-Ruby.html</a></div></div><div><br></div><div><br></div></body></html>