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:
- Python [version 2.7]
- Ruby [version 2.1]
- R [version 3.3.1]
- Perl [version 5]
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.
- 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.
- 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.