Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Ted Leung on the air: Open Source, Java, Python, and ...
Fri, 29 Aug 2003
Guiding the near future and rechecking the past
Names matter. What you name something can determine how it's accepted. That's why Brian Marick's article about
technology-facing examples was enlightening to me.
Here are some renamings that I found while reading his post:
test-driven development => example-driven development
unit test => technology facing examples
programmer support tests => checked examples
retained checked examples => change detectors
I think that this could use some more work to make these ideas even clearer to the non-infected. The other observation that he made was that there are two roles for examples. Some examples are written to guide near term development -- what functionality needs to be implemented next, and what do examples of its use look like? Other examples are used exclusively for rechecking that the past behavior of some code remains unchanged. Some guiding examples eventually become rechecking examples, but not all rechecking examples were originally guiding examples.
[01:05] |
[computers/programming] |
# |
TB |
F |
G |
0 Comments |
unit test => technology facing examples
programmer support tests => checked examples
retained checked examples => change detectors
I think that this could use some more work to make these ideas even clearer to the non-infected. The other observation that he made was that there are two roles for examples. Some examples are written to guide near term development -- what functionality needs to be implemented next, and what do examples of its use look like? Other examples are used exclusively for rechecking that the past behavior of some code remains unchanged. Some guiding examples eventually become rechecking examples, but not all rechecking examples were originally guiding examples.
CodePaste
Dave Thomas explained the use of
CodePaste:
Hydra SubEthaEdit, because you could make temporary annotations right in the code. The nice thing about using a blog style tool to do this is that you could link the blog entry with the IRC chat log and keep a history of the discussion. You could probably do this with a wiki version as well.
[00:52] |
[computers/internet/weblogs] |
# |
TB |
F |
G |
0 Comments |
CodePaste is a RubLog blog that allows anyone to add a page containing source code via a special link. This code is then syntax highlighted and displayed on the blog.This is an interesting idea, and a neat use of blogs. But I started wondering, wouldn't this be a better use for a Wiki? And then I wondered some more and now I think that it would be a good application for something like
REPL's and data structures
Patrick Logan picks up the programming environment thread and points out something else that I just take for granted:
[00:44] |
[computers/programming] |
# |
TB |
F |
G |
0 Comments |
Lisp, Smalltalk, (dynamic languages I have decades of experience with) as well as Python, Ruby, etc. have good support for not only making prototype code, they also have good support for making prototype objects and data structures. Lists, maps, arrays, even self-referencing structures can all be entered end edited in a command loop or workspace using a very simple (i.e. few characters) syntax. There are also the mundane (now that Java brought them to the masses) aspects of these languages like garbage collection and array bounds checking.Then he goes on to speculate that static languages will sort of get this ability to easily deal with data structures via XML. It's horrible but true. XML is the s-expressions of the new millenium.