Phenomenology of Languages and Language Design

In simplified terms, phenomenology means inner perceptions of reality. Phenomenology is the study of structures of consciousness as experienced from the first-person point of view.

Given that, this programming journal assignment sounds really interesting.

The purpose of this journal is to make you more familiar with the phenomenology of the languages you use, so that you will be more sensitive to the full range of phenomenological issues when you design programming languages (and other language-like systems) and when you choose a language for a particular project.

Can you share the phenomenology of languages that you use or that you have designed ?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

useful assignment for programming researchers

I like that exercise. We have students keep a "development diary" for our PL course, but it's broader (how long did you spend on the problem, what were the parts you spent longest on, etc.).

Keeping a journal takes a lot of discipline, but it could be very useful. For a field that aims to make programming more productive and correct, it's important to know what kinds of inefficiencies and errors occur during real programming. I might try this exercise myself.

i agree

yes, looks like a neat idea. could be a blog, too, though perhaps one that makes little sense to others...

good idea

Hey, that's a good idea, too. I'll have to talk to my advisor about that. I'm pretty conservative about relying on any more technology than necessary for students' homework submissions, but I may go play around with some off-the-shelf blog authoring packages.


You might have a look at Moodle, which is an open source courseware project, with support for student journals. My wife had good experiences using it in class.

Links: [1] [2] [3]

Ruby Creator talks about phenomenology of language

Language designers want to design the perfect language. They want to be able to say, "My language is perfect. It can do everything." But it's just plain impossible to design a perfect language, because there are two ways to look at a language. One way is by looking at what can be done with that language. The other is by looking at how we feel using that language—how we feel while programming. Artima Link