• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Jessica Ehleben Shields

UX Expert, Visual Designer, Web Developer, Leader

  • Home
  • About
  • Design Process
  • Portfolio
    • UI Design
    • UX Design
    • Print Design
    • Visual Identity
    • Publishing Design
    • Multimedia Design
You are here: Home / Development / Programming Languages

Programming Languages

Compiling vs Interpreting Code

Compiling and interpreting are two methods used to convert programming code into machine code that your computer can understand and execute. 

Think of compiling like writing a letter to a friend who speaks French. You write the entire letter and then use Google Translate to convert to French. When the translation is ready you copy the full translation and send it to your friend. All of the translation is done at once before the letter, or program is given to its recipient. If you wanted to send the same letter in a different language, you would need to start the whole process over again to do a full translation. Consider your friend who receives the entire letter and is able to read it very quickly because the full document is provided at once.

Interpreting can be compared to having a live conversation with your same French-speaking friend with the use of an in-person translator in the same room as you. You would say a thought or two, the translator would relay it in French to your friend. This type of translation is done on-the-fly. Consider again your friend who is only receiving a portion of your full conversation at a time. It is much slower to understand the full message this way.

Compiled LanguagesInterpreted Languages
C
C++
Java
C#
Python
JavaScript
MATLAB

Statically Typed vs Dynamically Typed 

Statically and dynamically typed refer to how a language handles different types of data.

Consider that in both types of languages we are going to create a variable to hold a user’s username.

Initially, all usernames are integers. In a statically typed language, we create a variable to hold the username, tell it that it will be holding an integer, and assign the first integer value. In the dynamically typed language, we again create a username and assign the first integer value.

So far, they are very similar.

Later in our program, we need to convert from using an integer username to assigning the username based on a provided email address. A dynamically typed language creates an additional assignment statement and assigns the same variable a new value as a string. In a statically typed language, we can’t do this. Once the variable is created to hold an integer it can only contain integers. We would have to create a second variable to hold a string value.

Statically typed languages are considered safer; dynamically typed languages are considered easier to use and require fewer variables.

Statically Typed LanguagesDynamically Typed Languages
C
C++
Java
Python

Object Oriented vs Non-Object Oriented

Our physical world is made up of objects. On my desk, there is a keyboard object, pencil object, and computer mouse object. You know what these things do even without seeing my desk because we have a basic understanding of the functionalities any given object can perform and general attributes that define the appearance of each one. 

Object-oriented programming languages organize their code in similar structures to the physical world, creating programming objects that share similar appearances and functionality. 

Consider a person in the real world. We could describe a person by defining their height, age, and name. Our computer person object would have the same attributes defined. Within our program, this person object will need to take some actions, like registering an account or depositing and withdrawing funds from an account. By thinking in objects our code becomes easier to manage and quicker to reproduce. We don’t have to create each person from scratch and decide each time what data to include; instead, we know that all people in our program share common attributes and should be able to perform the same tasks.

Object-Oriented LanguagesNon-Object Oriented LanguagesProvides Some Object-Oriented Support
C++
Java
Python
C#
CMATLAB
JavaScript

Created in 2018Key Skills: eLearning, JavaScript & PHP & PythonDesign Type: Development

Footer

Skills & Competencies

2012 Vice Presidential Debate (7) Adobe Flash & After Effects (4) Adobe Illustrator (28) Adobe InDesign (29) Adobe Photoshop (9) Amazon Kindle (1) Assessment Design (3) Design Thinking (8) eLearning (11) Genesis Framework (5) HTML and CSS (16) Instructional Plans (1) Instructional Video (5) Invision & UXPin (2) JavaScript & PHP & Python (19) Leadership (5) Marketing & Advertisement (7) PowerPoint (4) Research (6) Shopify (1) Third Century Campaign (9) Universal Accessibility (6) WordPress (11)

Portfolio

  • Development (3)
  • Environmental Design (6)
  • Multimedia Design (8)
  • Print Design (24)
  • Publishing Design (6)
  • Research (4)
  • User Experience Design (8)
  • User Interface Design (17)
  • Visual Identity (9)

Learn More

  • About Jessica
  • My Design Process

Special Projects

  • Third Century Campaign
  • 2012 Vice Presidential Debate

Jessica writes about skills for academic success at collegestudysmarts.com

Jessica Ehleben Shields has 19 years of experience in visual design, web development, and higher education.

© 2025 All Rights Reserved · Contact · Connect on LinkedIn