Barlow’s new blog is celebrated in song. In the gutter of his blog, in his “related stuff” playlist, you can hear Haley Suitt introducing this wonderful new addition to the blogosphere.

“John Perry Barlow is a retired Wyoming cattle rancher, a former lyricist for the Grateful Dead, and co-founder of the Electronic Frontier Foundation.” (this and more on his EFF home page)

I enjoyed listening to “Reimagining the Public Domain” from his “Appearances” playlist. He talks about ideas as a lifeform, the importance of language and metaphor, and his opposition to the use of the word “content.” Content requires a container. Thought has no container. Since I’ve personally been involved in the creation of various software containers, I’ve often felt uneasy with the prevailing terminology. Barlow describes the naming of content as “taking that which is immaterial, namely expression and thought, and turning it into a commercial product like a toaster.”

“Information and expression is a verb and not a noun.”

“The internet is not a medium it is an environment”

… the right to know is a corollary of freedom of speech …

“we need to preserve the right to be known, the ability of the idea to circulate.”

If you want to express yourself via MP3 in cyberspace, you can set up your own SoundBlox (free for non-commercial use).

“The language most bilingual people use to mentally solve math problems isn’t necessarily their native language or even the language that is most prevalent in their environment. Psychological research shows it’s the language in which they were first taught math” — Mental Math Dependant On Language, Researchers Find

This interesting article discusses implications for bilingual instruction. Its been a while since I spoke a foreign language. I don’t remember translating simple Math problems into English in my head, but maybe I did. Lately I’ve been playing a kids game that requires me to do a lot of addition and subtraction like 2400 + 2500 – 1450. Since my opponent (who has trouble with such large numbers) often dictates these math problems to me, I have become acutely aware of how I often translate into numeric digits arranged in collumns or scattered patterns in coming up with the answer. I’m not sure I do math in English at all, but rather in diagrams, pictures, digits and symbols.

I often think about programming as an exercise in naming. By naming functions and objects we can use them elsewhere. Defining a term gives you the power to create other more interesting verbs and nouns. Eventually we provide an end-user with a complex or simple vocabulary composed of mouse gestures or type-written characters.

I’m used to object-oriented programming in C++ or Java. Both languages are driven by procedural code. Objects are created in a series of statements. Everything has a name, even temporary variables, loop iterators, and transient objects that are created to support other objects. I generally have a hatful of conventions which spares me from having to think too much about unimportant names.

Lately I’ve been working with a declarative object-oriented language (LZX from Laszlo Systems). Objects are created within an XML hierarchy. Many objects that appear on the screen or control other objects are anonymous. I only create names for objects when I need to reference them. It turns out that most objects don’t need names.

Since I have gotten used to this unusual declarative style of programming I have found it refreshingly easy to whip up a graphical user interface. Its not that I ever thought that Javascript or even C++ was that hard, despite some cumbersome or awkward aspects of each language. Sometimes, it can be challenging to create software. I didn’t ascribe that difficulty to the language itself, but rather to the solving of a particular problem.

LZX allows you to mix in Javascript. Where it is more appropriate to solve a problem with procedural code, you can define methods or include a snippet of Javascript to handle an event. Recently I solved a few problems by writing quite a bit of Javascript. I reflected on why it feels so much easier to declare a program with XML tags, depite the seemingly verbose syntax. Part of the ease of declarative XML is that common patterns are encapsulated in tags, but I think there is more to it than that. It seems that there is a certain intellectual overhead in creating even boilerplate names for transient variables. For me this was an unexpected observation.