A Brief Side-by-Side Comparison Between C++ and Rust – Part 1-3

C_Rust_featured_540x240_notext-1.jpg

Presented: February 18, 2021 12:00 pm
Presented by: Mike Corley, Cully Patch, Dr. Jim Fawcett

This three-part podcast series is a round table discussion between a moderator (Mr. Patch) and two software engineering subject matter experts (Mr. Corley and Dr. Fawcett), and walks through a set of common functions, first implemented through C++ and then in Rust, to note initial speed, performance and security of memory access differences. C++ is a mature programming language originally developed to expand on the C language with the goal of incorporating object-oriented capabilities. Rust is a relatively new programming language based on C++ concepts that focuses on embedding explicit security-oriented memory access features guarantees, while maintaining the required processing speeds and reliability demanded by today’s software systems. The series ends by answering key questions and provides advice as to where to get started with this new language that is quickly being adapted by Fortune 500 companies.

Part 1: This discussion between a moderator (Mr. Patch) and two software engineering subject matter experts (Mr. Corley and Dr. Fawcett), walks through a set of common functions, first implemented through C++ and then in Rust, to note initial speed, performance and security of memory access differences. This podcast covers the ground rules for the side-by-side comparison to ensure the methods used are thoroughly understood.

Lastly, this video discusses programming language communicator setups for Rust vs. C++.

 

DISCLAIMER:

The views expressed by individuals presenting information in CSIAC videos are their own and may not reflect the official policy or position of the CSIAC, Department of Defense, or the U.S. Government.

The appearance of external hyperlinks on this DTIC website does not constitute endorsement by the United States Department of Defense (DoD) of the linked websites, or the information, products or services contained therein. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the opinions of the United States DoD.

This three-part podcast series is a round table discussion between a moderator (Mr. Patch) and two software engineering subject matter experts (Mr. Corley and Dr. Fawcett), and walks through a set of common functions, first implemented through C++ and then in Rust, to note initial speed, performance and security of memory access differences. C++ is a mature programming language originally developed to expand on the C language with the goal of incorporating object-oriented capabilities. Rust is a relatively new programming language based on C++ concepts that focuses on embedding explicit security-oriented memory access features guarantees, while maintaining the required processing speeds and reliability demanded by today’s software systems. The series ends by answering key questions and provides advice as to where to get started with this new language that is quickly being adapted by Fortune 500 companies.

Part 2: This discussion between a moderator (Mr. Patch) and two software engineering subject matter experts (Mr. Corley and Dr. Fawcett), walks through a set of common functions, first implemented through C++ and then in Rust, to note initial speed, performance and security of memory access differences. This episode describes how the comparison was conducted by using both Rust and C++ to perform the same function under the relatively same conditions. Then, it shows the results based on the following comparison points:

  1. Performance – What is the speed and correctness of the code once executed?
  2. Size and Complexity – How much code is needed to be produced to perform the given function?
  3. Ease of Construction – How easy is it to produce the code for the given function?
  4. Safety – How does the code guarantee safe and secure memory access? This is the fundamental key in order to help prevent future vulnerabilities and exploitation while being used in operations.
  5. Ease of Maintenance – How easy is it to maintain the code once produced?

 

DISCLAIMER:

The views expressed by individuals presenting information in CSIAC videos are their own and may not reflect the official policy or position of the CSIAC, Department of Defense, or the U.S. Government.

The appearance of external hyperlinks on this DTIC website does not constitute endorsement by the United States Department of Defense (DoD) of the linked websites, or the information, products or services contained therein. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the opinions of the United States DoD.

 

This three-part podcast series is a round table discussion between a moderator (Mr. Patch) and two software engineering subject matter experts (Mr. Corley and Dr. Fawcett), and walks through a set of common functions, first implemented through C++ and then in Rust, to note initial speed, performance and security of memory access differences. C++ is a mature programming language originally developed to expand on the C language with the goal of incorporating object-oriented capabilities. Rust is a relatively new programming language based on C++ concepts that focuses on embedding explicit security-oriented memory access features guarantees, while maintaining the required processing speeds and reliability demanded by today’s software systems. The series ends by answering key questions and provides advice as to where to get started with this new language that is quickly being adapted by Fortune 500 companies.

Part 3: The series ends by answering key questions and provides advice as to where to get started with this new language that is quickly being adapted by Fortune 500 companies.  The below key questions were addressed:

  1. What are the two most security-oriented features when comparing Rust to C++?
  2. What do you see as gaps for Rust to improve over C++?
  3. If you wanted to become a Rust programmer, where would you start?

 

DISCLAIMER:

The views expressed by individuals presenting information in CSIAC videos are their own and may not reflect the official policy or position of the CSIAC, Department of Defense, or the U.S. Government.

The appearance of external hyperlinks on this DTIC website does not constitute endorsement by the United States Department of Defense (DoD) of the linked websites, or the information, products or services contained therein. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the opinions of the United States DoD.

 

Computer Icon

Host a Webinar with CSIAC

Are you interested in delivering a webinar presentation on your DoD research and engineering efforts?

Want to find out more about this topic?

Request a FREE Technical Inquiry!