Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

How do I choose a Programming Language for a project?

Today we’ll explore how programming languages are cateogrized. Along the way, this will expose what core, generic features of a programming language are.

The key takeaway that I want for your is to have intution for how to choose a language for a project, not only your favorite, but what is the best for different types of projects.

Comparing languages you know

Tak a few minutes on your own to fill in the follwing table for two languages of your choice. Replace the <langugage> with two languages that you are familiar with. Add two additional rows. You can do this by memory, or by looking up/discussing. If you look things up, be sure to use reputable sources and include links to them.

In class you can work on this on a whiteboard or on your computer.

| feature | <language1> | <language2> |
| ++++++-- | ++++++-- | ++++++-- |
| use of whitespace     | Text     | Text     |
| list/array types |   | |
| variable typing |  | | 
| memory usage | | | 

In groups

Share your table with some classmates and then discuss how they are similar and different.

Together, produce a list of questions for what other things you would want to know about how programming languages compare. All of you should include the collaboratively developed list in your experience report.

On your own

Think of a few questions about how you might compare programming languages.

Try to find high quality answers for them, from reputable sources. You can use an AI to find preliminary answers, but you need to find high quality sources to fact check and make sure you do not confuse yourself with incorrect information from a chatbot

Learn more

Read the following

In groups

You can divde the sources up and then discuss.

Discuss the readings, in particular:

On your own

Add notes on broader patterns below your table in your experience report based on reading the sources above.

Answer each of the following questions with specific references to the readings:

PL in Developer Survey

Resources:

With classmates

First discuss your prepare work then go back to the survey results to find more information and answer the following.

Discuss the findings to answer the following questions. This discussion should be at least 10-15 minutes including looking up information about different languages. As a group, you may divide and conquer this research.

Include (shared) notes from the discussion in your experience report. Reflect (individually) on a few key points (2-3 bullet points) from the discussion in your experience report for today.

On your own

Include answers to the following questions in your experience report for today.

Reflect on how you might use this information when deciding what language to learn next based on this information.

Prepare for Next Class

  1. Review your idethoughts.md from a few weeks ago and add some summary notes.

  2. Think about what features or extensions in your favorite IDE you like the most. Focus on ones that you think others may not know about. Be preppared to share a demo of the feature (i.e. have an IDE window open with the feature available).

Badges

Review
Practice
  1. Review the notes from today

  2. Choose two languages from the desired admired list. THis could be a highly admired and least desired; it could be one with a small gap and one with a large gap. Read a few posts about each language and try to figure out why it is/not admired or desired. Summarize your findings. Include links to all of the posts you read in a section titled ## Sources in your markdown file. For each source, make a bulleted list with some notes about the author’s background and any limitations that might put on the scope of their opinions. (for example, a data scientists’s opinion on languages is very valuable for data science, but less for app development) Add this to your kwl repo in language_love_dread.md.

Experience Report Evidence

include all of the steps above.

Questions After Today’s Class