24. Programming Languages#

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.

Tip

You should do either the in groups or the on your own sections below for the x.x.x for the x.x sections do all of them.

24.1. Comparing languages you know#

24.1.1. In groups#

Start by sharing the prepare task where you made a table comparing tow languages on some features with some classmates and then discuss how thy are similar and different.

Together, produce a list of questions for what other things you would want to know about how programming languages compare.

24.1.2. On your own#

Post your table and a question on GitHub. Reply to at least two peers offering either advice or asking additional questions.

After reading other tables, add in your kwl repo below your table some notes on broader patterns.

24.2. Learn more#

  • What is the study of programming languages? intro to PL

24.3. PL in Developer Survey#

Read Carefully the developer survey// languages for 2021 and 2022.

Do additional reading about the languages from their official references.

24.3.1. With classmates#

Discuss the findings to answer the following questions.

  • what is surprising

  • what did you expect?

  • what do the popular languages have in common?

  • what do the dreaded languages have in common?

  • How are popular vs dreaded languages different

  • How to used languages differ from less commonly used languages?

Reflect on a few key points from the discussion in your KWL repo in plreview.md

24.3.2. On your own#

Answer the following in plreview.md: Discuss the findings to answer the following questions.

  • what is surprising

  • what did you expect?

  • what do the popular languages have in common?

  • what do the dreaded languages have in common?

  • How are popular vs dreaded languages different

  • How to used languages differ from less commonly used languages?

24.4. Review today’s class#

  1. For 2 languages from the loved vs dreaded list (one top 5; one bottom 5) read 2-3 posts about why people love/hate that language and summaries the key points on each side. Add this to your kwl repo in language_love_dread.md

24.5. Prepare for Next Class#

  1. Bring to class on Monday questions you have about programming languages or IDEs after this week.

  2. Also bring a list of other programming tools are you interested in learning about?

24.6. More Practice#

  1. (priority) Describe a type of project where it would be worth it for you to learn a language you have never used before in newlanguage.md This should be based in what types of features for the language your project would require and/or what would contribute to the long term health of the project.

  2. Try out/learn about one of the following languages that you have not used before, do something small that is typical of that language (eg a toy data analysis in R): R, Julia, Clojure, Stan, Go. Try to use official documentation only to figure out a toy task to do. Answer the following questions in languagelearning.md:

    1. What is this language designed for?
    1. What Programming paradigm(s) does it support?
    1. What language would make it easy to learn this language? Why?
    1. What language would make it hard for someone to learn this language? Why?
    1. What is its most unique feature(s)?
    1. Include your small code bit (with comments!)
    1. How was it trying to figure out this langauge