Well, the code isn't really the goal -- it a concrete implementation of a
goal. A goal is more abstract, and usually allows many ways to implement it.
For example, if your goal is to sort a list of elements, there are lots of
ways to do it. Or your goal could be "this program shouldn't have a response
time of less than 0.5 seconds". A goal like that would be spread all over
your program, and would take the form of caches and lookup tables and
predictive pre-loading and the like. It would be very hard to extract that
goal by just looking at the source code. :)

Using domain-specific languages in something like Lisp, as that Graham
article points out, can make it clearer, but there are still cross-cutting
goals that can't be explicitly expressed in a single implementation. (That
was the goal of Aspect Oriented programming, although I'm not sure it really
ends up meeting it. :) )

Charles Simonyi's "Intentional Programming"[1] project is all about trying
to separate the programmer's intention from the implementation of that goal,
so that code is readable and understandable by new users, AND that you can
modify the goals without having to rewrite tons of code. There's some good
essays on the subject on his company blog:

"Is programming a form of encryption?"
  http://blog.intentsoft.com/intentional_software/2005/04/dummy_post_1.html

1. http://en.wikipedia.org/wiki/Intentional_programming



On Thu, Mar 11, 2010 at 5:00 PM, Andrey Fedorov <[email protected]> wrote:

> On Thu, Mar 11, 2010 at 4:41 PM, Chris Gahan <[email protected]> wrote:
>
>> We have the goals of the code in our head, we write the code, then we
>> don't bother to write down the goals. Which means that the next person to
>> come along has to read our code and try to intuit what our goals were when
>> writing it.
>
>
> The code *is* the goals. If the code is too far away to immediately intuit
> the goals, maybe you're using a language which forces you to be a human
> compiler [1]?
>
> 1. http://www.paulgraham.com/avg.html
>
> _______________________________________________
> fonc mailing list
> [email protected]
> http://vpri.org/mailman/listinfo/fonc
>
>
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to