Dynamic Programming Languages
Requirements
Aim
Having successfully completed the course with grade E or higher, a student should be able to:
- use at least one dynamic language (such as Ruby and Python),
or scripting language, in program development, both as application languages, as embedded languages and scripting tools.
- quickly pick up other dynamic programming languages with
imperative core.
- 3 use prototype-based programming languages.
- reason about the effects of choosing a dynamic
programming language over a systems programming language (or vice versa), for a project with respect to design, programming, testing, static checking, maintenance, memory, speed and safety.
- reason about the philosophy of the languages used in the
course, how this philosophy is affected by language change and additions, enough to interact with communities around dynamic programming languages.
- use metapogramming and reason about the effects of using
metaprogramming instead of "traditional programming" in a project.
- analyse her own beliefs and preconceptions about
dynamic programming languages, their underlying rationale and criticise them.
- discuss current trends in the programming language
developing communities and research community such as gradual typing and relate these to more mature concepts such as duck typing and structural typing.