[plt-scheme] Teaching Scheme

From: Samuel Williams (space.ship.traveller at gmail.com)
Date: Mon May 3 09:16:36 EDT 2010

Dear Shriram,

(Feel free to correct me where I am wrong. I'm happy to change the structure of the site to improve its informational content and accuracy... I really appreciate your reply.)

The goal of this site is to give people an appreciation of the different languages that exist in the world and the way in which they are different. I'm not aware of other resources like this one. Maybe you can point it out to me?

Yes, I'm well aware of the nature of assigning terms to programming languages - it is very ambiguous. However, in general, C is a compiled language, and Python is an interpreted language. We can make these generalizations fairly consistently. The idea is that for beginners, it is a useful classification which can be assigned to a language _in general_, since it reflects the way in which a language is used or implemented (i.e. the default implementation).

A programming paradigm is an model or methodology that is incorporated and generally used in programming language. While I agree with you that modern languages often blur the lines, I don't see paradigms as being mutually exclusive - rather they are a useful way to describe the nature of a particular language.

For example, C is an imperative language, but it is possible to write object oriented code with C. You can even write some functional code! However, few people would call C object oriented or functional by default. Python and Ruby could both be considered object oriented, and they both have various levels of support for functional programming models. However, I would say that Python is less object-oriented than Ruby. In the same way, we might call Java functional, but not as much as Scheme or LISP.

In a certain sense, I believe that programming paradigms give us a useful set of terminology to talk about the differences between programming languages. I don't see this as being a problem. Without a terminology, how would we describe these traits in relation to each other?

I enjoyed reading your paper, thanks for the link.

Kind regards,

On 4/05/2010, at 12:50 AM, Shriram Krishnamurthi wrote:

> Dear Mr. Williams,
> The phrase "interpreted", when applied to languages, is nonsensical.
> Think about it for a minute and it should be clear to you.
> The notion of programming language paradigms is also, in my opinion,
> largely nonsensical:
> http://www.cs.brown.edu/~sk/Publications/Papers/Published/sk-teach-pl-post-linnaean/
> I'm sure you have the best of intentions, but I have no idea what it
> is you're actually trying to accomplish -- in particular, why are you
> trying to reconstruct information that is already abundantly available
> on the Web?
> Shriram

Posted on the users mailing list.