Evaluate a Language

In this problem, we will use the analytic techniques we've practiced this semester to explore a new language. Specifically, your job is to explore the "object oriented" features of one of the following languages:

If you want to pick a different language, please talk to us before November 15. Please tell us which one and why. We may or may not approve of your choice.

Assume your audience is a fellow student in the class. You should do two things.

  1. Assemble an illustrative set of examples that highlight how the object-oriented features of this language work, highlighting any behavior that seems unconventional or peculiar. You should limit yourself to 10-15 examples. You should also provide a brief write-up to accompany this set that explain in words what you found, referring to the examples to make your point. You should write up at most a few paragraphs, quickly summarizing what is conventional (explaining what you consider conventional) and then explaining the outlying behavior.
  2. Discuss what implications (positive or negative) this design might have for constructing a static type system for the language. Would it be straightforward? If it's difficult, what makes it hard, and what language restrictions might simplify creating one? Again, a few paragraphs suffice.

Everything combined should not be longer than about two pages, unless you have long code fragments.