title: Which language/platform to develop desktop application based on following criteria
body: <p>Faced with the challenge of a new application with which you had free reign to design, assemble a team to develop and manage: </p>
  
  <ol>
  <li>Which language/platform would you choose?</li>
  <li>Why?</li>
  </ol>
  
  <p><strong>Background:</strong> The desktop application will control a hardware device and perform computations, analyze and display the data returned by it.</p>
  
  <p><strong>Requirements</strong>: (importance: 10=most important)</p>
  
  <ul>
  <li>will need to communicate with devices using USB and/or ethernet (9)</li>
  <li>availability of engineers with relevant skills (8)</li>
  <li>availability of quality IDE/tools (8)</li>
  <li>cost of IDE/tools (7)</li>
  <li>availability of resources, tutorials, support (9)</li>
  <li>lifetime of language/API/platform/framework- ie how future-proof will the investment in this application be?... the product has a <em>long</em> life-cycle (10) </li>
  <li>cross-platform (3)</li>
  <li>richness and breadth of libraries available (9)</li>
  <li>the application will need to be able to interpret a scripting language (6)</li>
  <li>unit testing (9)</li>
  </ul>
  
  <p><strong>Assumptions</strong>:</p>
  
  <ul>
  <li>For USB variants of the device, a device driver will be written in C/C++</li>
  <li>Application will be a completely new endeavor - from scratch</li>
  <li>Background of existing engineers is C/C++, and they have a strong OO competence.  Existing engineers are willing to adopt best language/platform, and new engineers with appropriate skills will be recruited.</li>
  </ul>
  
  <p><strong>Shortlist</strong> (which you can add to):</p>
  
  <ul>
  <li>Java/J2SE</li>
  <li>C#/.NET</li>
  <li>C++/wxWidgets</li>
  <li>C++/QT</li>
  <li>etc.</li>
  </ul>
  
  <p>Looking forward to hearing what you think!</p>