2008-10-29

Already voted. It's too late.

I usually use this space to make technical posts but I just want to say this: I've already voted. You can all stop robo-calling me, spamming me, feeding me your opinions... threatening me if I don't vote with you... whatever.

You can just give up on me. My vote is cast. No matter how angry, upset, hopeful, patriotic, or guilty you make me feel it's too late. I've already voted.

Now please stop it.

2008-10-15

Programming Language as Human Computer Interface

Programming Languages are in fact Human Computer Interfaces and should be treated as such. The design of a DSL should match the thought patterns of the domain experts in a way that creates as little cognitive dissonance as possible. The result should be that a DSL can become a systems interface point between domain experts, programmers, and systems of systems themselves. We are already seeing this. We will continue to see this. The at the very tip of this idea are the DSL which Java and Groovy make so simple to build.

Programming is a human activity that occurs on multiple levels of thought. Thought tools assist in thinking. We call these metaphor. Why shouldn't programming language tools also help assist programming. The framework level language should therefore be used to create as thoughtful and targeted a set of metaphors for the application level programmer... who in turn is creating tools for the problem-domain experts to use.