Software Management

Programming Language Selection

When a programming language decision must be made, programs should conduct a trade study to determine the best computer programming language, or mix of programming languages, to be used to satisfy system life cycle requirements. This includes the necessary criteria for Post Development Software Support (PDSS).

Suggested areas to be addressed include: [1]

  • Language supports the planned application and architecture.
  • System / software requirements, including performance, interoperability, reliability, safety, security, architecture, partitioning, advanced functionality, and interface requirements.
  • Expected software size & complexity, system life-cycle change rate, and sustainment needs.
  • Reuse of existing systems / software (i.e., programming languages already being used within the system or within components from other sources that may be reused or adapted).
  • Language capabilities of the contractor.
  • Commercial viability of candidate languages, including current and future availability of compilers, tools, general-purpose development computer system equipment, training, and skilled software engineers.
  • Extent of compatibility with and impact of other related direction (e.g. use of standards such as the Joint Technical Architecture and open systems).
  • Languages defined by standards from organizations such as American National Standards Institute (ANSI) or International Standards Organization (ISO).
  • Does the organization have a mandate for what language(s) must be used?
  • Project Level
    • What languages does the team know?
    • What are the goals of the project? Technology exploration? Proof of concept? Broadening technical skills? Rapid development of a production system?
    • Can the project schedule absorb the coming-up-to-speed overhead if the chosen language isn’t well-known to all team members?
    • What are the available resources for learning the language?
    • What are the requirements and options for long-term maintenance of the project? Is it a throw-away? Will it need to have production support for ten years? Who in the organization has the skills to support it in the long term?
    • What is the payoff for choosing a candidate language? Does it offer some particular advantage that compensates for any learning curve? Is it “the best fit” for the deployment environment? Does it have a set of available libraries well-suited for the task?

Most Common DoD Programming Languages:

  • Java
  • C
  • C++
  • JavaScript
  • Ada

AcqLinks and References:

Updated: 6/7/2018

Leave a Reply