bradley a. wangia

PERL Programming Practicum

Description

Perl and its relatives are among the most powerful and dangerous interfaces a human can have to a computer. In this course, we survey the Perl language and study the phenomenon and effects of perl and rapid prototyping languages upon software development, the open source movement, and internet culture.

Simply put, Perl is one of a very few languages that is flexible and powerful enough to put design of the computer languages themselves into the hands of the average programmer. We will explore this in detail, and try to understand the powers and pitfalls of creating "domain-specific languages" for particular tasks. We will culminate this discussion of the very powerful features for language design that are available in Perl 6.

There is no course that I teach that is purely about a language. Perl is more than a language. It embodies a "paradigm" for programming that is very different than how one develops, e.g., C++ or Java programs. We will study the strengths and weaknesses of this new paradigm, and compare and contrast this way of working with traditional software languages and software development.

Most important, however, Perl and its supporters have made possible many programs and approaches that would simply be impractical to write in any other language. We will explore this through study of many application domains, including systems and network programming, web applications and XML/XSLT, bio-informatics, and "domain-specific languages" that Perl made possible. We will learn how to write a one-line webserver in Perl, and why it takes only one line to do this. We will learn how various implementors are using perls as a base to create new network programming paradigms.

Links